Logitech Media Server on Windows 10

Since most Linux audio playback software are based on Logitech Media Server (LMS), including Innuos Zenith Mk2 that I have (up to version 1.49), I am very curious how good is LMS. I don’t have much experience with Linux, so I thought why not try build LMS on Windows 10.

LMS is supposed to be a dead product since 2012 when Logitech discontinued their hardware media players but LMS is still not dead. The open sourced LMS, written in Perl, is still maintained by community and works for Linux (ARM and x86), Windows, and macOS.

I cloned the SSD which has Windows 10 and HYSOLID already optimized for background services. In the cloned SSD, I removed HYSOLID. LMS installation is pretty easy, just download the correct version and install it. Once installed and LMS running, the settings can be done remotely using a web browser. In the screenshots below, the IP address of my streamer is fixed at 192.168.1.104, so to access LMS playback screen, key in 192.168.1.104:9000 at the browser. There is a button at bottom right to enter Settings.

LMS Basic Settings

Since music files are already inside a separate 2 TB local SSD, and all my other software tests are based on local playback, I need to find a player for LMS. Luckily, Local Player based on Squeezelite is available as a third party PlugIn which I need to enable. Both LMS and Local Player are set to start before Windows login screen, similar to HYSOLID setup I described in my earlier post. That means both of them are running in the background and there is no need for Windows to be logged in.

Local Player PlugIn

By default, the Local Player / Squeelite does not support DSD playback. Squeezelite has command line parameters, and the “-D” parameter tells the player that DSD should be sent as DSD over PCM (DoP). I was able to play up to 384k PCM and DSD 2x/128. Unfortunately, Squeezelite on Windows does not support native DSD playback unlike the Linux version of Squeezelite which uses “-D :u32be” parameter where U32_BE is the DAC mode for native DSD playback. With native DSD support available on Linux, DSD 4x/256 is possible with my DAC, but only with LMS on Linux.

Local Player Settings

Indexing local music library of about 1.2 TB by LMS takes about 5 minutes for the first time. Once the LMS and player setup have been done, I setup the computer to be headless, removed HDMI cable to large screen tv and also keyboard + mouse. The boot is very fast, and boot completion clue is when the DAC locks to 44.1 kHz, very similar to any Linux-based players and also my Innuos Zenith Mk2.

By default, faders and volume control are enabled. These need to be disabled as shown below.

Player Settings

For playback control, I use Squeezer on Android, similar to how I control my Innuos Zenith Mk2 and also Daphile. It sounds pretty reasonable without any special tweaks, but not at the same level like Windows 10 + HYSOLID which sounds better. If I want to do further work on this, it is the Squeezelite player codes (already downloaded and they are in VS C++) that I need to examine and see how to read the whole playlist into RAM, make the player as a true Windows service, native DSD support, and playback bitrate up to the maximum supported by the DAC.

Unlike HYSOLID, LMS + Squeezelite has a lot more capabilities. It is also a media server, can play internet radio, and with Qobuz, TIDAL, and Spotify streaming support already integrated. HYSOLID can only play from one folder in local disk. In LMS, multiple music folders can be set, either local disks or network drives.

I will only come back to looking at Squeelite playback codes after I am done with the final PCB design, which is my top priority right now.

UPDATED 7th Aug 2021: With JPLAY FEMTO being so good, there is no need to develop my own playback software.

By Anwar

Dr. Anwar Ali is a consultant in the area of Operations Research / Decision Science. During his free time and as a side business, he builds high-performance and moderate-cost music streamer.