Jump to content
IGNORED

Building NAA for HQplayer


kwatch

Recommended Posts

OK, it seems I won't be able to use the Xeon PC as NAA, The image won't boot with UEFI enable and secure boot is not an option in this ancient BIOS. And it seems like going down the Ubuntu Server 22.04 LTS minimal install is too technical for me.

 

So the options I'm considering:

On 7/25/2023 at 7:48 AM, Miska said:

Something like RPi4 in a steel case would work fine.

or a used NUC i3 - have seen them for U$50-100 on eBay US.

 

Which one would work/sound better as NAA? Either one would be powered by an LPS. I wouldn't need the NUC perform any other duty. 

Would they perform better than the old laptop that I'm using now with HDD, fan, SMPS?

 

On 7/25/2023 at 10:49 AM, proulxarts said:

I just went ahead and purchased GentooPlayer.  I’ve used it for years on my other system. It’s been rock solid.

I Googled GentooPlayer as I wasn't aware. It says "Available for Rpi-3B/3B+, Rpi-4B, PC X86" "PC X86" means it can be installed on a PC, like my Xeon PC?

Link to comment

Miska's NAA image on a Pi4, with a linear PSU and a fanless case is probably the best idea. I use one of these cases from Akasa. It's aluminum but what I like about it is the heatsinks are solid aluminum.

 

https://www.akasa.com.tw/update.php?tpl=product/product.detail.tpl&type=FANLESS CASES&type_sub=Raspberry Pi ASUS Tinker&model=A-RA10-M2B

 

If you want to get more esoteric, Chris, aka The Computer Audiophile, used a small board computer and some JCAT cards in his CAPS build for the NAA end. You can search for that and read all about it, and see the pictures. Or, Sonore has some endpoints as well, including two with optical ethernet input.

No electron left behind.

Link to comment
5 hours ago, LewinskiH01 said:

So the options I'm considering:

or a used NUC i3 - have seen them for U$50-100 on eBay US.

 

Likely works, but I personally think any Intel Xeon or Core CPUs are way too big for a NAA. How about the UP Gateway I'm using? Not quite as cheap though.

 

5 hours ago, LewinskiH01 said:

I Googled GentooPlayer as I wasn't aware. It says "Available for Rpi-3B/3B+, Rpi-4B, PC X86" "PC X86" means it can be installed on a PC, like my Xeon PC?

 

I guess yes, but I have never used GentooPlayer, so I don't know anything about it overall.

 

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment

Yes I am using GentooPlayer on a PC. I’ve used it for years on a Beaglebone as well.  It runs headless and you control it from a browser on any computer in your network. It has many options but you enable only what you need. You can get a trial but you have to email the developer.

Link to comment
On 8/1/2023 at 1:49 AM, AudioDoctor said:

Miska's NAA image on a Pi4, with a linear PSU and a fanless case is probably the best idea. I use one of these cases from Akasa. It's aluminum but what I like about it is the heatsinks are solid aluminum.

 

https://www.akasa.com.tw/update.php?tpl=product/product.detail.tpl&type=FANLESS CASES&type_sub=Raspberry Pi ASUS Tinker&model=A-RA10-M2B

Very nice case. Thank you!

 

They don't deliver to my location but I'll be in the US in a couple of months. So thinking of a temporary solution: Would the plain RPi4 board with appropriate electrical insulation around it work as NAA (until I get this case), or do I need heat dissipation beyond natural convection in an open board with air inflow from below?

Link to comment
7 hours ago, LewinskiH01 said:

Very nice case. Thank you!

 

They don't deliver to my location but I'll be in the US in a couple of months. So thinking of a temporary solution: Would the plain RPi4 board with appropriate electrical insulation around it work as NAA (until I get this case), or do I need heat dissipation beyond natural convection in an open board with air inflow from below?

 

I would think you need at a minimum heatsinks on the chips that get hot. I do not know if the board comes with those or not as I bought mine as a starter kit that came with everything, and purchased the akasa case later. A better temporary solution would be to do what I did, buy a starter kit and then purchase the akasa case later.

I bought one of these https://www.canakit.com/raspberry-pi-4-starter-max-kit.html

No electron left behind.

Link to comment
  • 3 weeks later...

I've used HQP Desktop for years on a Mac Mini, but I'm now looking to take advantage of my newly-arrived, Atom x6425E equipped Fitlet3 to act as an NAA.

 

Unfortunately, I'm less clear on exactly which binary I want... which specific image reflects the NAA OS that I would install into a USB flash drive with which I'd then boot in preference to the Linux Mint OS installed on the internal SSD?

 

Besides altering the BIOS to disable the 2x GbE ports and point only at the optical adapter in the SFP port, anything else I need to be aware of before plugging in the USB drive?  (Did I see something about disabling TPM?)

 

Thanks!

Link to comment
5 hours ago, Talesin said:

Unfortunately, I'm less clear on exactly which binary I want... which specific image reflects the NAA OS that I would install into a USB flash drive with which I'd then boot in preference to the Linux Mint OS installed on the internal SSD?

 

Since the fitlet3 has multiple Ethernet ports, you'd want to use HQPlayer OS as NAA instead. Take the "x64sse42" image of HQPlayer OS.

 

5 hours ago, Talesin said:

Besides altering the BIOS to disable the 2x GbE ports and point only at the optical adapter in the SFP port, anything else I need to be aware of before plugging in the USB drive?  (Did I see something about disabling TPM?)

 

If it doesn't boot straight out of the box with the image, you can disable Secure Boot from BIOS. TPM doesn't hurt (it is just a hardware crypto-engine).

 

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
3 hours ago, Miska said:

Since the fitlet3 has multiple Ethernet ports, you'd want to use HQPlayer OS as NAA instead. Take the "x64sse42" image of HQPlayer OS.

 

What's the difference between HQPlayer OS and NAA OS?  And if I disable (in BIOS) every network port but the SFP port (with GbE adapter), does that change the recommendation?

 

And to be clear, the "HQPlayer OS" is really the "embedded" set of files, so here:

 

https://www.signalyst.eu/bins/hqplayerd/images/

 

Is that correct?

 

 

3 hours ago, Miska said:

If it doesn't boot straight out of the box with the image, you can disable Secure Boot from BIOS. TPM doesn't hurt (it is just a hardware crypto-engine).

 

It boots into Mint without issue and I've already updated the OS plus installed a couple of utilities.  I will be exploring the system today, including the TPM config.

 

Thank you!

Link to comment
42 minutes ago, Talesin said:

What's the difference between HQPlayer OS and NAA OS?  And if I disable (in BIOS) every network port but the SFP port (with GbE adapter), does that change the recommendation?

 

And to be clear, the "HQPlayer OS" is really the "embedded" set of files

 

HQPlayer OS contains both HQPlayer Embedded and NAA software. It supports more LAN interfaces.

 

NAA image supports only one LAN interface. It does not contain HQPlayer Embedded. It is intended simply to be turned on or off by pressing power button, no user login is needed/expected. No password is provided.

 

 

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment

I understand Desktop vs Embedded vs NAA.  It's the "OS" versions that have Jussi's integrated, custom-tailored Linux OS included that I'm not finding.  I have consistently seen references to "HQPlayer OS" and "NAA OS", yet I see no bin directories with products having similarly aligned names.  Thus I'm looking for a direct pointer, as I clearly am not sufficiently appreciating the naming convention.

 

And again, if I disable all but one LAN port in BIOS, then I would presume that the "NAA OS" version would be applicable, no?

Link to comment
59 minutes ago, Talesin said:

And if I disable (in BIOS) every network port but the SFP port (with GbE adapter), does that change the recommendation?

 

If you can disable everything so that only one ports appears to the OS, then it should work with NAA OS as well.

 

59 minutes ago, Talesin said:

And to be clear, the "HQPlayer OS" is really the "embedded" set of files, so here:

 

https://www.signalyst.eu/bins/hqplayerd/images/

 

Is that correct?

 

Yes, that's correct. You can optionally disable HQPlayer there by logging in as "root" from console and doing "systemctl stop hqplayerd ; systemctrl disable hqplayerd" which will stop the service and it won't be started anymore on subsequent boots.

 

You may also want to "systemctl enable dynhost" in case you have more than one NAA. This will generate unique name for each.

 

Alternatively, and better, you can do "nano /etc/default/networkaudiod" and then add there something like:

NETWORKAUDIOD_NAME="MyFancyNAAName"

And then "systemctl restart networkaudiod".

 

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment

Perfect, thank you.  I have a USB-A flash drive arriving this afternoon, so I'll give "hqplayer-embedded-5.1.0-x64sse42.7z" a shot.  (And then, once it's working, figure out the license discount/upgrade from 4.x Desktop to 5.x Embedded.)  I'll go explore the BIOS settings in the meantime, as well as find my wayward SFP adapter.

 

Though I'm hoping that you have VI on the system and not just nano.  15 years after I was last writing code on regular basis (the odd PERL script aside), I still find myself using VI commands unconsciously in everything from email to MS Word docs!  🤣

Link to comment
42 minutes ago, Talesin said:

Perfect, thank you.  I have a USB-A flash drive arriving this afternoon, so I'll give "hqplayer-embedded-5.1.0-x64sse42.7z" a shot.  (And then, once it's working, figure out the license discount/upgrade from 4.x Desktop to 5.x Embedded.)  I'll go explore the BIOS settings in the meantime, as well as find my wayward SFP adapter.

 

Though I'm hoping that you have VI on the system and not just nano.  15 years after I was last writing code on regular basis (the odd PERL script aside), I still find myself using VI commands unconsciously in everything from email to MS Word docs!  🤣


 

there is an earlier thread that has more info on setting up the fitlet3 as a NAA on a usb flash drive

 

cheers

 

Deric

Link to comment
54 minutes ago, Talesin said:

Though I'm hoping that you have VI on the system and not just nano.  15 years after I was last writing code on regular basis (the odd PERL script aside), I still find myself using VI commands unconsciously in everything from email to MS Word docs!  🤣

 

There's a vi too, and that's what I'd use. Entire HQPlayer has been written with vi 😅. But I don't start with expectation that everybody would know their way around it. So I've included nano as "friendly alternative".

 

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
  • 1 month later...

Another project and again, dont call it frankenstein ...

 

Building my NAA on top of the ASUS j6412 powered by a Uptone JS-2 in a Streamcom FC8 case. 

 

The original heatsink of the case did not fit without modifications...

 

Drilling and tapping the motherboard to accept M3 screws and now it runs 20c cooler ... :-)

 

 

IMG_1037.jpeg

IMG_1035.jpeg

IMG_1033.jpeg

Link to comment
  • 2 weeks later...

Hi @Miska - quick tech support question. 

 

I just built a NAA out of a small fanless PC. Using both your NAA linux image (naa-450-x64ramfs) and audiolinux, I cannot get the NAA to output 32 bit / 16 fs. I only get it to output 24 bit / 16 fs despite the setting on HQP being set to 32 bits. 

 

Here is what I see on HQP on my server... please notice the output bit rate is truncated to 24 bits. 

 

image.thumb.png.cfb890478e6f08964243598ce4bad32f.png

 

image.png.913a074998f429ac2387724b7e9a07bf.png

 

When I check my audio card status (connected to NAA via USB) while I feed the NAA 32 bit / 16 fs, I see the below. Please note that "Altset 1" is enabled, when I believe "Altset 2" should be enabled. 

 

image.thumb.png.ffcf07f0ca732ffd1791e195f7896305.png

 

How do I get 32bits sent to the DAC from the NAA? 

 

Thanks Jussi!

 

 

Link to comment
1 hour ago, taipan254 said:

Here is what I see on HQP on my server... please notice the output bit rate is truncated to 24 bits. 

 

Well, not truncated, but dithered.

 

1 hour ago, taipan254 said:

When I check my audio card status (connected to NAA via USB) while I feed the NAA 32 bit / 16 fs, I see the below. Please note that "Altset 1" is enabled, when I believe "Altset 2" should be enabled. 

 

image.thumb.png.ffcf07f0ca732ffd1791e195f7896305.png

 

Issue there is that they have defined two altsettings that don't really differ in any sensible way. If they want to do additional 24-bit endpoint, they should use S24_LE format instead, not two S32_LE's. In most interfaces that altset 1 would be S16_LE. Here, HQPlayer picks the first one as true resolution for S32_LE format.

 

I guess HQPlayer is probably the only player that even cares about those values. Most just conclude S32 = 32-bit. IIRC, I implemented that "Bits" thing there in first place. Now if they end up using altset 1, and the USB interface truncates the input there, it would be much worse sending 32-bit data there.

 

1 hour ago, taipan254 said:

How do I get 32bits sent to the DAC from the NAA? 

 

They should fix their buggy USB firmware!

 

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
2 minutes ago, Miska said:

 

Well, not truncated, but dithered.

 

 

Issue there is that they have defined two altsettings that don't really differ in any sensible way. If they want to do additional 24-bit endpoint, they should use S24_LE format instead, not two S32_LE's. In most interfaces that altset 1 would be S16_LE. Here, HQPlayer picks the first one as true resolution for S32_LE format.

 

I guess HQPlayer is probably the only player that even cares about those values. Most just conclude S32 = 32-bit. IIRC, I implemented that "Bits" thing there in first place.

 

 

They should fix their buggy USB firmware!

 

 

 

Thanks for the response, Miska. I'll reach out to Shanling and ask them to fix the USB firmware by making altset1 S24_LE or S_16LE, and not having two S32_LE formats. Is there anything else I should include in my note? I'll then pass it on to them and ask for a USB firmware upgrade to fix this bug. 

 

Thanks!

Link to comment
Just now, taipan254 said:

Thanks for the response, Miska. I'll reach out to Shanling and ask them to fix the USB firmware by making altset1 S24_LE or S_16LE, and not having two S32_LE formats. Is there anything else I should include in my note? I'll then pass it on to them and ask for a USB firmware upgrade to fix this bug. 

 

No, that would be fine. Then the formats are clearly distinct instead of "same but different" and also make a difference on the wire.

 

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment

Just for sake of completeness, I ran the usb status for all the other DACs I have. Looks like Topping has two S32_LE's as well, but their Altset1 is set to 32 bits, so it outputs at 32 bits. The second 32_LE should be named 24_LE. I also have two Cayin dongles, and it seems like they do it right - 16_LE, 24_LE, and 32_LE set to 16, 24, and 32 bits respectively. 

 

here's the output for the Topping G5:

image.thumb.png.125eead42ee2fd1b5599d85f5c1846fa.png

 

Cayin RU7:

 

image.thumb.png.d5bc16f4dc132a2503e36b622410ab7b.png

 

Cayin RU6:

 

image.thumb.png.e817398b4868e55adc6dfebfd310cd68.png

Link to comment
11 hours ago, taipan254 said:

Just for sake of completeness, I ran the usb status for all the other DACs I have. Looks like Topping has two S32_LE's as well, but their Altset1 is set to 32 bits, so it outputs at 32 bits. The second 32_LE should be named 24_LE. I also have two Cayin dongles, and it seems like they do it right - 16_LE, 24_LE, and 32_LE set to 16, 24, and 32 bits respectively. 

 

Not surprised. Topping and SMSL tend to have plenty of bugs in the USB firmware. Not only these messy descriptors, but also incorrect behaviour and drop-outs. Part of the problem is that the reference code from XMOS is buggy to begin with. I worked around SMSL M400 issues by feeding it with I2S from Holo Red.

 

Here is example from Holo Spring 2 that is like things should be:

Holo Audio Holo Audio UAC2.0 Gen2 Standard at usb-0000:00:14.0-7, high speed : USB Audio

Playback:
  Status: Stop
  Interface 1
    Altset 1
    Format: S32_LE
    Channels: 2
    Endpoint: 0x01 (1 OUT) (ASYNC)
    Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000, 1411200, 1536000
    Data packet interval: 125 us
    Bits: 24
    Channel map: FL FR
    Sync Endpoint: 0x81 (1 IN)
    Sync EP Interface: 1
    Sync EP Altset: 1
    Implicit Feedback Mode: No
  Interface 1
    Altset 2
    Format: S16_LE
    Channels: 2
    Endpoint: 0x01 (1 OUT) (ASYNC)
    Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000, 1411200, 1536000
    Data packet interval: 125 us
    Bits: 16
    Channel map: FL FR
    Sync Endpoint: 0x81 (1 IN)
    Sync EP Interface: 1
    Sync EP Altset: 2
    Implicit Feedback Mode: No
  Interface 1
    Altset 3
    Format: SPECIAL DSD_U32_BE
    Channels: 2
    Endpoint: 0x01 (1 OUT) (ASYNC)
    Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000, 1411200, 1536000
    Data packet interval: 125 us
    Bits: 32
    DSD raw: DOP=0, bitrev=0
    Channel map: FL FR
    Sync Endpoint: 0x81 (1 IN)
    Sync EP Interface: 1
    Sync EP Altset: 3
    Implicit Feedback Mode: No

 

For the S32_LE endpoint it correctly specifies that it can only use 24 bits that are packaged in the MSB aligned 32-bit container.

 

HQPlayer takes this into account and doesn't try to send more bits there, as those would be just discarded (truncated).

 

There are for example many USB-DDC's that don't correctly specify that they can do only 24-bit (since that is limit of S/PDIF and AES/EBU) and use S32_LE format (usually XMOS based), and thus you still need to use the "DAC Bits" setting to limit the output word length to avoid truncation at the USB interface.

 

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment

I also have a cheap Topping DX1 with the same issue, both Altset1 and 2 have the same S32_LE format but the 2nd one is 24bit.

The interesting thing is that hqplayer embedded (older version) works fine and shows 32 bit using NAA but is limited to 24 bit when directly connected.  Never noticed before since mostly using SDM and NAA.  Will send Topping an email but I doubt they will fix it.

 

Out of curiosity is it possible to override the format name or disable Altset 2 maybe with something like:

   modprobe -r snd_usb_audio
   modprobe snd_usb_audio "quirk_disable=Altset2" ????


 

Link to comment
8 hours ago, audiofool said:

The interesting thing is that hqplayer embedded (older version) works fine and shows 32 bit using NAA but is limited to 24 bit when directly connected.  Never noticed before since mostly using SDM and NAA.  Will send Topping an email but I doubt they will fix it.

 

It depends on the backend version. If you use latest Embedded and latest NAA, then you have ALSA backends in sync.

 

I made some changes in this area not so long ago. Because otherwise PCM output to certain DACs wouldn't work at all.

 

There was a workaround for certain other DACs where 24-bit altset was broken...

 

8 hours ago, audiofool said:

Out of curiosity is it possible to override the format name or disable Altset 2 maybe with something like:

   modprobe -r snd_usb_audio
   modprobe snd_usb_audio "quirk_disable=Altset2" ????

 

At the moment there's no such thing.

 

8 hours ago, audiofool said:

I also have a cheap Topping DX1 with the same issue, both Altset1 and 2 have the same S32_LE format but the 2nd one is 24bit.

 

Hmmh, in this case, when 32-bit one is the first, which is also the one kernel picks up, HQPlayer also shows 32-bit as it should. So check that you are on latest NAA/HQPlayer! I just tested this on my Topping E30 which has the same:

Topping E30 at usb-0000:02:00.0-9.1, high speed : USB Audio

Playback:
  Status: Running
    Interface = 1
    Altset = 1
    Packet Size = 776
    Momentary freq = 705601 Hz (0x58.3338)
    Feedback Format = 16.16
  Interface 1
    Altset 1
    Format: S32_LE
    Channels: 2
    Endpoint: 0x01 (1 OUT) (ASYNC)
    Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000
    Data packet interval: 125 us
    Bits: 32
    Channel map: FL FR
    Sync Endpoint: 0x81 (1 IN)
    Sync EP Interface: 1
    Sync EP Altset: 1
    Implicit Feedback Mode: No
  Interface 1
    Altset 2
    Format: S32_LE
    Channels: 2
    Endpoint: 0x01 (1 OUT) (ASYNC)
    Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000
    Data packet interval: 125 us
    Bits: 24
    Channel map: FL FR
    Sync Endpoint: 0x81 (1 IN)
    Sync EP Interface: 1
    Sync EP Altset: 2
    Implicit Feedback Mode: No
  Interface 1
    Altset 3
    Format: SPECIAL DSD_U32_BE
    Channels: 2
    Endpoint: 0x01 (1 OUT) (ASYNC)
    Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000
    Data packet interval: 125 us
    Bits: 32
    DSD raw: DOP=0, bitrev=0
    Channel map: FL FR
    Sync Endpoint: 0x81 (1 IN)
    Sync EP Interface: 1
    Sync EP Altset: 3
    Implicit Feedback Mode: No

 

 

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...