XMMS2
Encyclopedia
XMMS2 is a new generation of the XMMS
XMMS
The X Multimedia System is a free audio player for Unix-like systems.-History:XMMS was originally written as X11Amp by Peter and Mikael Alm in November 1997. The player was made to resemble Winamp, which was first released in May that year. As such, XMMS has supported Winamp 2 "classic" skins...

 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.

Design concepts

XMMS2 borrows concepts from XMMS-era music players, such as playback control, a playlist
Playlist
In its most general form, a playlist is simply a list of songs. They can be played in sequential or shuffled order. The term has several specialized meanings in the realms of radio broadcasting and personal computers.-In radio:...

, plugins, user-configurable GUI
Gui
Gui or guee is a generic term to refer to grilled dishes in Korean cuisine. These most commonly have meat or fish as their primary ingredient, but may in some cases also comprise grilled vegetables or other vegetarian ingredients. The term derives from the verb, "gupda" in Korean, which literally...

, 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:
  • Input plugins for reading and decoding files or streams.
  • Output plugins to handle sound output.
  • Effects plugins to add effects to decoded audio data, before being output.
  • Visualisation plugins to provide visual animations that vary according to the audio being played.
  • General plugins which allow for miscellaneous functions such as controlling XMMS via an Infrared remote control or a Joystick.

XMMS2 also recognises five types of plugins, but they perform rather different functions:
  • Transport plugins for reading files or streams.
  • Decoder plugins for decoding data read by transport plugins.
  • Effect plugins to add effects to decoded audio data, before being output.
  • Output plugins to handle sound output.
  • Playlist plugins to handle the importing and exporting of playlist data.


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. Around 2000 players like Winamp
Winamp
Winamp is a media player for Windows-based PCs and Android devices, written by Nullsoft, now a subsidiary of AOL. It is proprietary freeware/shareware, multi-format, extensible with plug-ins and skins, and is noted for its graphical sound visualization, playlist, and media library features.Winamp...

 and SoundJam MP
SoundJam MP
SoundJam MP was an early MP3 player for the Mac OS, bought in 2000 by Apple and renamed iTunes. The program was written by Jeff Robbin and Bill Kincaid, published by Casady & Greene.-History and launch:...

 began implementing simple database
Database
A database is an organized collection of data for one or more purposes, usually in digital form. The data are typically organized to model relevant aspects of reality , in a way that supports processes requiring this information...

 features that allow the player to 'remember' where a user's media is located, as well as caching metadata
Metadata
The term metadata is an ambiguous term which is used for two fundamentally different concepts . Although the expression "data about data" is often used, it does not apply to both in the same way. Structural metadata, the design and specification of data structures, cannot be about data, because at...

 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 (remembered 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 (as well as import and export them), 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
Music Player Daemon
Music Player Daemon is a music player server.- Design :MPD simply runs in the background playing music from its playlist. Client programs communicate with MPD to manipulate playback, the playlist, and the database...

 and Music on Console
Music on Console
Music On Console is an ncurses-based console audio player for Linux/UNIX written by Damian Pietras. It is designed to be powerful and easy to use, with a command structure and window layout inspired by the Midnight Commander console file manager...

.

The design

When first conceived, XMMS2 was set to simply become a shared library that could be used with varying front-end code. That is, the XMMS2 library would have been a 'player back-end' taking care of the mechanics of playing audio streams, while some arbitrary front-end would provide 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. The advantages of this approach are:
  • This allows the user to use any compatible client(s) to (simultaneously) connect to and control a single instance of the XMMS2 daemon
    Daemon (computer software)
    In Unix and other multitasking computer operating systems, a daemon is a computer program that runs as a background process, rather than being under the direct control of an interactive user...

    .
    • Clients can offer various types of user interfaces - graphical or text based, implemented using various toolkits, integrated with various desktop environment
      Desktop environment
      In graphical computing, a desktop environment commonly refers to a style of graphical user interface derived from the desktop metaphor that is seen on most modern personal computers. These GUIs help the user in easily accessing, configuring, and modifying many important and frequently accessed...

      s.
    • Client developers can concentrate on improving the usability of their interface, and not worry about playback code.
  • The use of TCP sockets also allows for users to remotely control XMMS2 daemons over a TCP/IP network.


While the plugin architecture of XMMS allowed it to be quite extensible, it was inefficient in certain ways; XMMS2 seeks to improve on that.
  • XMMS has Input plugins that take care of reading data and decoding it to audio. XMMS2 splits this into a Transport stage and a Decode stage, so that a single transport plugin may supply data of any type to any decoder plugin.
  • General plugins may prove to be less relevant in XMMS2, as their purpose may be served by clients, but the plugin architecture will still exist (see paragraph above).
  • XMMS can't handle container formats in a general manner. The XMMS2 architecture makes it easier to build support for container formats.

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:
  • Another project named XMMS2, by Mohammed Sameer, was described as "a Gtk 2 port of the well known xmms." This was not related to the project discussed in the rest of this article. The project has now been discontinued and removed from GNU Savannah
    GNU Savannah
    GNU Savannah is a project of the Free Software Foundation initiated by Loïc Dachary, which serves as a collaborative software development management system for Free Software projects. Savannah currently offers CVS, GNU arch, Subversion, Git, Mercurial, Bazaar, mailing list, web hosting, file...

    .
  • A better known GTK+ 2
    GTK+
    GTK+ is a cross-platform widget toolkit for creating graphical user interfaces. It is licensed under the terms of the GNU LGPL, allowing both free and proprietary software to use it. It is one of the most popular toolkits for the X Window System, along with Qt.The name GTK+ originates from GTK;...

     port of XMMS is the Beep Media Player
    Beep Media Player
    The Beep Media Player was a free audio player, based on the XMMS multimedia player. The lead developer was Milosz “deadchip” Derezynski. The BMP is mainly a port of XMMS to GTK+ 2 and, as such, integrates better with the look and feel of more recent versions of GNOME, Xfce, and, if using the...

    , which is sometimes referred to (erroneously) as XMMS2. The BMP FAQ explains that project's relationship to XMMS.


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.

See also

  • Comparison of media players
    Comparison of media players
    The following comparison of video players compares general and technical information for notable software media player programs.For the purpose of this comparison, "video players" are defined as any media player which can play video, even if it can also play audio files.-General:-Operating system...

  • XMMS
    XMMS
    The X Multimedia System is a free audio player for Unix-like systems.-History:XMMS was originally written as X11Amp by Peter and Mikael Alm in November 1997. The player was made to resemble Winamp, which was first released in May that year. As such, XMMS has supported Winamp 2 "classic" skins...

  • Audacious
    Audacious Media Player
    Audacious is a free software audio player with a focus on low resource usage, high audio quality, and support for a wide range of audio formats. It is designed primarily for use on POSIX-compatible systems such as Linux, with limited support for Microsoft Windows...

  • MPD (Music Player)
  • iTunes
    ITunes
    iTunes is a media player computer program, used for playing, downloading, and organizing digital music and video files on desktop computers. It can also manage contents on iPod, iPhone, iPod Touch and iPad....

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK