Music Forem

Cover image for Lyrion Music Server - A Comprehensive Solution for Home Music Listening
chama-chomo
chama-chomo

Posted on

Lyrion Music Server - A Comprehensive Solution for Home Music Listening

I would like to introduce you to a somewhat lesser-known, yet in my opinion unjustly overlooked solution for music listening – whether from local storage or through paid streaming services.

Setting up LMS may seem not entirely trivial at first and requires some time to gather the necessary information and understand the entire architecture. Therefore, I decided to try to describe how I use this seemingly complex system at first glance.

While setting up LMS is not entirely trivial and requires some time, I believe my overview will motivate you to try this community-driven open-source solution that I use for listening through both headphones and speakers.

Note: In this presentation, I focus exclusively on the LMS ecosystem. Other components of the audio chain (DAC, amplifier, headphones...) are intentionally omitted for clarity.


LMS SERVICE SETUP (NETWORK LAYER/SERVER)

The core of the entire solution is Lyrion Music Server (LMS) – an open-source implementation of the former Squeezebox platform. It features an extensive ecosystem of compatible clients, modular extensions, and user interfaces (more at https://lyrion.org).

System Architecture:

LMS utilizes a distributed client-server architecture:

  • Server layer – a service running on a computing node (PC/NAS) that manages the music library and aggregates access to streaming platforms as well as locally stored files. It does not require direct physical connection to the audio chain.

  • Client layer – a software renderer that initiates requests for streamed data and transforms it into a digital audio signal directed to the end audio device (DAC, active speakers, DSP...).

Implementation in my environment:

Since I personally use the TrueNAS system for my home storage, it was a natural choice for me to install LMS directly on this device. TrueNAS offers LMS in its native application repository, which greatly simplifies the entire installation – there's no need to handle dependencies or manual service configuration.

Truenas

For alternative operating systems, comprehensive documentation is available: https://lyrion.org/getting-started/

The configuration involved defining paths to music files stored within the same storage system.

Paths setup


INTERFACE SETUP FOR AUDIO CHAIN INTEGRATION (CLIENT)

The LMS ecosystem offers a wide range of hardware and software clients capable of receiving audio streams from the server and integrating into the existing audio chain as a full-fledged digital source.

Squeezelite – headless software renderer

In my implementation, I use the squeezelite application (https://lyrion.org/players-and-controllers/squeezelite)

Squeezelite is a minimalist headless client (i.e., an application without a graphical interface); squeezelite can work as a service "invisibly" in the background of the system.

This application enables the transmission of digital signal, for example, via USB interface directly to a D/A converter (i.e., a device that converts digital signal to analog for headphones/speakers), while supporting advanced settings for techniques such as upsampling, frequency filtering, and precise control over audio buffers.

Some advantages of this solution:

  • Minimal system requirements – consumes less CPU and RAM
  • Elimination of interfering processes
  • Stability
  • Advanced configuration

Real Configuration Example

To illustrate the configuration possibilities of squeezelite, I'm showing my current initialization script:

#!/bin/sh
exec 2>&1
iw dev wlp3s0 set power_save off # deactivate WiFi card power saving mode to ensure stable connection

exec /opt/lms/player/squeezelite -o hw:CARD=DX9 -a 100:4:: -b 40000:400000 -p 45 -c flac,pcm,mp3 -r 352800 -R -u v:1A:1:32:95.4:104.6:46 >/var/log/squeezelite.log 2>&1
Enter fullscreen mode Exit fullscreen mode

Brief explanation of individual parameters:

  • Audio output configuration:

    • -o hw:CARD=DX9 – direct communication with audio device via ALSA (Advanced Linux Sound Architecture). This approach bypasses the system audio mixer, ensuring so-called bit-perfect transmission (if required) – audio data reaches the DAC exactly in the format in which it was originally stored, without any modifications.
  • Buffer management:

    • -a 100:4:: – audio buffer settings (initial size : period : format : mmap)
    • -b 40000:400000 – stream buffer (40MB output : 400MB input). A larger buffer means greater resistance to temporary fluctuations in network connection (so-called network jitter).
    • -p 45 – process priority. A higher value ensures that the operating system gives this process priority over others, minimizing the risk of audio underruns (a situation when the buffer empties and music is necessarily interrupted).
  • Codec and sample rate:

    • -c flac,pcm,mp3 – supported audio formats in order of preference
    • -r 352800 – maximum supported sampling frequency (sample rate) 352.8 kHz; higher value theoretically means higher quality.
    • -R – activation of resampling if needed
  • Upsampling configuration:

    • The goal is to move demanding digital processing outside the DAC and provide it with already "prepared" data.
    • -u v:1A:1:32:95.4:104.6:46 – upsampling algorithm definition

The upsampling conversions in this case will look like below:

  • 96kHz → 192kHz
  • 44kHz → 352kHz
  • 88kHz → 352kHz
  • 192kHz → 192kHz (passed through)

For detailed parameter configuration, I recommend studying: https://archimago.blogspot.com/2017/12/howto-musings-playing-with-digital_23.html


I use Squeezelite in two different configurations depending on the type of listening:

Headphone listening:

Passively cooled miniPC (HP T640) with a minimalist Linux distribution and squeezelite running in the background. Connection to the server is wireless, connection to the audio system is via USB interface to the D/A converter. The system is configured to activate automatic sleep when no connected D/A converter is detected, so the PC has minimal maintenance requirements.

Speaker listening:

Dedicated network streamer Holo Audio Red (https://kitsunehifi.com/products/holoaudio-red-ddc-network-streamer-1).

Connection to the audio system is also via USB interface to the D/A converter. For connection to the LMS server, I use LAN via a standard network cable.

The original operating system is replaced with piCorePlayer distribution (https://www.picoreplayer.org/landingzone_option1.html) – a dedicated system for audio applications compatible with the device's RPi architecture. This approach again allows me to utilize the advanced settings offered by squeezelite, i.e., custom DSP settings, filter curves, and upsampling methods.

Picoreplayer


CONTROL AND USER INTERFACES

I would like to emphasize that both mentioned variants (miniPC and Holo Red) represent purely headless solutions – applications without their own graphical interface. For actual control, music selection, and metadata display (information about album, artist, cover art...), I use:

Material UI – web interface

A modern responsive web interface running directly on the server, accessible from any device with a web browser. It is one of the most popular community interfaces for LMS, offering:

  • Intuitive navigation in the music library
  • Multi-room support (each client can play different content)
  • Display of advanced metadata and visualizations
  • Playlist and playback queue management
  • Responsive design optimized for mobile devices

The 'Material UI' web user interface provided by my NAS, where LMS provides this interface in my case at the address http://mynasserver.local:31101/

Material skin 1

Material skin 2

If multiple clients are detected, you can choose what content to play on each one separately.

Material skin 3

A brief presentation of the 'Material' web interface...

Material skin 4

Material skin 5

Material skin 6

XTUNE Player for iOS

In the second case, I often use an application created for the iOS ecosystem called XTune (https://x-music.app/en)

Xtune walkthrough 1

Xtune walktrough 2

Xtune walkthrough 3

Although it is paid, the developer continuously improves it and provides one of the highest quality mobile interfaces within the LMS ecosystem. Of course, various more or less successful applications are available for different platforms (iOS, Android, Linux, Web, etc.).


COMMUNITY EXTENSIONS

An undeniable advantage of LMS architecture is the ability to use community plugins. I personally use several of them, which in my opinion can often provide comfort comparable to other, even commercial and professional solutions, but without the monthly fees associated with these services.

Therefore, I would like to dwell on some of these extensions.

1. Streaming Platform Integration

LMS allows extension with support for additional streaming services (Tidal, Qobuz...). Configuration is straightforward – in most cases, it's enough to install the appropriate plugin and provide login credentials for the given platform.

Tidal plugin 1

Tidal plugin 2

Qobus plugin 1

Qobuz plugin 2

Note on Tidal integration: The Tidal implementation via LMS unfortunately does not yet support playback of music files in full Hi-Res quality, but sufficient lossless quality is still available.

2. Material Skin – advanced web interface

As already mentioned, Material UI represents one of the most popular web interfaces for LMS with modern design and rich customization options.

Material skin plugin

Key features:

  • Responsive design optimized for desktops, tablets, and mobile devices
  • Multi-room playback support with independent control of individual clients
  • Visualization of metadata, album covers, and artists
  • Advanced playlist and playback queue management
  • Theme customization options

3. SqueezeDSP – parametric equalizer

I came across this extension relatively recently, but it ranks among my most valuable extensions. SqueezeDSP provides a full-featured parametric equalizer (PEQ – Parametric Equalizer) integrated directly into the LMS architecture.

SqueezeDSP plugin

What is a parametric equalizer?

PEQ is a tool enabling precise correction of audio signal frequency characteristics. Unlike simple "bass/treble" controls, PEQ offers:

  • Precise control over specific frequencies (for example, 1.2 kHz)
  • Adjustment of the affected frequency band width (so-called Q factor)
  • Setting the gain or attenuation level in decibels (±dB)
  • Ability to create complex filter curves with multiple correction points

Installation:

SqueezeDSP requires several system dependencies (libraries for DSP processing), but the installation itself is not complicated and is well documented within the official LMS plugin repository.

In my case, I use SqueezeDSP primarily for correcting the frequency characteristics of headphones.

TIP: SqueezeDSP supports importing ready-made EQ profiles from the squig.link service (https://squig.link/)

Configuration example:

This is what the final form of the DSP extension looks like in practice – in my case, a full-featured parametric equalizer optimized for the headphones used:

DSP at work


CONCLUSION

I hope my journey has inspired you to at least try LMS. If you have any questions, feel free to contact me.

Happy listening!

Top comments (0)