Emms is the Emacs Multi-Media System. It tries to be a clean and small application to play multimedia files from Emacs using external players. Many of its ideas are derived from MpthreePlayer, but it tries to be more general and more clean.
The basic functionality of Emms consists of three parts: The core, the sources, and the players.
The core resides in emms.el, and provides a simple playlist and the basic functionality to use all the other features of Emms. It provides the common user commands and interfaces for other parts. It thinks in tracks, where a track is the combination of a type and a name - e.g. the track type 'file has a name that is the file name. Other track types are possible.
To get to tracks, the core needs sources. The file emms-source-file.el provides simple sources to interact with the file system.
When Emms finally has the sources in the playlist, it needs a player to play them. emms-player-simple.el defines a few useful players, and allows you to define your own in a very simple way.
The way Emms works is easy to customize with your own code or by using `M-x customize'.