Fact-checked by Grok 2 weeks ago

XMMS

The X MultiMedia System (XMMS) is a free and open-source audio player for operating systems, designed to run on the and featuring a graphical interface modeled after the . It supports playback of various audio formats, including , , and Ogg , with extensibility through plugins for additional codecs and streaming audio. Key features include a editor for organizing tracks via drag-and-drop or file browsing, a graphical equalizer for audio adjustments, and customizable Winamp-style skins to alter its appearance. Initiated in 1997 by developers including Peter Alm, Mikael Alm, Thomas Nilsson, Olle Hallnas, and Håvard Kvålen, XMMS was built using the 1 toolkit and quickly became a popular lightweight alternative to proprietary players on and other Unix variants. The project evolved with a port to 2 around 2003, during which it was temporarily renamed Beep Media Player (BMP) before reverting and eventually being forked in 2005 into Audacious, a continued development effort that preserved much of XMMS's core code and elements. Active of the original XMMS ceased around 2007, after which its legacy persisted through community forks and plugins hosted on platforms like , though no official website remains operational. Distinct from the unrelated XMMS2 project, the original XMMS emphasized simplicity, low resource usage, and plugin-based modularity, influencing subsequent open-source media players in the Unix ecosystem.

History

Origins and early development

XMMS originated as x11amp, a media player developed by brothers Peter Alm and Mikael Alm, who released its first public version on November 11, 1997. Designed as a clone of the Windows-based player—first released by in May 1997—x11amp aimed to bring a comparable lightweight audio playback experience to X11 environments on systems. From its inception, x11amp emphasized efficient audio playback through a modular, skinable that closely mimicked the aesthetic and functionality of 2.x, including support for customizable skins to enhance user appeal on modest hardware typical of late-1990s setups. This focus on simplicity and visual familiarity helped it stand out amid limited multimedia options for open-source operating systems at the time. The project underwent a significant on June 10, 1999, when 4Front Technologies announced sponsorship to bolster development, particularly for integration with the (OSS) audio framework. As part of this collaboration, x11amp was officially renamed XMMS, or X MultiMedia System, to reflect its expanding scope while remaining fully licensed under the GPL. Developers including Olle Hallnas, Peter Alm, Thomas Nilsson, and Håvard Kvålen joined 4Front's OSS applications group to accelerate enhancements. XMMS quickly gained traction in early Linux distributions due to its straightforward design and robust MP3 playback capabilities, which proved advantageous during the late-1990s "format wars" involving competing audio codecs like and emerging alternatives. Its popularity as a "go-to" player for Unix users underscored the growing demand for accessible tools in the open-source ecosystem.

Key releases and end of active development

XMMS version 1.0.0 was announced on January 27, 2000, establishing the foundational plugin architecture that enabled extensibility through separate modules for input decoding, output rendering, and visualizations. The subsequent 1.2.x series, developed from around 2000 through 2007, marked key milestones in feature expansion, notably incorporating plugin-based support for lossless formats like and open-source compressed audio such as Ogg , broadening compatibility with contemporary digital music standards. Version 1.2.11, the final stable release, arrived on November 16, 2007, distributed under the GNU General Public License version 2 or any later version. Active development of XMMS effectively ended after this release, driven by its heavy reliance on the now-deprecated toolkit, which complicated integration with evolving desktops and led to issues. Contributing to the stagnation was the departure of principal maintainer Peter Alm, who in pivoted to spearheading XMMS2 as a ground-up redesign focused on and audio-only playback. The emergence of ecosystem-specific alternatives, such as in environments, further diminished the need for ongoing XMMS updates as distributions prioritized these integrated solutions.

Core functionality

Architecture and playback engine

XMMS employs a client-based architecture built on GTK+ 1.x for its , integrated with a central playback engine responsible for audio decoding and output rendering. This design allows the GUI to interact directly with the engine in a single process, facilitating straightforward control over playback operations without a separate component. The engine processes audio streams by leveraging a modular framework, enabling extensibility while maintaining a core focus on audio handling. The plugin system categorizes functionality into distinct types to separate concerns: input plugins for decoding various audio formats, output plugins for delivering audio to hardware drivers such as and ALSA, and general plugins for auxiliary tasks like . Input plugins handle the initial decoding of compressed or raw audio data into a uniform PCM format, which the central engine then routes to the selected output plugin for playback. This separation ensures that the core engine remains lightweight, delegating specialized processing to loadable shared libraries loaded dynamically at runtime. General plugins further enhance control, such as through event handlers for user interactions or device . Playback is managed via an event-driven that responds to real-time controls like play, pause, and seek, utilizing callbacks to synchronize the and states. Despite its , XMMS's single-threaded design in the main process can lead to freezes during intensive decoding operations, as heavy computational loads block the event . The system maintains an audio-only focus, lacking native support for to prioritize efficient audio performance. Visual customization, such as skins, extends the interface without altering the core .

