(How to) IgorSki spins CDs (connects CD Transport) through HQPlayer Embedded

The goal: Connecting a CD Transport to HQPlayer Embedded Server in “elegnat” way. Benefiting from fully-fledged DSP and Room Correction and other features of HQ Player. And that is keeping CD Transport in the listening area (sort of normal, isn’t it?) but resting noisy and mighty HQPlayer Embedded Server in storage room “far far faraway”.

This topic really are the side-notes and remarks I took in making my very own set up. This is not at all “the standard” and rather is a very short spin-off from the mother-ship thread: " Using any audio source with HQPlayer - Spotify, Amazon, Apple Music, YouTube Music, Deezer, Soundcloud [2023] - Audio Gear Talk / HQ Player - Roon Labs Community"

The strategy is based on “input NAA” functionality available in HQPlyer ecosystem. That is using NAA device for the input and transitioning the source to HQPlayer station for DSP processing.

My current set-up is more or less Roon / HQPlayer classic. I have in my utility room the Roon ROCK running on NUC 10i7 feeding (ethernet) the HQPlayer Embedded Server machine (Linux Ubuntu 22.04.4) feeding (ethernet) the RPi4 NAA which is alrady in listening area feeding (USB) HoloAudio MAY DAC. This very digital system is controlled via iPad or iPhone primarily with Roon control.

After some exhange in “mother-ship” threat at least two scenarios for “elegant” integration were discussed:

  1. Dropped: Using miniDSP USBStreamer B (now is out of stock and probably replaced by MCHStreamer Box - USB Audio Swiss-Army knife (minidsp.com) - this scenario is assuming that the USBStreamer device is connected to the already existing RPi4 NAA. But after going into details I saw few complications with USB-C docking, power supply, USB A - USB C cable, etc… plus config “trial and error”. Finally I dropped this option as unnecessarily “complex”, howerver this is still a real scenario.

  2. Selected: Using HiFiBerry Digi+ I/O | HiFiBerry. Obviously this one is used in conjuction with RPi4 board. HiFiBerry sells pretty nice steel case as well Steel case for HiFiBerry Digi, Pi 4, V2 | HiFiBerry

Hardware

Ok, now with the scenario for “elegant” integration selected, this is the list of the things you will most probably need:

  1. CD Transport (isn’t that obvious?) with Toslink/SPDIF output. In my case it is Cambridge Audio CXC Compact Disc Transport CX Black Edition - note that the size of the transport is amazingly almost 1:1 match for HoloAudio MAY / Serene ecosystem. And the unique black color is equally perfect match for the stack. So, my choice of CD Transport (in it’s mid range price segment) has equal part of aesthetic to the overall set-up.

  1. Input NAA, i.e. “the receiver” components:
  • Raspberry Pi 4 4G Model B
  • Raspberry Pi Official Raspberry Pi 4 Power Adapter USB-C (OK, power supply is a separate topic, you may choose whatever you wish following your experience or educated or subjective opinion. I pick official RPi4 powesupply.)
  • HiFi Berry Digi+ I/O
  • Steel case for HiFi Berry Digi, Pi 4, V2
  • SD card 32GB

  1. A bit unexpected…
  • Somethig similar to Micro HDMI to HDMI 2.1 8K Adapter (HDMI) - this is to connect your RPi4/HiFi Berry Digi to the Screen. You also can use Micro HDMI to HDMI cable. Or whatever your available screen requires. Whatever you choose, please Note, this is Micro HDMI on RPi4 side !
  • USB Keyboard

Software

Ok, now the most tricky part - the necessary config lines to have this working. It looks very logical once you have a grip of it (but not obvious at all, I must say).

  1. Configuring RPi4 Hifi Berry Digi
  • today (May 2024) we are using the NAA 5 image for RPi4: NAA-500-Raspberrypi4-HoloRed
  • after you “burn” the image on the SD Card you need to to add two lines at the bottom of config.txt, they are:
force_eeprom_read=0
dtoverlay=hifiberry-digi
  • configuring /etc/networkaudiod/networkaudiod.xml - this is when RPi4 is already booted, and now this is where you will need the connection of your RPi4 / Digi to the screen. This is the line you will need to add to the networkaudiod.xml file:

<input channels="2" device="hw:CARD=sndrpihifiberry,DEV=0" format="auto" name="HifiBerry Digi+ I/O" nperiods="4" pack_sdm="1" period_time="100"/>

  • This will make it appear as “HifiBerry Digi+ I/O” input device. It should also appear under it’s regular name, but this is more convenient and allows some extra adjustments through the config file.
  1. HQPlayer Embedded - manual configuration :
  • You will need to add something like this at hqplayerd.xml side:

<input address="naa-XXXXXXX" device="hw:CARD=sndrpihifiberry,DEV=0" ipv6="1" name="DigiIO @44.1k" samplerate="44100" type="network6"/>

  • Note: instead of naa-XXXXXXX you put the detected name of your own RPi4/Digi
  • Note: the “device” attribute can also point to just name of the virtual device defined in networkaudiod.xml
  • Note: you can change the attribute “name” to your liking, I have name=“Cambridge Audio CXC”
  1. HQPlayer Embedded - web inteface configuration
  • you are almost done! pick your favourie playback setting combination PCM / SDM, filters etc…
  • in the “Input” tab you should be able to see your “name” device in drop down list. Pick the selection and don’t forget to click “Select”
  • in the meanwhile insert your CD and click play on CD Transport.
  • it will take few seconds depending on rate/filter/modulator selection to initialise and playback should start as normal
  • on the “Main” page you should see “Playing” in a status and your “name” device in “Song”

Voila. Done. Enjoy.

Another reference thread is here: HQPlayer OS Raspberry PI USB Input - Audio Gear Talk / HQ Player - Roon Labs Community

Special thanks to @dabassgoesboomboom and @Stefano_Antonelli for support and inspiration !!!

5 Likes

“that is the question” (c) spoken by Hamlet

In my library I have a collection of digital rips including CD’s, DVDA’s, LP’s and few hundreds of SACD’s. The recent progress in digital HiRes streaming is immense and there are a lot of music out there. However more often than not I strat catching me thinking that true art aspect of some recordings is being totally lost by increasingly non-stop AI playlists clulture or approach. There are albums that are incredible pieces of work from the content, mucisal, poetic and recording perspective. So more and more I miss this ritual, of having an album, putting it in, enjoying every detail of it, and when it stops, having just WOW and silence… Can I do the same vith digitized source, certanly yes, but I think the large part of art concept is missing.

1 Like

HQPlayer Embedded System Specs, a possibility to elevate RedBook CD experience…

SW:
Ubuntu 22.04.4 + Kernel 6.6.16-jl + HQEmbedded Server (hqplayerd_5.6.1-18_amd64)

HW:
RAM: G.Skill Trident Z5 (2 x 24GB, 8400 MHz, DDR5 RAM, DIMM)
MB: ROG MAXIMUS Z790 APEX ENCORE | Gaming motherboards|ROG - Republic of Gamers|ROG Global (asus.com)
CPU: Intel Core i9 14900KS
GPU: MSI GeForce RTX 4090 Ventus 3X OC

System runs at “stock” settings (that is without enabled XMP profile)

  • RedBook CD can smoothly be played with ASDM5EC-light 512+fs SDM@1024, with most demanding filters like Sinc-L, Sinc-MGs. Sinc-LL, including convolution and speaker placement correction.

  • with “DAC Correction” feature enabled in “Matrix” engine, system plays stably at SDM@512 (for RedBook CD) and generally at SDM@512x48 at all combinations I have tried so far, that is ASDM7EC-light 512+fs or ASDM7EC-super 512+fs modulators with filters of my preference: ext3, xla, MGa, gauss-long, sinc-L, sinc-LL, short-mp, long-lp-2s, and few others… (including convolution)

2 Likes

I would say worth enabling the XMP profile though. That will bring your RAM to the specified 8400 speed. Otherwise it s something lower…

Short update. Today the latest image for RPi4 is: NAA-502

It is no longer necessary (and I wonder if it was before) to configure /etc/networkaudiod/networkaudiod.xml on remote NAA for the described scenario.

You only need to add two entries into config.txt * after you “burn” the image on the SD Card:

force_eeprom_read=0
dtoverlay=hifiberry-digi
2 Likes

Thank you for sharing this nice project with in deep guidelines!
I am also in the same road.
Could you please reply what max sample rate you can output to your DAC?
Full output (192000/24-bit) from HiFi Berry Digi+ I/O or is it locked to CD quality (44.1k)?

My concern is that we need to manually input sample rates (networkaudiod.xml and hqplayerd.xml) to get HiFi Berry Digi+ I/O detected and working.

In short, is the output locked to the input sample rate 44.1k?

1 Like

You shouldn’t need anything else, redbook cd is 16/44.1 only, anyway the sample rate is defined in the configuration string

2 Likes

Hello @Ne_Su,
your question comes with amazing timing because exactly today I had simplified my NAA set-up removing “output” NAA RPi4. Now my “HiFi Berry Digi+ I/O” is an “Input” and “Output” NAA at the same time. One less Ethernet cable and one less power adapter. With recent NAA version the configuration process became simplier than I have originally described, importantly you don’t need to configure networkaudiod.xml !

To recap (Today Oct 2024):

Hardware

  1. CD Transport (as described above)
  2. “Input / Output NAA” (same device as described above):

Software Configuration

  • Configuring RPi4 Hifi Berry Digi (very easy)

Today (Oct 2024) we are using the NAA 5.02 image for RPi4: naa-502-raspberrypi-holored.7z After you “burn” the image on the SD Card (i personally use Rufus for this purpose) you need to edit config.txt which you will find on SD Card.

Step 1. Please make sure this section in config.txt is exactly like it is described here (host commented with “#”, peripheral not commented with “#”)

# Enable USB output on Holo Audio Red and similar
# (change this to device mode for UAC2 input)
#dtoverlay=dwc2,dr_mode=host
dtoverlay=dwc2,dr_mode=peripheral

Step 2. Add the following two lines to the bottom of config.txt (I always do it, but may be it is not necessary…)

force_eeprom_read=0
dtoverlay=hifiberry-digi
  • Configuring HQPlayer Embedded (very easy)

You will need to add the following line to hqplayerd.xml :

<input address="naa-XXXXXXX" device="hw:CARD=sndrpihifiberry,DEV=0" ipv6="1" name="DigiIO @44.1k" samplerate="44100" type="network6"/>

  • Note: instead of naa-XXXXXXX you put the detected name of your own RPi4/Digi
  • Note: you can change the attribute “name” to your liking, you will see it in the “Input” section of your Embedded

The rate is locked. @Stefano_Antonelli has described this precisely. For CD player / “Redbook” format you only need 44100 - and this you configure in hqplayerd.xml

This is how “final product” looks in HQPlayer for me (now listening to David Bowie, Black Tie White Noise)

PS: You may however have some device that would play higher rates, like 48000 or 96000 or higher, for example some type of AD for Turntable. You can add extra configuration lines (as above but with different rate in it) to hqplayerd.xml - if you want to switch the rates for some pupose. But I don’t remember how high HiFi Berry Digi+ I/O can go with the rates…

1 Like

Are you saying that you can

  • send the stream from the cd transport to the rpi4 through the hat
  • use the same rpi4 at the same time to send the output to dac

How is the dac connected to the rpi4? Using usb-c or usb-a?

Thank you IgorSki for explanation and guidance!!! This is very helpful.
Now I can confidently order Raspberry Pi4 + HiFiBerry Digi+ I/O.

1 Like

Correct!!! Isn’t that awesome!?

This is how it looks now

  1. Standard RPi4 power adapter
  2. CD transport to HAT via Toslink
  3. Ethernet to RPi4
  4. USB-A to USB-B to DAC (HoloAudio MAY)

It receives and sends at the same time.

2 Likes

More specific on “Input/Output NAA” in my use case…

  1. This is how hqplayerd.xml looks from inside

Note: highlighted in black in the first line is the standard “output NAA” with “frienfly name” - that is what HQPlayer Embedded determined automatically. The second line is added manually, and goes with the same address as “output”, and I use the name=“Cambridge CXC CD Transport”

  1. This is how it looks in HQPlayer Embedded web configuration page


    “two” functions of NAA is determined, so here you certainly set the one for your DAC

  2. And this is an “Input” section of HQPlayer Embedded Web interface (in my case). You can see the name I gave to NAA - “Cambridge …” in selections.

I tried your very same configuration but unfortunately I cannot get it work as Input and Output at the same time, that’s a mystery …

Oh, this is unfortunate. Could you tell at what stage it is not working for you? Like a) HQPlayer Embedded “Configuration” page does not see devices or b) everything can be “seen” and selected in “Configuration” and “Input” but it just does not play ?

HQPlayer can see all the devices but when I select the NAA for input and the same NAA for output it cannot play , the Play button doesn’t work … if I select another output NAA then it works
.
I’m running last NAA OS 5.0.2 and last HQPe 5.8.1 on Ubuntu 24.04.1

@IgorSki

Thanks for the great write up. I do wonder if you have compared sonic differences, if any, with this approach utilizing the input NAA feature vs ripping the same cd and play it directly with hqplayer?

I have been using the usb input NAA approach for qobuz and local contents and are happy with it but I like to hear from other folks what their experiences are with the usb input NAA vs direct hqplayer

Thanks

Deric

@Stefano_Antonelli , I confirm the same software levels on my side + latest CUDA drivers.

I have taken out an SD Card from my “Input/Output” NAA to triple check the “config.txt” Do you have the same lines at the bottom of your config.txt file ? After “burning” a NAA image on SD card - the “host” is not commented and “peripheral” is commented with “#” so it is important to edit and change to exactly like it is below:

# Disable wireless
dtoverlay=disable-bt
dtoverlay=disable-wifi

# Enable USB output on Holo Audio Red and similar
# (change this to device mode for UAC2 input)
#dtoverlay=dwc2,dr_mode=host
dtoverlay=dwc2,dr_mode=peripheral

force_eeprom_read=0
dtoverlay=hifiberry-digi
  • what “play” button do you refer to ?
  • hm, do you have multiple NAA’s ? (in my setting I only have one)

Here is how I have it running on my side… I normally use the HQPlayer Web page to control HQP (Although I have “HQPDControl v4” and “HQPlayer 5 Client” on my iPad as well, I use them less).

Play CD:

  1. As I wrote above, in configuration page - refresh couple of times to make sure HQP picked up the devices from the network, and set the correct NAA variant connected to your DAC. I guess you do exactly this as you described.

  2. On the input page when I select my “input”, which is in my case “Cambrige la la la”, I click on “Select”. This apparently triggers an internal select operation because page freezes for some time.

  3. I click on “Main” page in web interface and there I can see the “State” = “Playing”. Roughly this would means that HQP is reading from Toslink.

  4. Now I can click play on my CD Transport, wait some time for buffering depending on the filter and get my CD playing…

  5. If I want to play from Roon I really don’t need to do anything special at all. I just stop the CD Transport (physically I mean, but even this is not necessary, it can continue spinning…) and select what I want to play in Roon on my iPad and with very short delay the sytem picks up the Roon stream.

  6. If I want to swich back to CD Transport, I go again to “Input”, check Input selection and click “Select”

This does the trick for me…

Now, I have tried similar with iPad “HQPlayer 5 Client” - when I select my “Cambridge la la la” in the drop down, I need to click “Play” button on the iPad screen couple of times, but it works. Switching to Roon and back to CD works in Client allright…

Hi @Deric_Chan , to answer directly to your question - NO, i did not do such comparison. In theory I would dare to think that properly ripped CD (say with EAC) with correct offset, thousand error checks, multiple runs and AccurateRip verification would be probably somewhat better quality that real time CD Transport run, no matter how much of the space technologies are involved in mechanics of CD Transport. Wheather this will be noticable, is debatable. But don’t get me wrong, real CD through HQPlayer sounds totally amazing.

To me this is not the point. I personally am going after CD’s for aesthetics, an artistic aspect, so to speak. And same as with streaming content some CD’s do sound impecable, and some are unexpectedly total disappoinment in the way they are recorded. And I don’t want to replecate a library of streaming service via my physical CD library, only the selected works (for my personal taste) to keep. The rest I can easily stream, no problem, or have recorded on a hard drive, all the same…

Here’s my earlier quote on the subject. It’s just me

2 Likes

Thanks for your prompt response @IgorSki

I think the impression I get from your response is that the input NAA approach is at least good enough to a point you don’t feel the need to listen to the actual cd being played to hqplayer…

I am debating if I should make a switch from hqplayer desktop to hqplayer embedded for the same dilemma. With hqp desktop I would be using the usb input NAA feature for qobuz and local library content. With embedded, I would skip the usb input NAA feature altogether and simply stream to embedded…

I kept going back and forth to compare sound quality between usb input NAA vs simply playing directly from hqp client but can’t really come up with much differences, let alone conclusion…

There were times when I thought hqp client sounded better, I then switch back to USB input NAA for the same track and the differences are gone…

That’s why I want to hear from others’ experiences.

If sound quality is not impacted then there’s no point for me to switch licenses

1 Like

Experiment to test multiple RPi4 NAA’s (both are on the photo)

  1. HifiBerry - input/output NAA connected to Holo MAY DAC and CD transport, etc…

  2. Ordinary RPi4 (funky blue case) - output NAA connected to Tanchjim Space dongle DAC and Hifiman Sundara…

Both can reproduce CD Transport and Roon Stream allright. However switching between NAA’s in HQPlayer requires several clicks in Configuration to adjust output rate, etc…