Switching to low quality aac or mp3 causes dac to freak out

Hi @support something odd is happening with my DAC Arcam irDacii when Roon switches playback from a standard flac at 44.1/16 to aac or mp3 which roon is upsampling by default to 44.1/24 it completely hangs the input on the dac. It never used to do this before 1.5. This is being fed by a Allo USBridge running latest dietpi.

I am Running ROCK on a 4th gen i3 MOCK have the latest ffmpeg from here John Van Sickle - FFmpeg Static Builds https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-64bit-static.tar.xz. I also changed it the released version and its still the same.

If i go to 24 bit hires its fine, if i go from aac to normal flac its fine. It only freaks out when switching from playing standard 44.1/16 flac. If set the the audio settings for the device to 16bit so Roon downsamples back down to 16bit it switches fine.

Also the upscaled audio from the lowres files does sound good at all. I have had clicking on some of my other devices such as my squeezebox radio but nothing quite like this.

Can I turn off this upsampling for low res? I don’t wont to fix the device to 16bit as I have hires material.

Alsa output on the USBridge gives this when it falls over Status : access: RW_INTERLEAVED | format: S32_LE | subformat: STD | channels: 2 | rate: 44100 (44100/1) | period_size: 882 | buffer_size: 1764

What happens if you set output to max 24bit (i.e. Max Bits Per Sample (PCM)) on the output to the bridge?

Not sure what that would prove if I knew how to do it. It already handles up to 32bit and 24bit as I can play hires with no issue and if I use upsampling it outputs 32bit to my dac. If I play 24 bit hires it shows as 24 bit playing, if I play 16bit flac it shows 16bit. Its only when Roons doing this conversion under the hood it seems to be giving out 32bit 44.1. I can play these files fine though if its not playing any 44.1/16 bit flac before hand and it still shows the output from Alsa as 32bit. Setting Roon to only allow 24bit does not make any difference. I dont know how to change it on the bridge as it each application has its own config file.

im just wondering if this has happened since updating to 6.12 dietpi. I don’t remember this happening before. I only updated recently. Might roll back and see

Applying volume leveling Roon outputs 32bit to dac for everything and then all is ok.

Then it’s all good!
I was suspecting ffmpeg to do something that ALSA did not like. With volume levelling enabled in Roon, maybe Roon is doing it’s own re-encoding of the ffmpeg PCM output which does not trip up delivery to ALSA. You might be on to something with the Dietpi update though. I use a microRendu so I can’t verify

Its really infuriating. Just looked at alsa output when playing a 192.24 file and its saying it 32b to,
Status : access: RW_INTERLEAVED | format: S32_LE | subformat: STD | channels: 2 | rate: 96000 (96000/1) | period_size: 1920 | buffer_size: 3840 but these have no issues switching from 44.1./16

@Dan_Knight any ideas Roon is saying all is bit perfect at 24bit output but alsa output from diet pi says it 32bit. And any time i play a 44.1/24 bit file after a 44.1/16bit file it crashes my dac.

RCAM irDAC II at usb-aotg_hcd.1-1.1, high speed : USB Audio

Playback:
Status: Running
Interface = 1
Altset = 1
Packet Size = 63
Momentary freq = 44096 Hz (0x5.8310)
Feedback Format = 16.16
Interface 1
Altset 1
Format: S32_LE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000
Data packet interval: 125 us
Interface 1
Altset 2
Format: S16_LE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000
Data packet interval: 125 us
Interface 1
Altset 3
Format: SPECIAL DSD_U32_BE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000
Data packet interval: 125 us

This is the out put from my Mutec. Very similar to your irDAC. There appears to be no 24bit support here so it is either 16 or 32. Must be something with the ALSA code that doesn’t like ffmpeg’s 24bit out put.

MUTEC GmbH MC-3+ Smart Clock USB 2.0 at usb-ci_hdrc.1-1.1, high speed : USB Audio

Playback:
Status: Stop
Interface 1
Altset 1
Format: S32_LE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800
Data packet interval: 125 us
Interface 1
Altset 2
Format: S16_LE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800
Data packet interval: 125 us
Interface 1
Altset 3
Format: SPECIAL DSD_U32_BE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800
Data packet interval: 125 us

Hmm. Another observation is that whatever is happening when it switched to a 44.1/24 output it just seems to hang the DAC completely only a powercycle brings it back. So it looks like it outputting something that really upsets the DAC. I can’t play back any 44.1/16 after this says no transport available. If
I stop playback and try to play another 44.1/24 it plays in Roon but no sound and red light on DAC indicating no input. Power cycle I can play again. If I stop playback after 44.1/16 wait for DAC input to go into standby and then start 44.1/24 it will play but not if it’s a continuous playback stream from 44.1/16 to 44.1/24

In addition to support, maybe @allan from Roon should be alerted here. I think he took part in the change to decode MP3 and AAC to 24bit.

Any help from Roon @support

Hi @Simon_Arnold3 ---- Thank you for the post! The feedback and insight are both very appreciated! My apologies for the delay.

During your troubleshooting have you tried testing with either a different DAC attached to the Allo USBridge OR testing with the Arcam mounted to another computer to confirm what the behavior is like?

Looking forward to hearing your observations!
-Eric

I don’t have another DAC but I can connect my pc to it and try that. But I imagine with it not being Linux it will work ok. I’ll feedback as soon as I have tested.

Ok it works fine using my windows 10 pc on the same dac so looks like its dietpi or Alsa at fault. Still some ideas of how to troubel shoot it would be good.

Thanks for providing that feedback @Simon_Arnold3, very appreciated!

One more question for you. My assumption to this will be “yes” but with the DAC mounted directly to the MOCK, the behavior is the same, correct?

-Eric

I cant actually connect it easily as its hidden away in my server cupboard no where near any listening zones. I cant move it right now but should be able to over the weekend and could test it then. Any other ideas?

Hi @Simon_Arnold3 — Thanks for the follow up!

I do not have a ALLO USbridge on hand to confirm what the behavior is like in house but I have placed a feedback request with our techs to chime in on this observation you have made. For now I would recommend leaving leaving volume leveling enabled (this is only temporary) to get around this behavior. Once the team fulfills my request I will be sure to reach out immediately.

Additionally, and I am just “spit balling” here a bit, adjusting the resync delay is not offering any changes in behavior when switching sample rates, correct?

I appreciate your patience and understanding Simon, thank you!
-Eric

Correct resync delay has no effect it was the first thing I tired. I am a bit confused as to why Alsa is saying its a 32bit output. The dac is a 32bit dac but can only handle max 24/384.

Hi @Simon_Arnold3 — Thank you again for your patience while i have been discussing your report with the team. Very appreciated

Our techs have advised that the DAC is reporting 32bits because that’s what it’s telling Linux it supports, as you are aware. When a device reports 32bit capability, ALSA will pack whatever bit depth the audio is into a 32 bit container but the important thing to remember is that it is still bit perfect.

I know you had mentioned that you started to notice this behavior after the most recent updates but the team is curious if your collection contains a lot of hi-re music and that you were able to consistently switch between 16 and 24 without issue prior to the update(s)?

-Eric

Hi Eric. The issue only happens when cd Res 44.1 (flac) from local or tidal is playing and then switched at end of track or skipped to a compressed aac or MP3 and no other time. The input light on DAC goes red meaning no input and you can’t play anything again until I power cycle the DAC. Even an input switch won’t bring the DAC back. I have hi Res and MQA all work fine as do DSD that I have. If however you stop playing the stream and switch it’s fine and can play the file with out issue.