XMMS2 - Design Concepts

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:

  • 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 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 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 and Music on Console.

Read more about this topic:  XMMS2

Famous quotes containing the words design and/or concepts:

    Joe ... you remember I said you wouldn’t be cheated?... Nobody is really. Eventually all things work out. There’s a design in everything.
    Sidney Buchman (1902–1975)

    During our twenties...we act toward the new adulthood the way sociologists tell us new waves of immigrants acted on becoming Americans: we adopt the host culture’s values in an exaggerated and rigid fashion until we can rethink them and make them our own. Our idea of what adults are and what we’re supposed to be is composed of outdated childhood concepts brought forward.
    Roger Gould (20th century)