Transform Plugins - nesciens/xmms2-wiki GitHub Wiki

Overview

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.

Plugins

Playlists

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

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

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

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

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

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

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

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.

Others

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).