Not to be confused with XMMS.
Developer(s) XMMS Team
Stable release
0.8 DrO+WIP[1]
Preview release
0.9 DrP
Repository git.xmms2.org/xmms2/xmms2-devel.git
Operating system Unix-like
Available in C[2]
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),[3] he has since passed on the responsibility of furthering the project to Tobias Rundström and Anders Gustafsson.[4] LXMusic, the default music player application in LXDE, is an XMMS2 client.

Design concepts

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.

One feature of XMMS2 that has been rarely implemented in media players is its client-server architecture. XMMS2 allows the user to choose from a number of interface implementations for searching, selecting and playing media, then to close the interface while the audio plays "in the background". The interface can be reopened at any time for further use. Other players with similar features on *nix include the Music Player Daemon and Music on Console.

The design

When first conceived, XMMS2 was simply a shared library. That is, XMMS2 would be back end code to take care of the mechanics of decoding and playing audio streams, requiring to be linked into a compiled program that provided a user interface. This concept was later expanded into a client–server model to allow for more flexible coupling between the front-end and the back-end.[5] The advantages of this approach are:

While the plugin architecture of XMMS allowed it to be quite extensible, it was inefficient in certain ways; XMMS2 seeks to improve on that.

XMMS2 and other projects

The name "XMMS2" was chosen by Peter Alm and Tobias Rundström as they started work on the project, evidently intending it to become the successor to XMMS. However, other developers started using the name (in 2003) before Peter and Tobias ever released their code:

A subtle difference between the XMMS and XMMS2 acronyms is that, while XMMS stands for X (originally for X11 then Cross-platform) MultiMedia System, XMMS2 stands for X(Cross-platform) music multiplexing system. This decision was made to make it clear that XMMS2 would only ever be an audio player, and not a general multimedia player with video support.


  1. p latest release date = October 20, 2011Change Log
  2. XMMS2 vs MPD
  3. Project history Archived October 11, 2006, at the Wayback Machine., XMMS2 Project, retrieved January 11, 2007
  4. Lead Developers Archived January 2, 2007, at the Wayback Machine., XMMS2 Project, retrieved January 11, 2007
  5. Design of XMMS2 Archived October 27, 2005, at the Wayback Machine., XMMS2 Project, retrieved January 11, 2007
  6. 'Another one.' by Thomas Nilsson, 2003-11-08, retrieved January 11, 2007
This article is issued from Wikipedia - version of the 11/17/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.