XMMS2

Last updated
XMMS2
Developer(s) XMMS Team
Stable release
0.8DrO_o [1]   OOjs UI icon edit-ltr-progressive.svg / 20 October 2011
Preview release
0.9.1 [2]   OOjs UI icon edit-ltr-progressive.svg / 2 May 2022
Repository
Written in C [3]
Operating system Unix-like
Type Audio player
License LGPL-2.1-or-later [4]
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), [5] he has since passed on the responsibility of furthering the project to Tobias Rundström and Anders Gustafsson. [6] 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. [7] 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.

Related Research Articles

<span class="mw-page-title-main">XMMS</span> Free and open source audio player

X Multimedia System (XMMS) is an audio player for Unix-like systems released under a free software license.

<span class="mw-page-title-main">Winamp</span> Media player for Microsoft Windows

Winamp is a media player for Microsoft Windows originally developed by Justin Frankel and Dmitry Boldyrev by their company Nullsoft, which they later sold to AOL in 1999 for $80 million. It was then acquired by Radionomy in 2014. Since version 2 it has been sold as freemium and supports extensibility with plug-ins and skins, and features music visualization, playlist and a media library, supported by a large online community.

<span class="mw-page-title-main">FLAC</span> Lossless digital audio coding format

FLAC is an audio coding format for lossless compression of digital audio, developed by the Xiph.Org Foundation, and is also the name of the free software project producing the FLAC tools, the reference software package that includes a codec implementation. Digital audio compressed by FLAC's algorithm can typically be reduced to between 50 and 70 percent of its original size and decompresses to an identical copy of the original audio data.

<span class="mw-page-title-main">MPlayer</span> Free and open source media player

MPlayer is a free and open-source media player software application. It is available for Linux, OS X and Microsoft Windows. Versions for OS/2, Syllable, AmigaOS, MorphOS and AROS Research Operating System are also available. A port for DOS using DJGPP is also available. Versions for the Wii Homebrew Channel and Amazon Kindle have also been developed.

<span class="mw-page-title-main">VideoLAN</span> Non-profit organization developing software

VideoLAN is a non-profit organization which develops software for playing video and other media formats. It originally developed two programs for media streaming, VideoLAN Client (VLC) and VideoLAN Server (VLS), but most of the features of VLS have been incorporated into VLC, with the result renamed VLC media player.

<span class="mw-page-title-main">Kodi (software)</span> Free software media player

Kodi is a free and open-source media player software application developed by the XBMC Foundation, a non-profit technology consortium. Kodi is available for multiple operating systems and hardware platforms, with a software 10-foot user interface for use with televisions and remote controls. It allows users to play and view most streaming media, such as videos, music, podcasts, and videos from the Internet, as well as all common digital media files from local and network storage media.

<span class="mw-page-title-main">Amarok (software)</span> Free and open source music player

Amarok is a free and open-source music player. It is available for Unix-like, as well as for Windows and macOS systems. Although Amarok is part of the KDE project, it is released independently of the central KDE Software Compilation release cycle. Amarok is released under the terms of the GPL-2.0-or-later.

GNOME-DB is a database application by the GNOME community. The project aims to provide a free unified data access architecture to the GNOME project for all Unix platforms. GNOME-DB is useful for any application that accesses persistent data, since it now contains a data management API.

JRiver Media Center is a multimedia application that allows the user to play and organize various types of media on a computer running Windows, macOS, or Linux operating systems.

<span class="mw-page-title-main">MusikCube</span>

musikcube is a free and open-source cross-platform, terminal-based audio player software and streaming server.

Music Player Daemon (MPD) is a free and open music player server. It plays audio files, organizes playlists and maintains a music database. In order to interact with it, a client program is needed. The MPD distribution includes mpc, a simple command line client.

<span class="mw-page-title-main">Music on Console</span> Console audio player