Supported formats and plugins

XMMS initially supported a core set of audio formats from its inception in 1997, including via the integrated mpg123 decoder, (RIFF), , and various module formats such as , XM, and IT through the MikMod input plugin. Subsequent releases expanded native and plugin-based support for additional formats, particularly in the 1.2.x series starting around 2003, which incorporated lossless codecs like via a dedicated input plugin from the Xiph.org and Musepack (MPC) through third-party plugins. Open formats such as Ogg were added via built-in support in later versions, with plugins available as early as 2000, while decoding was enabled through the FAAD2 library plugin supporting m4a files. The extensibility of XMMS relied heavily on its plugin architecture, which allowed users to add support for diverse audio types, outputs, and effects through a rich ecosystem of official and third-party numbering in the dozens. Input plugins handled specialized decoding, such as chip emulation for Commodore 64 music files or extended variants via libsndfile integration for formats like AIFF and SND. Output plugins provided playback options beyond the default driver, including the Enlightened Sound Daemon (ESD) for networked audio distribution and disk writer for recording streams. Effect plugins enhanced audio processing, with examples like the plugin for seamless track transitions. XMMS also featured built-in integration for streaming internet radio, supporting playlists from Icecast and SHOUTcast servers through .pls and .m3u files, enabling playback of MP3 and Ogg Vorbis broadcasts directly within the player.

User interface and customization

Skin system

XMMS adopted the Winamp 2.x skin format, utilizing .wsz files, during its origins as x11amp in 1997, allowing for bitmap-based layouts of interface elements such as main windows, buttons, and playlists to emulate the appearance of the Windows-based Winamp player. The skin loading process involves XMMS extracting the contents of .wsz files, which are ZIP archives containing bitmap images (typically in BMP format) and an accompanying .ini configuration file that specifies the positioning, sizing, and behavior of UI components, including equalizer sliders and playlist displays. A vibrant community contributed numerous user-created skins, drawing from the extensive Winamp skin library of over 3,000 designs archived online, with dedicated XMMS skin packages containing hundreds of options; tools like Skinamp facilitated modifications and new creations compatible with XMMS. However, the skin system is limited to a fixed 256-color palette in its bitmap images, lacking support for , which results in and visual artifacts when scaled on high-DPI displays. Skins can optionally integrate with XMMS to enable dynamic elements within static layouts.

Visualization and cover art features

XMMS includes several built-in visualization plugins that provide audio-reactive displays synchronized to the audio . The default Simple renders frequency data as green-to-yellow-to-red , offering a basic bar mode without user configuration. The Blur Scope plugin displays an view with configurable colors and a blurring effect for smoother waveforms. Additionally, the OpenGL uses hardware-accelerated rendering to create a rotating disc representation of the in scope mode, supporting fullscreen operation via extensions when available. These can be toggled between modes such as scope, bar, and by interacting with the visualization window. The Coverviewer plugin, developed as a third-party addition, focuses on displaying static album cover art during playback. It scans the directory of the currently playing audio file for images, automatically selecting and showing relevant covers, such as those named to match the album or track. Introduced around the mid-2000s to enhance visual integration, Coverviewer operates as a , rendering images in a dedicated window without audio-reactive elements. Other visualization plugins extend XMMS's capabilities with more dynamic effects. The Goom plugin, a library ported to XMMS, generates abstract animations driven by the , including tentacles, , stars, waves, blurs, glows, and hypnotic patterns. It supports modes alongside customizable waveforms for varied hypnotic displays. These plugins render in a separate that overlays or integrates with the skinned , with options for to prioritize visual immersion. While most use software rendering, OpenGL-based options leverage where supported, though XVideo integration is limited to compatible extensions in select plugins.

