24-bit PCM support issue with TEAC UD-507 (ref#YC9RB8)

Hi! What’s not quite right with Roon?

· selects 32bit output with 24bit limit set

None of the above quite fits

· None of these quite match

Tell us what's going on

· Raspberry Pi ALSA output appears to use 32-bit PCM despite 24-bit limit with TEAC UD-507

Tell us about your home network

· regular router, not network issue

I’m using a TEAC UD-507 (USB ID 0644:807d) as a direct ALSA output on a Raspberry Pi 4 running DietPi and kernel 6.12.109+rpt-rpi-v8. Roon version: 2. Roon Server/Core runs on RasPI4. Teac handles 32bit pcm purely (fails to recognize) , but dsd 32bit works fine.

I set Roon to limit PCM output to 24-bit (teac supports S24_3LE). However, Roon’s [Signal Path / device display / other screen] selects 32-bit PCM when playing [track/file format]. I expect PCM output to remain limited to 24-bit. Native DSD is supporting 32bit is a separate mode and should remain available.

Currently i built kernel module to exclude 32bit

Playback:
Status: Running
Interface = 1
Altset = 1
Packet Size = 36
Momentary freq = 44106 Hz (0x5.8363)
Feedback Format = 16.16
Interface 1
Altset 1
Format: S16_LE
Channels: 2
Endpoint: 0x06 (6 OUT) (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 1411200
Data packet interval: 125 us
Bits: 16
Channel map: FL FR
Sync Endpoint: 0x86 (6 IN)
Sync EP Interface: 1
Sync EP Altset: 1
Implicit Feedback Mode: No
Interface 1
Altset 2
Format: S24_3LE DSD_U32_BE
Channels: 2
Endpoint: 0x06 (6 OUT) (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 1411200
Data packet interval: 125 us
Bits: 24
Channel map: FL FR
Sync Endpoint: 0x86 (6 IN)
Sync EP Interface: 1
Sync EP Altset: 2
Implicit Feedback Mode: No
Interface 1
Altset 3
Format: DSD_U32_BE
Channels: 2
Endpoint: 0x06 (6 OUT) (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 1411200
Data packet interval: 125 us
Bits: 32
Channel map: FL FR
Sync Endpoint: 0x86 (6 IN)
Sync EP Interface: 1
Sync EP Altset: 3
Implicit Feedback Mode: No

The ALSA listing pinpoints the mismatch: altsetting 2 already advertises S24_3LE at 24 bits, but it also incorrectly advertises DSD_U32_BE. Altsetting 3 is DSD-only. Our 807d DSD quirk assigned DSD to altsetting 2; I’ll move that mapping to altsetting 3 and rebuild the audio module.


Hi @Boris_Mikhailovski,

Roon’s ALSA output works with the formats the driver reports.

What do you see in Signal Path in Roon? That will always be transparent to Roon’s own awareness of the audio stages (what RAAT/Roon are doing and what the endpoint is reporting).