• Stars
    star
    864
  • Rank 52,774 (Top 2 %)
  • Language
    C++
  • License
    GNU General Publi...
  • Created about 10 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Lightweight Music Server. Access your self-hosted music using a web interface.

LMS - Lightweight Music Server

Last Release

LMS is a self-hosted music streaming software: access your music collection from anywhere using a web interface!

A demo instance is available. Note the administration panel is not available.

Main features

  • Recommendation engine
  • Audio transcoding for maximum interoperability and reduced bandwith requirements
  • Multi-value tags: genre, albumgenre, mood, albummood, albumgrouping, ...
  • Artist relationships: composer, conductor, lyricist, mixer, performer, producer, remixer
  • Release types: album, single, EP, compilation, live, ...
  • MusicBrainz Identifier support to handle duplicated artist and release names
  • ListenBrainz support for:
    • Scrobbling and synchronizing listens
    • Synchronizing 'love' feedbacks
  • ReplayGain support
  • User management, with several authentication backends
  • Subsonic API

Music discovery

LMS provides several ways to help you find the music you like:

  • Tag-based filters (ex: "Rock", "Metal and Aggressive", "Electronic and Relaxed", ...)
  • Recommendations for similar artists and albums
  • Radio mode, with endless filling of the play queue with tracks similar to what is there
  • Searches in album, artist and track names (including sort names)
  • Starred Albums/Artists/Tracks
  • Random/Starred/Most played/Recently played/Recently added for Artist/Albums/Tracks, allowing you to search for things like:
    • Recently added Electronic artists
    • Random Metal and Aggressive albums
    • Most played Relaxed tracks
    • Starred Jazz albums
    • ...

Subsonic API

The API version implemented is 1.16.0 and has been tested on Android using Subsonic Player, Ultrasonic, Symfonium, and DSub. Since LMS uses metadata tags to organize music, a compatibility mode is used to browse the collection when using the directory browsing commands. The Subsonic API is enabled by default.

Note: since LMS may store hashed and salted passwords or may forward authentication requests to external services, it cannot handle the token authentication method. You may need to check your client to make sure to use the password authentication method.

About tags

LMS relies exclusively on tags to organize your music collection.

Filtering

You can specify the tags you want to use to filter your collection. By default, genre, albumgrouping, mood and albummood tags are used. In the administration panel, you can set whatever tags you want, even custom tags.

Note: you can use the lms-metadata tool to have an idea of the tags parsed by LMS using TagLib.

Multiple album artists

LMS requires the ALBUMARTISTS and ALBUMARTISTSSORT tags to properly handle multiple album artists on the same album. As they are a custom tags, you may need to setup your favorite tagger to add them.

Note: if you use Picard, add the following script to include these tags:

$setmulti(albumartists,%_albumartists%)
$setmulti(albumartistssort,%_albumartists_sort%)

Keyboard shortcuts

  • Play/pause: Space
  • Previous track: Ctrl + Left
  • Next track: Ctrl + Right

Installation

See INSTALL.md file.

Contributing

Any feedback is welcome:

  • feel free to participate in discussions if you have questions,
  • report any bug or request for new features in the issue tracker,
  • submit your pull requests based on the develop branch.