Transform Plugins

Erik Massop edited this page Nov 4, 2017 · 1 revision


XMMS2 uses a flexible plugin concept called transforms (main article: Transforms). Each transform does some work to help decode the input. Transform plugins are assembled into a chain at runtime to decode each song bit-by-bit.

Transform plugins (xforms) can be categorized into the following types (and possibly more): playlists, transports, demuxers, metadata, decoders, effects, outputs, special, and others.



Playlist xforms parse and load playlist files.

  • ASX - Advanced Stream Redirector xform, reads ASX playlists (made popular by Windows Media Player)
  • cue - Cuefile xform.
  • HTML - HTML xform.
  • m3u - M3U xform.
  • pls - PLS xform.
  • RSS - RSS xform, loads RSS playlists, like podcasts.
  • XSPF - XML Shareable Playlist Format xform.


Transports get raw data as a stream from a source such as a hard disk or internet radio.

  • CDDA - Compact Disc Digital Audio xform, reads audio CDs.
  • cURL - cURL xform, reads http, https, ftp, and other streams.
  • DAAP - Digital Audio Access Protocol xform, reads from DAAP shares (made popular by iTunes)
  • file - File xform, reads files from the local filesystem.
  • gnomevfs - GnomeVFS xform, uses Gnome's virtual filesystem to access many types of media.
  • MMS - Libmms xform, reads from MMS (Microsoft Media Services) streams.
  • samba - Samba xform, reads from SMB shares.


Demuxers (short for "demultiplexers") strip away container formats and pass on any relevant information from the container.

  • avformat - FFmpeg xform, demuxes asf and amr streams.
  • mp4 - MPEG-4 xform, demuxes MPEG-4 container format (made popular by iTunes).


Metadata xforms strip out metadata like ID3 tags and vorbis comments from streams.

  • icymetaint - ICY xform, extracts info from ICY headers in ShoutCast streams.
  • ID3v2 - ID3v2 xform, extracts ID3v2 tags.
  • ofa - Libofa xform, MusicDNS fingerprinting.


Decoders turn the encoded audio data into raw audio data that can be used by effects and outputs. Many of the decoders also extract metadata.

  • avcodec - FFmpeg xform.
  • FAAD - Advanced Audio Coding (AAC) xform.
  • FLAC - Free Lossless Audio Codec xform.
  • mac - Monkey's Audio Codec xform.
  • mad - Libmad xform, decodes MP3.
  • modplug - Modplug xform, decodes mod files.
  • musepack - Musepack Living Audio Compression xform, decodes mpc files.
  • sid - Libsidplay2 xform, decodes SID files.
  • speex - Speex voice compression xform.
  • vorbis - Ogg Vorbis xform.
  • wave - Wave xform, decodes .wav files.


Effects modify the raw audio data before it is sent to the output.

  • equalizer - Equalizer xform, to tune different frequency bands to taste.
  • replaygain - ReplayGain xform, normalizes audio according to settings stored in the file.
  • vocoder - Vocoder xform, produces a cool vocoder effect.


Outputs send the raw audio data out, usually to speakers, but also as internet radio streams or to the harddrive.

  • ALSA - Advanced Linux Sound Architecture output.
  • ao - Libao output.
  • coreaudio - Coreaudio output, for Darwin/OSX.
  • diskwrite - Diskwriter output, writes wave files to a location on the harddrive.
  • ices - Icecast source output, use this to create an icecast stream directly from XMMS2.
  • JACK - Jack Audio Connection Kit output, low-latency audio output.
  • nms - Neuros OSD output.
  • null - Null output, outputs nothing.
  • OSS - Open Sound System output.
  • sun - Sun output, for OpenBSD.
  • waveout - WaveOut output, for Windows.


Special xforms are built into XMMS2 and required for operation. They act as glue between certain xforms.

  • converter - Converts between PCM formats, often needed by effects and certain outputs.
  • magic - Identifies mimetypes of streams based on certain "magic bytes."
  • ringbuf - Ringbuffer xform which can be inserted where there is a mismatch in how frequently a stream is read.


These xforms don't fit in well in the other categories. Usually these are used to help other xforms and have little use on their own.

  • nulstripper - Removes null bytes (not audio) at the beginning of streams. This helps the magic xform.
  • XML - Used as a helper for XML-based playlist xforms (like RSS and XSPF).
Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.