Music On Console (MOC) is an ncurses-based console audio player for Linux/UNIX. It was originally written by Damian Pietras, and is currently maintained by John Fitzgerald. It is designed to be powerful and easy to use, with an interface inspired by the Midnight Commander console file manager. The default interface layout comprises a file list in the left pane with the playlist on the right. It is configurable with customizable key bindings, color schemes and interface layouts. MOC comes with several themes defined in text files, which can be modified to create new layouts. It supports ALSA, OSS or JACK outputs.

<span class="mw-page-title-main">Banshee (media player)</span> Open source media player

Banshee is a cross-platform open-source media player, called Sonance until 2005. Built upon Mono and Gtk#, it used the GStreamer multimedia platform for encoding, and decoding various media formats, including Ogg Vorbis, MP3 and FLAC. Banshee can play and import audio CDs and supports many portable media players, including Apple's iPod, Android devices and Creative's ZEN players. Other features include Last.fm integration, album artwork fetching, smart playlists and podcast support. Banshee is released under the terms of the MIT License. Stable versions are available for many Linux distributions, as well as a beta preview for OS X and an alpha preview for Windows.

<span class="mw-page-title-main">Audacious (software)</span> Free and open source audio player

Audacious is a free and open-source audio player software with a focus on low resource use, high audio quality, and support for a wide range of audio formats. It is designed primarily for use on POSIX-compatible Unix-like operating systems, with limited support for Microsoft Windows. Audacious is the default audio player in Ubuntu Studio, and was the default music player in Lubuntu until October 2018, when it was replaced with VLC.

The following comparison of audio players compares general and technical information for a number of software media player programs. For the purpose of this comparison, "audio players" are defined as any media player explicitly designed to play audio files, with limited or no support for video playback. Multi-media players designed for video playback, which can also play music, are included under comparison of video player software.

<span class="mw-page-title-main">MusicBee</span> Media player for Microsoft Windows

MusicBee is a freeware media player for playback and organization of audio files on Microsoft Windows, built using the BASS audio library.

<span class="mw-page-title-main">GNOME Videos</span> Media player software of the desktop environment GNOME

GNOME Videos, formerly known as Totem, is a media player for the GNOME computer desktop environment. GNOME Videos uses the Clutter and GTK+ toolkits. It is officially included in GNOME starting from version 2.10, but de facto it was already included in most GNOME environments. Totem utilizes the GStreamer framework for playback, though until version 2.27.1, it could alternatively be configured to use the Xine libraries instead of GStreamer.

<span class="mw-page-title-main">Quod Libet (software)</span> Free and open source audio player

Quod Libet is a cross-platform free and open-source audio player, tag editor and library organizer. The main design philosophy is that the user knows how they want to organize their music best; the software is therefore built to be fully customizable and extensible using regular expressions and boolean logic. Quod Libet is based on GTK and written in Python, and uses the Mutagen tagging library. Ex Falso is the stand-alone tag-editing app based on the same code and libraries.

mpv (media player) Free and open-source media player software

mpv is free and open-source media player software based on MPlayer, mplayer2 and FFmpeg. It runs on several operating systems, including Unix-like operating systems and Microsoft Windows, along with having an Android port called mpv-android. It is cross-platform, running on ARM, PowerPC, x86/IA-32, x86-64, and MIPS architecture.

References

  1. https://github.com/xmms2/xmms2-stable/releases/tag/0.8DrO_o.
  2. https://github.com/xmms2/xmms2-devel/releases/tag/0.9.1.
  3. XMMS2 vs MPD
  4. COPYING
  5. Project history Archived October 11, 2006, at the Wayback Machine , XMMS2 Project, retrieved January 11, 2007
  6. Lead Developers Archived January 2, 2007, at the Wayback Machine , XMMS2 Project, retrieved January 11, 2007
  7. Design of XMMS2 Archived October 27, 2005, at the Wayback Machine , XMMS2 Project, retrieved January 11, 2007
  8. 'Another one.' by Thomas Nilsson, 2003-11-08, retrieved January 11, 2007