Discussing about 8channel DSP using Camilla DSP + Raspberry PI -- Interface options

@CharlieLaub thats good to know Charlie. I'm sure it is something simple on my end. Could you please help me and compare my output with yours? or paste any relevant config.

Here's a start

[root@archpc music]# aplay -l **** List of PLAYBACK Hardware Devices **** card 0: Loopback [Loopback], device 0: Loopback PCM [Loopback PCM] Subdevices: 8/8 Subdevice #0: subdevice #0 Subdevice #1: subdevice #1 Subdevice #2: subdevice #2 Subdevice #3: subdevice #3 Subdevice #4: subdevice #4 Subdevice #5: subdevice #5 Subdevice #6: subdevice #6 Subdevice #7: subdevice #7 card 0: Loopback [Loopback], device 1: Loopback PCM [Loopback PCM] Subdevices: 8/8 Subdevice #0: subdevice #0 Subdevice #1: subdevice #1 Subdevice #2: subdevice #2 Subdevice #3: subdevice #3 Subdevice #4: subdevice #4 Subdevice #5: subdevice #5 Subdevice #6: subdevice #6 Subdevice #7: subdevice #7 card 1: DM7 [DM7], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0 card 2: PCH [HDA Intel PCH], device 0: ALC3234 Analog [ALC3234 Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 card 2: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0] Subdevices: 1/1 Subdevice #0: subdevice #0 card 2: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1] Subdevices: 1/1 Subdevice #0: subdevice #0 card 2: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2] Subdevices: 1/1 Subdevice #0: subdevice #0

Note: only 2 channels show for DM7 (hw:1 device)

[root@archpc music]# aplay -v -c 8 -r 44100 -f S32_LE -D hw:1,0 /dev/zero --dump-hw-params Playing raw data '/dev/zero' : Signed 32 bit Little Endian, Rate 44100 Hz, Channels 8 HW Params of device "hw:1,0": -------------------- ACCESS: MMAP_INTERLEAVED RW_INTERLEAVED FORMAT: S32_LE SPECIAL DSD_U32_BE SUBFORMAT: STD SAMPLE_BITS: 32 FRAME_BITS: 64 CHANNELS: 2 RATE: [44100 192000] PERIOD_TIME: [125 1000000] PERIOD_SIZE: [8 192000] PERIOD_BYTES: [64 1536000] PERIODS: [2 1024] BUFFER_TIME: (83 2000000] BUFFER_SIZE: [16 384000] BUFFER_BYTES: [128 3072000] TICK_TIME: ALL -------------------- aplay: set_params:1358: Channels count non available

I have nothing special in my asound.conf

The following is the same aplay on my Pi with the x7000 suptronix board:


[root@archdebug camilla-dsp]# aplay -v -c 8 -r 44100 -f S16_LE -D hw:0,1 /dev/zero --dump-hw-params Playing raw data '/dev/zero' : Signed 16 bit Little Endian, Rate 44100 Hz, Channels 8 HW Params of device "hw:0,1": -------------------- ACCESS: MMAP_INTERLEAVED RW_INTERLEAVED FORMAT: S16_LE SUBFORMAT: STD SAMPLE_BITS: 16 FRAME_BITS: [32 128] CHANNELS: [2 8] RATE: [44100 192000] PERIOD_TIME: [10000 743039) PERIOD_SIZE: [441 32768] PERIOD_BYTES: [1776 524288] PERIODS: [1 75) BUFFER_TIME: (2296 743039) BUFFER_SIZE: [441 32768] BUFFER_BYTES: [1764 131072] TICK_TIME: ALL -------------------- Hardware PCM card 0 'bcm2835 ALSA' device 1 subdevice 0 Its setup is: stream : PLAYBACK access : RW_INTERLEAVED format : S16_LE subformat : STD channels : 8 rate : 44100 exact rate : 44100 (44100/1) msbits : 16 buffer_size : 8192 period_size : 2048 period_time : 46439 tstamp_mode : NONE tstamp_type : MONOTONIC period_step : 1 avail_min : 2048 period_event : 0 start_threshold : 8192 stop_threshold : 8192 silence_threshold: 0 silence_size : 0 boundary : 1073741824 appl_ptr : 0 hw_ptr : 0
 
Last edited:
@Dave Bullet
Here is some info for you, from the system that is connected to my DM7:

