Developer(s) | XMMS Team |
---|---|
Stable release |
0.8 DrO+WIP
|
Preview release |
0.9 DrP
|
Repository | git |
Operating system | Unix-like |
Available in | C |
Type | Audio player |
License | GPL v2 / LGPL v2.1 (plugins) |
Website | www.xmms2.org |
XMMS2 (X-platform Music Multiplexing System 2) is a new generation of the XMMS audio player. It is a new design, written from scratch, separate from the XMMS codebase. While Peter Alm, one of the original authors of XMMS, was responsible for the initial design and coding of XMMS2 (late 2002 to early 2003), he has since passed on the responsibility of furthering the project to Tobias Rundström and Anders Gustafsson. LXMusic, the default music player application in LXDE, is an XMMS2 client.
XMMS2 borrows concepts from XMMS-era music players, such as playback control, a playlist, plugins, user-configurable GUI, and adds features such as a media library and a client–server design.
Like XMMS, XMMS2 has a plugin architecture; a type of modular architecture where certain functions are delegated to loadable libraries which provide particular functions at run-time. XMMS recognised five different types of plugins:
XMMS2 also recognises five types of plugins, but they perform rather different functions:
Unlike XMMS2, XMMS had no library where it stored information about a user's media collection. The only media resources XMMS knew about were its playlist. Starting in around 2000, players like Winamp and SoundJam MP began implementing simple database features that allow the player to "remember" where a user's media is located, as well as caching metadata stored in the files such as artist, title, date added and play count.
XMMS2's media library is well integrated with the playlist. This integration means that every file or stream added to the playlist has its metadata automatically cached by the media library. This only happens once for every unique URL, so metadata isn't read again if it already exists in the library. Besides metadata, the media library can also quickly and efficiently store and reload playlists, making a user's music collection all accessible from a single place.