Summary
We developed 3 LMS plugins exclusively for AAMS: WinPlayer, UPnP Player, and CD Ripper. These plugins elevate AAMS user experience and improve its sound quality significantly, making AAMS XT the best sounding music server we have developed so far.
Lyrion Music Server (LMS)
LMS is used by a number of heavyweight music server manufacturers with heavy customization. Our approach is different. We did not touch the LMS original codes but we developed LMS plugins only, the important ones which matter. The plugins we developed are installed through repository XML link (stored on our server) which automatically update the plugins when new versions are available.


The three plugins were developed use combination of Perl and C++/C#. Mission critical codes such as audio rendering were written in C++ and run its own pro-audio process. UPnP XML text parsing and creation is too slow in Perl (interpreted language) so we moved them into C++ codes, running its own process as well. C# codes are only used for CD Ripper CUETools library interface. There is no need to install CUETools – all the necessary DLL files are bundled with plugin.
LMS Windows Player
This is the enhanced audio player / renderer derived from the original SqueezeLite. Squeezelite supports various platforms (Linux, Windows, macOS, Android, Solaris, and ESP32 microcontrollers). On Linux, ALSA is used while for Windows and macOS, PortAudio is used.
The plugin we developed is called LMS Windows Player (WinPlayer). It is derived from SqueezeLite but with PortAudio dependencies completely removed. Instead, direct interface to Windows audio engine is used. We have total control of how rendering is done instead of relying on third party library. We only allow selection of WASAPI or WDM-KS (Kernel Streaming) since the others (except ASIO) are not bit-perfect. We never like ASIO interface since it is just another layer above Windows driver model. Windows audio engine has improved so much that WDM-KS has the best SQ followed by WASAPI, with ASIO trailing behind.
WinPlayer works with or without Windows audio driver for the specific USB DAC being used. The user needs to test which one sounds better: with or without driver. The tests need to be done for both WASAPI and WDM-KS. In our own system, when using Holo May KTE DAC, it sounds better with Thesycon driver installed and WDM-KS sounding better compared to WASAPI. When used with our second DAC, Marantz SA-10 USB DAC input, it sounds better without Marantz driver installed. Again, WDM-KS sounds better than WASAPI.
Another important parameter for each DAC is its bit depth. Taiko Audio has a very good document on recommended USB profiles for well-known DACs when used with their Taiko USB Driver. The recommended bit depth documented here should be followed. Our WinPlayer has bit depth setting for each DAC. For example, Holo May KTE DAC sounds the best with 24-bit setting while Marantz SA-10 USB DAC input sounds the best with 32-bit setting. The bit depth optimal settings for these two DACs match Taiko’s recommendation. If you are unsure which bit depth setting to use with your DAC, start with Taiko’s recommendation. Proper setting of bit depth of each DAC has huge impact to SQ.


LMS UPnP Player
This PlugIn is a lightweight UPnP Player or Endpoint. It does not include UPnP Server functions. The design approach was intentional – we prioritize the best way to stream music for best sound quality by:
- using readily available LMS FLAC Radio for secured TIDAL/Qobuz streaming
- using the best-in-class audio renderer, WinPlayer, which we developed
- designed specifically for JPLAY iOS UPnP controller and works for mConnect
Why We Developed This
We have been using BubbleUPnP controller for TIDAL streaming which supports bitrates up to 192k. WhiteBear UPnP Media Server PlugIn is installed into Windows as a service. WhiteBear is free (but not open source) and not maintained for a long time, causing it not to work with the very popular UPnP controller called JPLAY iOS.
The recently updated UPnP/DLNA Media Interface PlugIn for LMS does not work 100% with JPLAY iOS. This plugin is 100% Perl which struggles when parsing XML for mission-critical UPnP.
We decided to develop our own UPnP Player from scratch instead of modifying UPnP/DLNA Media Interface. One very important feature we want is the ability to stream TIDAL and Qobuz using secured URL with includes subscriber token, i.e. streaming account authorization is done inside JPLAY iOS. Fetching music data from TIDAL or Qobuz server is done directly by LMS Flac Radio, not iOS phone or tablet. WhiteBear UPnP indeed uses LMS FLAC Radio.
With the removal of WhiteBear UPnP Media Server from Windows, the bump in sound quality for LMS local playback is very significant. What thrilled us more is that TIDAL/Qobuz streaming sound quality we get now is very close to local playback when tested on our own flagship music server, AAMS Extreme with AA SiG XT USB cable into Holo May KTE and Marantz SA-10 DACs (only one DAC is connected at a time).
LMS Material Skin interface enables excellent local music files browsing and playback sound quality. We don’t see the need to use UPnP controller to browse LMS local files as it adds unnecessary overheads and affects sound quality.
We have tested this UPnP Player PlugIn thoroughly with LMS v9.1.1 running on Windows 10 21H2 IoT Enterprise LTSC. Both Qobuz and TIDAL streaming were tested successfully. Screenshots of JPLAY for iOS and mConnect are shown below.