Code:
charlie@GN41-LRL:~$ aplay -Dhw:CARD=DM7 --dump-hw-params /dev/zero
Playing raw data '/dev/zero' : Unsigned 8 bit, Rate 8000 Hz, Mono
HW Params of device "hw:CARD=DM7":
--------------------
ACCESS:  MMAP_INTERLEAVED RW_INTERLEAVED
FORMAT:  S32_LE SPECIAL DSD_U32_BE
SUBFORMAT:  STD
SAMPLE_BITS: 32
FRAME_BITS: 256
CHANNELS: 8
RATE: [44100 192000]
PERIOD_TIME: [125 1000000]
PERIOD_SIZE: [6 192000]
PERIOD_BYTES: [192 6144000]
PERIODS: [2 1024]
BUFFER_TIME: (62 2000000]
BUFFER_SIZE: [12 384000]
BUFFER_BYTES: [384 12288000]
TICK_TIME: ALL
--------------------
aplay: set_params:1352: Sample format non available
Available formats:
[LIST]
[*]S32_LE
[*]SPECIAL
[*]DSD_U32_BE
[/LIST]


charlie@GN41-LRL:~$ uname -r
5.15.0-56-lowlatency


charlie@GN41-LRL:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.1 LTS
Release:        22.04
Codename:       jammy

Also, I do not use an asoundrc file.
 
Last edited:
  • Like
Reactions: Dave Bullet
@CharlieLaub would you mind please running

lsusb -t

and see what drivers the DM7 is using?

In my case one is missing and I don't know if significant (driver 7 = cheap CMEdia chip based USB 5.1 card and 8 = DM7)

Code:
[root@archpc music]# lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M
    |__ Port 1: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
    |__ Port 2: Dev 8, If 0, Class=Audio, Driver=snd-usb-audio, 480M
    |__ Port 2: Dev 8, If 1, Class=Audio, Driver=snd-usb-audio, 480M
    |__ Port 2: Dev 8, If 2, Class=Application Specific Interface, Driver=, 480M
    |__ Port 4: Dev 4, If 0, Class=Vendor Specific Class, Driver=rtl8192cu, 480M
    |__ Port 5: Dev 5, If 0, Class=Mass Storage, Driver=uas, 480M
    |__ Port 7: Dev 7, If 0, Class=Audio, Driver=snd-usb-audio, 12M
    |__ Port 7: Dev 7, If 1, Class=Audio, Driver=snd-usb-audio, 12M
    |__ Port 7: Dev 7, If 2, Class=Audio, Driver=snd-usb-audio, 12M
    |__ Port 7: Dev 7, If 3, Class=Human Interface Device, Driver=usbhid, 12M
 
Thanks for your help. Looks grim

Code:
[root@archpc proc]# cat /proc/asound/DM7/stream0
Topping DM7 at usb-0000:00:14.0-2, 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
    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
    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
    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
 
@Dave Bullet

Code:
charlie@GN41-LRL:~$ lsusb -t

/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/7p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/9p, 480M
    |__ Port 4: Dev 6, If 1, Class=Audio, Driver=snd-usb-audio, 480M
    |__ Port 4: Dev 6, If 2, Class=Application Specific Interface, Driver=, 480M
    |__ Port 4: Dev 6, If 0, Class=Audio, Driver=snd-usb-audio, 480M
    |__ Port 5: Dev 3, If 0, Class=Vendor Specific Class, Driver=rtsx_usb, 480M
    |__ Port 9: Dev 4, If 0, Class=Wireless, Driver=btusb, 12M
    |__ Port 9: Dev 4, If 1, Class=Wireless, Driver=btusb, 12M
 
  • Like
Reactions: Dave Bullet
Thanks - As attached (forum message limit 2000 chars)

Also - my lsusb -t output matches Charlie's above - as in there is the same missing driver suffix. I thought that was an issue, instead a red herring:

Code:
[root@archpc ~]# lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M
    |__ Port 1: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
    |__ Port 2: Dev 9, If 0, Class=Audio, Driver=snd-usb-audio, 480M
    |__ Port 2: Dev 9, If 1, Class=Audio, Driver=snd-usb-audio, 480M
    >> note the Driver=<null> following:
    |__ Port 2: Dev 9, If 2, Class=Application Specific Interface, Driver=, 480M
    >>
    |__ Port 4: Dev 4, If 0, Class=Vendor Specific Class, Driver=rtl8192cu, 480M
    |__ Port 5: Dev 5, If 0, Class=Mass Storage, Driver=uas, 480M
    |__ Port 7: Dev 6, If 0, Class=Audio, Driver=snd-usb-audio, 12M
    |__ Port 7: Dev 6, If 1, Class=Audio, Driver=snd-usb-audio, 12M
    |__ Port 7: Dev 6, If 2, Class=Audio, Driver=snd-usb-audio, 12M
    |__ Port 7: Dev 6, If 3, Class=Human Interface Device, Driver=usbhid, 12M

