• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

approot/H28-Apr-2021-1,9371,699

cmake/modules/H28-Apr-2021-344258

conf/H03-May-2022-8744

docker/H28-Apr-2021-181156

docroot/H28-Apr-2021-628521

src/H03-May-2022-35,87223,921

.gitignoreH A D28-Apr-202145 65

.lgtm.ymlH A D28-Apr-20211.1 KiB3532

.travis.ymlH A D28-Apr-20211.4 KiB5553

COPYINGH A D28-Apr-202134.3 KiB675553

INSTALL.mdH A D28-Apr-20216.8 KiB199153

README.mdH A D28-Apr-20213.9 KiB7457

README.md

1# LMS - Lightweight Music Server
2
3![GitHub release (latest by date)](https://img.shields.io/github/v/release/epoupon/lms) [![Build Status](https://travis-ci.org/epoupon/lms.svg?branch=master)](https://travis-ci.org/epoupon/lms) [![Language grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/epoupon/lms.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/epoupon/lms/context:cpp)
4
5_LMS_ is a self-hosted music streaming software: access your music collection from anywhere using a web interface!
6
7A [demo instance](http://lms.demo.poupon.io) is available. Note the administration panel is not available.
8
9## Main features
10* Low memory requirements: the demo instance runs on a _Raspberry Pi Zero W_
11* Recommendation engine
12* Audio transcode for maximum interoperability and low bandwith requirements
13* Multi-value tags: artists, genres, composers, lyricists, moods, ...
14* [MusicBrainz Identifier](https://musicbrainz.org/doc/MusicBrainz_Identifier) support to handle duplicated artist and release names
15* Scrobbling to [ListenBrainz](https://listenbrainz.org)
16* Compilation support
17* Disc subtitles support
18* ReplayGain support
19* Persistent play queue across sessions
20* _Systemd_ integration
21* User management, with several authentication backends
22* Subsonic API, with the following additional features:
23  * Playlists
24  * Bookmarks
25
26## Music discovery
27_LMS_ provides several ways to help you find the music you like:
28* Tag-based filters (ex: _Rock_, _Metal_ and _Aggressive_, _Electronic_ and _Relaxed_, ...)
29* Recommendations for similar artists and albums
30* Radio mode, based on what is in the current playqueue
31* Searches in album, artist and track names (including sort names)
32* Starred Albums/Artists/Tracks
33* Various tags to help you filter your music: _mood_, _albummood_, _albumgenre_, _albumgrouping_, ...
34* Random/Starred/Most played/Recently played/Recently added for Artist/Albums/Tracks, allowing you to search for things like:
35  * Recently added _Electronic_ artists
36  * Random _Metal_ and _Aggressive_ albums
37  * Most played _Relaxed_ tracks
38  * Starred _Jazz_ albums
39  * ...
40
41The recommendation engine uses two different sources:
421. Tags that are present in the audio files
432. Acoustic similarities of the audio files, using a trained [Self-Organizing Map](https://en.wikipedia.org/wiki/Self-organizing_map)
44
45__Notes on the self-organizing map__:
46* training the map requires significant computation time on large collections (ex: half an hour for 40k tracks using a Core i5)
47* audio acoustic data is pulled from [AcousticBrainz](https://acousticbrainz.org/). Therefore your audio files _must_ contain the [recording](https://musicbrainz.org/doc/Recording) [MusicBrainz Identifier](https://musicbrainz.org/doc/MusicBrainz_Identifier).
48* to enable the audio similarity source, you have to enable it first in the administration panel.
49
50## Subsonic API
51The API version implemented is 1.12.0 and has been tested on _Android_ using the official application, _Ultrasonic_ and _DSub_.
52
53Since _LMS_ uses metadata tags to organize music, a compatibility mode is used to navigate through the collection using the directory browsing commands.
54
55The Subsonic API is enabled by default.
56
57__Note__: since _LMS_ may store hashed and salted passwords or may forward authentication requests to external services, it cannot handle the __token authentication__ method defined from version 1.13.0.
58
59## Keyboard shortcuts
60* Play/pause: <kbd>Space</bbd>
61* Previous track: <kbd>Ctrl</kbd> + <kbd>Left</kbd>
62* Next track: <kbd>Ctrl</kbd> + <kbd>Right</kbd>
63
64## Installation
65
66See [INSTALL.md](INSTALL.md) file.
67
68## Contributing
69
70Any feedback is welcome:
71* feel free to participate in [discussions](https://github.com/epoupon/lms/discussions) if you have questions,
72* report any bug or request for new features in the [issue tracker](https://github.com/epoupon/lms/issues),
73* submit your pull requests based on the [develop](../../tree/develop) branch.
74