Supported UPnP Controllers
There are only 2 UPnP controllers which send secured streaming URL with subscriber token to the endpoint : JPLAY for iOS and mConnect. This means that the UPnP endpoint/renderer fetches data directly from streaming database. Most other UPnP controllers proxy the streaming (i.e. the tablet or phone downloads the streaming tracks) and ask the UPnP renderer to read the proxied stream data.
This plugin has been tested with JPLAY for iOS and mConnect (for iOS) only. Apparently the Android version of mConnect has a problem that it cannot stop music playback, can only pause.
When JPLAY for iOS is used, the 2-way UPnP eventing is fully supported. This means there is no need for the UPnP controller to poll the UPnP endpoint to get playback status. Unfortunately this feature is not available in mConnect – it polls at a fixed time interval and these extra network activities degrade the SQ.
CD Ripper
It is a well known fact the best CD rippers run on Windows. I have used Exact Audio Copy (EAC), a free CD ripper which runs slowly but generate perfect output files. The biggest drawback is that it does not create WAV files with metadata tags. After ripping, we need to manually edit the metadata with software like MP3tag editor, a very painful and time-wasting process.
The LMS CD Ripper plug was originally developed for my own use. After ripping about 200 CDs, the CD Ripper plugin went through a lot of changes which make it more robust. Salient points:
- We use open-source CUETools library which we consider is better than EAC. It has the ability to repair whole-disc rip based on CTDB parity data, something EAC cannot do.
- We include all possible metadata sources such as CTDB, MusicBrainz, Discogs, and CDDB. We actually registered our CD Ripper app with CDDB before we can get access to its metadata database.
- We include all possible cover art sources such as CTDB, iTunes, Discogs, Deezer, and Cover Art Archive. When cover art cannot be identified for rare CDs, we let user search and enter the cover image URL.
- We also include ability to detect whether a CD has pre-emphasis by checking its table of content or manually set by the user when pre-emphasis flag is embedded inside the tracks. SoX de-emphasis algorithms are used in this CD Ripper.
- The generated tracks, whether in FLAC or WAV, include metadata tags readable from Windows or any other audio players.


We have tested with a Chinese CD and the metadata loads fine. There are some Windows setting required to make LMS able to display UTF-8 characters correctly.



Display UTF-8 Characters in LMS
If you want LMS to display Chinese characters or “CĂ©line Dion” correctly, you need to change Windows setting. Here are the steps (read each picture’s caption).
Please note that the steps below are only required if you purchased AAMS before Sept 2026.






Load LMS Service with -UTF8
We need to launch Registry Editor to append the ImagePath of squeezevc (the background service of LMS) with –charset=utf8.

Type the following text into the path of Registry Editor as shown below:
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\squeezesvc



Restart LMS or reboot AAMS. To confirm that UTF8 setup was done properly, check LMS Info screen after LMS restart or AAMS reboot. It is supposed to show -utf8 on the right most side of Operating system, under Server category.

WAVE 2026
We will demonstrate these newly developed capabilities during the upcoming WAVE 2026 show 25-27 September 2026 at Royale Chulan Damansara, Petaling Jaya, Malaysia. Please come visit us and experience elevated level of music playback experience (both local files and streaming) in our room 433.

About US
We are a one-man company based in Penang, Malaysia. For the past few years, we make and sell music servers, USB audio cables, and linear power supplies.
Our Motivation
Roon is the de facto and popular music management software which merges local files with streaming services. While we like its incredible user experience, we never like its sound. We like LMS so much but received feedback that for music streaming, the user interface is not good enough.
With these custom plugins for LMS, we are happy to report that the SQ is class leading for both local files playback and streaming. The CD Ripper plugin creates a new benchmark for bit-perfect rips complete with tags automatically embedded in the WAV files, not to mention the auto repair capability.