Also linux version - Archlinux:
Code:
[root@archpc ~]# uname -ar
Linux archpc 6.2.6-arch1-1 #1 SMP PREEMPT_DYNAMIC Mon, 13 Mar 2023 17:02:08 +0000 x86_64 GNU/Linux
 

Attachments

Your lsusb -v device config lists only "bNrChannels 2" alternate settings, just what the stream0 file shows.

Can you check with some older ubuntu running from a live-usb flashdrive? But IIUC the USB config the device reports upon the initial request whould be the same on any OS/kernel version, unless a driver switches it to some different mode.

Maybe your DAC needs some way to switch to the multichannel version? Maybe some windows driver to do so?
 
Thanks. Windows only shows 2 channels to, but I don't trust windows. I can't see any 2/8 channel switch / mode in the user manual or menus (as I thought the DM7 was permanent 8 channels on?)

I will try a Ubuntu dual boot / boot from USB and see how I go. I could try an older kernel incase something is broken. I'll also try windows / foobar2000 and see if I can generate 8 channels of output to test the DAC.
 
ok - so I've installed Ubuntu 22.04

Code:
root@ubuntu-pc:~# uname -ar
Linux ubuntu-pc 5.15.0-67-generic #74-Ubuntu SMP Wed Feb 22 14:14:39 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Server install

I just installed alsa-utils so I could run aplay. And same problem. Is my DM7 faulty? No where in the manual does it talk about enabling 8 channels via the menu / setup. I haven't checked firmware versions. I might have to reach out to Topping support

Code:
Linux ubuntu-pc 5.15.0-67-generic #74-Ubuntu SMP Wed Feb 22 14:14:39 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
root@ubuntu-pc:~# aplay -v -f S32_LE -r 44100 -c 2 -D hw:1,0 /dev/zero --dump-hw-params
Playing raw data '/dev/zero' : Signed 32 bit Little Endian, Rate 44100 Hz, Stereo
HW Params of device "hw:1,0":
--------------------
ACCESS:  MMAP_INTERLEAVED RW_INTERLEAVED
FORMAT:  S32_LE SPECIAL DSD_U32_BE
SUBFORMAT:  STD
SAMPLE_BITS: 32
FRAME_BITS: 64
CHANNELS: 2
RATE: [44100 192000]
PERIOD_TIME: [125 1000000]
PERIOD_SIZE: [8 192000]
PERIOD_BYTES: [64 1536000]
PERIODS: [2 1024]
BUFFER_TIME: (83 2000000]
BUFFER_SIZE: [16 384000]
BUFFER_BYTES: [128 3072000]
TICK_TIME: ALL

The lsusb -v output also confirms throughout only 2 channels supported:

Code:
     iInterface              4 DM7
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           2
        bmControls           0x00
        bFormatType             1
        bmFormats          0x00000001
          PCM
        bNrChannels             2
        bmChannelConfig    0x00000000
        iChannelNames          11 Analogue 1
 
I don't know if this is the firmware version (v1.98) but I believe V1.18 is the latest for the DM7:

So maybe the wrong firmware flashed at the factory. I will email them
1679004347029.png
 
I'm thinking its firmware. Even windows with latest v5.57 drivers from topping fails to see more than 2 (stereo) channels in the device configuration page.

Note: windows is running from another PC to the 2 linux distros... so that should rule out some USB root/hub issue/protocol. I doubt I have a cabling problem
1679009628195.png

1679009636621.png
 
It would seem as if they flashed a firmware for a different DAC. But the firmware did report the iProduct string "DM7". It looks like some testing firmware in the Topping fab for DM7.

BTW it's interesting all Topping devices seem to use the same vendor ID (Thesycon, authors of the firmware & windows driver - it costs 6k USD to have a new VID assigned) and device ID 0x8750, and differentiate themselves only by the product string.
 
  • Like
Reactions: Dave Bullet
CharlieLaub (or anyone else who's used both):

For use purely with CamillaDSP for active XO, is there any reason to choose the Motu UL Mk5 over the more living room friendly DM7? My source (music, TV and gaming) is the PC running CamillaDSP, so I don't have any need for the extra IO on the Motu.

Thanks