Forks and successors

GTK+2-based forks

The Beep Media Player (BMP), initiated around 2003, served as an early GTK+2 port of the original XMMS codebase, enabling improved theming capabilities and support while preserving compatibility with existing XMMS plugins. Developed primarily by Milosz Derezynski, BMP refactored portions of the XMMS code to leverage GTK+2's enhanced graphical features, though it encountered occasional stability issues with legacy GTK+1 plugins. This fork addressed the original XMMS's limitations in modern desktop environments by transitioning away from the deprecated GTK+1 toolkit, maintaining a footprint suitable for resource-constrained systems. BMP's development concluded by late 2005, paving the way for Audacious as the primary continuation of the XMMS lineage. Audacious emerged in October as a direct continuation of BMPx (an interim BMP variant), founded by developers including Pitcock to revive and modernize the XMMS lineage with ongoing +2 support. Unlike broader media suites, Audacious emphasizes a minimal resource usage profile, incorporating bug fixes, an improved , and an for external clients while upholding the shared system from XMMS. Over two decades of development have introduced dual backends for and interfaces, along with support for contemporary formats such as via a native added in version 4.3. As of November 2025, Audacious remains actively maintained, with the latest stable release at version 4.5.1, ensuring compatibility with modern distributions and addressing the original XMMS's obsolescence through regular updates.

XMMS2 as a modular rewrite

XMMS2 was initiated in late 2002 by Peter Alm, one of the original developers of XMMS, as an audio-only rewrite focused on creating a more advanced music player using entirely new code. The project adopted a client-server architecture to enable flexible, background playback independent of user interfaces, with the core daemon process known as xmms2d handling audio decoding and streaming operations. This design allows multiple clients—such as graphical interfaces built with GTK+ or console-based tools—to connect simultaneously for controlling playback and managing media libraries, promoting modularity by separating the backend from frontend components. The modular framework emphasizes extensibility through plugins for input decoding, output rendering, and effects processing, while supporting scripting interfaces via bindings for languages like Python and Lua to facilitate custom client development and automation. Unique to XMMS2 are its Collections system, which enables dynamic playlist management through SQL-like queries on the media library for filtering and selecting tracks based on metadata criteria such as artist, genre, or custom expressions. Native gapless playback is supported for formats including MP3, Ogg Vorbis, and FLAC, ensuring seamless transitions without audible pauses, and format support is enhanced by integration with FFmpeg's libavcodec for decoding a wide range of audio codecs like AAC and WMA. Development of XMMS2 has remained active into , with the project maintaining releases in the 0.8.x and 0.9.x series, including version 0.9.6 distributed in major repositories. While not as widely adopted in mainstream desktop environments as successors like Audacious, XMMS2's lightweight daemon and plugin-based structure make it suitable for systems requiring efficient audio handling.

References

  1. [1]
    What is (or was) XMMS? - Audacious - An Advanced Audio Player
    XMMS - the X MultiMedia System - is the historical media player on which Audacious was originally based. The XMMS project was started in 1997.
  2. [2]
    18. Manage Your Audio with XMMS - Linux Multimedia Hacks [Book]
    XMMS is a classic Linux audio player you can use to easily play a number of different audio file types. A number of audio players are available under Linux, ...
  3. [3]
    XMMS-1.2.7 - Linux From Scratch!
    XMMS, which stands for X MultiMedia System, is a program comparable in function with WinAMP. It's main function is playing audio files like WAV and MP3.<|control11|><|separator|>
  4. [4]
    p/xmms-gtk2 - GitHub
    XMMS - X Multimedia System (C) 1997-2004 A Cross platform Multimedia Player Peter Alm, Thomas Nilsson, Olle Hallnas, Håvard Kvålen TABLE OF CONTENTS ...
  5. [5]
    XMMS download | SourceForge.net
    Feb 25, 2013 · Graphical real-time audio equalizer plugin for XMMS featuring 10, 15, 25 and 31 bands. XMMS On The Fly Recoding. Patches xmms for on the fly ...
  6. [6]
  7. [7]
    From XMMS to Audacious: the history of a Winamp clone
    Dec 5, 2006 · Back in 1997, someone finally decided to write a usable music player for GNU/Linux: X11Amp, now known as XMMS.
  8. [8]
    June 10, 1999 - 4Front Technologies
    -- CULVER CITY, CA, June 10, 1999 -- 4Front is happy to announce that it will be sponsoring the development of the popular X11amp program which will be renamed ...
  9. [9]
    X - The Linux Documentation Project
    ... X11Amp) is an X/GTK+ based audio player for various audio formats. It's able to read and play: * Audio MPEG layer 1, 2, and 3 (with mpg123 plug-in), * WAV ...
  10. [10]
    Press Releases - 4Front Technologies
    January 27, 2000: XMMS version 1.0.0 announced. January 26, 2000: Winners of the XMMS Plugin contest announced. January 10, 2000: Via Technologies and ...
  11. [11]
    audio/xmms-flac: XMMS input plugin for playing FLAC files
    FLAC is an Open Source lossless audio codec. This is an XMMS input plugin for FLAC files. WWW: https://www.xiph.org/flac/
  12. [12]
    Vorbis.com: FAQ - Xiph.org
    Oct 3, 2003 · Icecast, our streaming audio server, is capable of streaming Ogg Vorbis to players like XMMS, Winamp 2, and foobar2000. What software and ...
  13. [13]
    Copyright
    XMMS is licensed under the GNU General Public License version 2 or higher. Exceptions are mikmod and parts of irman plugins which are licensed under GNU ...
  14. [14]
    Time to get rid of XMMS? / Multimedia and Games / Arch Linux Forums
    XMMS is very old and uses GTK1. First, XMMS devs decided to create XMMS2, but they wanted to make client/server architecture, so development ...
  15. [15]
    Ubuntu 10.04 – getting xmms to work again - www.shicho.net
    May 9, 2010 · Now, to make matters worse, some of xmms' dependencies have been deprecated as well. Out of sheer perversity, I decided to install all the old ...
  16. [16]
  17. [17]
    Rhythmbox - Community Help Wiki - Ubuntu Documentation
    Feb 14, 2013 · Rhythmbox is GNOME's default music player. Inspired by Apple's iTunes, it is simple to use and meets most users' needs.
  18. [18]
    Development [LWN.net]
    XMMS is largely regarded as nearing the end of its useful life, distributions seem to be deprecating it in succession. Despite this, XMMS development has not ...
  19. [19]
    Getting the Most from XMMS with Plugins | Linux Journal
    ### XMMS Architecture, Plugin System, and Playback Engine Summary
  20. [20]
    XMMS Plugin tutorial at nobugs.org (2002)
    In this tutorial we've seen how to create a skeleton xmms visualization plugin, using automake/autoconf to do all the hard work of building the shared library.Missing: architecture | Show results with:architecture
  21. [21]
    rafael2k/dmms: Dina (or Deprecated) MultiMedia System - a XMMS ...
    ... code out of XMMS and into a plugin architecture it's possible to change almost everything in XMMS. There are today 5 different types of plugins. Only a few ...Missing: analysis | Show results with:analysis
  22. [22]
    xmms(1): audio player for X - Linux man page - Die.net
    XMMS is the X Multimedia System. It is used to play audio and other kinds of media files. By default XMMS can play MPEG audio, Ogg Vorbis, RIFF wav, most module ...
  23. [23]
    audio/xmms - The NetBSD Packages Collection
    Currently it plays mpeg layer 1/2/3, wav, au, and CD audio. Other formats are supported by different xmms plugins (e.g. xmms-mikmod).
  24. [24]
    X Multimedia System - Hydrogenaudio Knowledgebase
    May 1, 2020 · X Multimedia System ; Initial release, {{{released}}} ; Stable release, 1.2.10 ; Preview release, Next version (CVS).
  25. [25]
  26. [26]
    3rd Party Applications - Icecast
    Mediaplayers that support Icecast streams ; XMMS (MP3, OGG Vorbis), Linux/Unix ; Xine, Linux/Unix ; foobar2000 (MP3, OGG Vorbis), Windows ; Winamp 2.x/5.x (MP3, OGG ...
  27. [27]
    XMMS and online radio - Linux - Software - LinuxQuestions.org
    Dec 26, 2008 · check the two checkboxes on the bottom, "Enable Shout/Icecast title streaming," and "Enable Icecast Metadata UDP Channel. ... shoutcast and icecast formats ...Need help with Icecast or Icecast2 setupShoutcast / CLI...More results from www.linuxquestions.org
  28. [28]
    Winamp Skin - Just Solve the File Format Problem
    Oct 5, 2018 · Winamp Skins are distributed as .wsz or .zip files. Their contents consist of ZIP archives with a directory structure that can be read by the ...
  29. [29]
    Creating Winamp Skins - bjoreman.com
    This guide is written after use of Winamp 2.5c, but is probably fully correct for other versions as well. Right, let's do it!Missing: x 256 vector
  30. [30]
    Winamp - Wikipedia
    Winamp is a media player for Microsoft Windows originally developed by Justin Frankel and Dmitry BoldyrevJustin Frankel · Nullsoft · Radionomy
  31. [31]
    FreshPorts -- multimedia/xmms-skins-huge
    Jun 19, 2011 · XMMS is not going away soon, so unexpire the plugins that build. 1.0.0 23 Mar 2014 21:59:04. Revision:348894 · Original commit · files touched ...<|separator|>
  32. [32]
    Skinamp – a skin maker for Winamp | Sascha Hlusiak
    Numerous skins were created with this tool, swamping the skins download section of winamp.com, which once only had unique and high quality skins. Sorry for the ...
  33. [33]
    Skinning XMMS with BuildImage and Skencil
    Aug 9, 2005 · Now launch XMMS, and press the “O” options button and select “Skin Browser”. You should find the new skins there (the names are defined in the ...
  34. [34]
    CoverViewer Xmms Plugin
    ### Summary of CoverViewer Plugin for XMMS
  35. [35]
    goom
    ### Summary of Goom
  36. [36]
    FreshPorts -- graphics/goom: Visual effects library
    Goom is a visual effects library with optional xmms plugin. Number of commits found: 39. Login. User Login · Create account. Servers and bandwidth ...
  37. [37]
    Youki | Software Wiki - Fandom
    Youki is a free software media player for most modern Unix operating systems. It is a superficially simple player, but under the hood features a library based ...Missing: fork | Show results with:fork
  38. [38]
    Audacious 4.3 Audio Player Adds PipeWire Plugin, Native Opus ...
    Mar 7, 2023 · Highlights of Audacious 4.3 include a new PipeWire output plugin, a native Opus decoder plugin, support for Ogg FLAC audio streams, support for reading ...
  39. [39]
    Download - Audacious - An Advanced Audio Player
    Current stable release: 4.5.1 (September 7, 2025) ... Older releases, along with the legacy libaudclient library, are available here. Microsoft Windows.
  40. [40]
    Azucar Xmms2 Frontend @ GitHub
    XMMS2 is a project started (in late 2002) by one of XMMS's original authors - Peter Alm - to produce a "kick-ass music player" (much like the world's ...
  41. [41]
    xmms2d(1) - Arch manual pages
    xmms2d is the daemon through which XMMS2 clients playback and manage music. A client library provided allows third parties to easily write XMMS2 clients, ...Missing: modular | Show results with:modular
  42. [42]
    The official XMMS2 command line interface - Ubuntu Manpage
    XMMS2 is a redesign of the XMMS (http://legacy.xmms2.org) music player. It features a client-server model, allowing multiple (even simultaneous!) user ...Missing: modular | Show results with:modular
  43. [43]
    xmms2 installation on mac 10.7.5 fails using macports - Stack Overflow
    Dec 29, 2012 · try install a different variant of xmms2 . Type port variants xmms2 xmms2 has the variants: cpp: C++ development support perl: Perl ...
  44. [44]
    [PDF] XMMS2 Collections
    Abstract the structure of the media library. • Simplify querying of subsets of the media library. • Share abstraction of such subsets among clients.
  45. [45]
    Debian -- Details of package xmms2-plugin-avcodec in sid
    XMMS2 - avcodec decoder. XMMS2 is a redesign of the XMMS music player. It features a client-server model, allowing multiple (even simultaneous!) user ...
  46. [46]
    xmms2 - Debian Package Tracker
    Created: 2024-08-07 Last update: 2025-11-10 06:31. A new upstream version is available: 0.9.6 high. A new upstream version 0.9.6 is available, you should ...
  47. [47]
    XMMS2 Development tree - GitHub
    This README file is for the "Developer Release" series of XMMS2. "Developer Release" means that the release is not aimed at your grandma, but rather at ...