CamillaDSP - Cross-platform IIR and FIR engine for crossovers, room correction etc.

i can confirm now. In normal mode it is not possible to change any setting in alsamixer. i see alsamixer like this:
1646479930561.png


when i try the instruction you suggested it doesnt do anything, stays in line in:

marcosch@raspcamilla:~$ amixer -c G6 cset numid=20 2
numid=20,iface=MIXER,name='PCM Capture Source'
; type=ENUMERATED,access=rw------,values=1,items=4
; Item #0 'Line In'
; Item #1 'External Mic'
; Item #2 'S/PDIF In'
; Item #3 'What U Hear'
: values=0

any other way to try to force spdif in?
 
ChrisPatlach: Which USB port on your RPi4 do you use for your 8ch DAC?
Not sure if this is what your are asking for but it is connected in the top USB 3 port at the momment. I recall trying a USB 2 port with the same issues. I don't have any logs for that though.

pi@raspberrypi:~ $ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 20b1:2009 XMOS Ltd DAC8PRO
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

There were reports of some owners having problems with linux compatibility in some of the earlier firmware versions of the DAC8PRO. I am on firmware version 1.42. The only issues I have had is with the the mixer volume controls, these come up in alsamixer but dont actually do anything.

No idea if this matters but the only other hardware that i have connected to the pi is a small spi interface lcd screen.
 
Not sure if this is what your are asking for but it is connected in the top USB 3 port at the momment. I recall trying a USB 2 port with the same issues. I don't have any logs for that though.

pi@raspberrypi:~ $ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 20b1:2009 XMOS Ltd DAC8PRO
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

There were reports of some owners having problems with linux compatibility in some of the earlier firmware versions of the DAC8PRO. I am on firmware version 1.42. The only issues I have had is with the the mixer volume controls, these come up in alsamixer but dont actually do anything.

No idea if this matters but the only other hardware that i have connected to the pi is a small spi interface lcd screen.
FWIW, my DAC8 PRO was shipped with a version that would NOT WORK ON ANY LINUX distro. The version number in the flash was also wrong. I am currently running 1.43. I needed to buy a JTAG device from Digikey to flash it because the loaded flash would not flash over the USB port. You will have to get the flash kit and instructions from OR.
 
The values shown for access seems to say that "owner" (what ever account that alsa is run under, possibly root/admin) is the only user level that can read/write the value. Try running the command as root:
Bash:
sudo amixer -c G6 cset numid=20 2
same result:
marcosch@raspcamilla:~$ sudo amixer -c G6 cset numid=20 2
[sudo] password for marcosch:
numid=20,iface=MIXER,name='PCM Capture Source'
; type=ENUMERATED,access=rw------,values=1,items=4
; Item #0 'Line In'
; Item #1 'External Mic'
; Item #2 'S/PDIF In'
; Item #3 'What U Hear'
: values=0
 
The other thing to try is to enter the text value for the desired item, not its index. This might be necessary because the control is of type ENUMERATED and not of type INTEGER. So for example try this:
Bash:
sudo amixer -c G6 cset numid=20 'S/PDIF In'

This worked on my system to set the value of an enumerated soundcard property:
Bash:
charlie@CI327:~$ amixer -c 1 cset numid=3 'Disabled'
numid=3,iface=MIXER,name='Loopback Mixing'
  ; type=ENUMERATED,access=rw------,values=1,items=2
  ; Item #0 'Disabled'
  ; Item #1 'Enabled'
  : values=0
charlie@CI327:~$ amixer -c 1 cset numid=3 'Enabled'
numid=3,iface=MIXER,name='Loopback Mixing'
  ; type=ENUMERATED,access=rw------,values=1,items=2
  ; Item #0 'Disabled'
  ; Item #1 'Enabled'
  : values=1

In the output above, I was able to set the value from Disabled to Enabled. The "values" field at the end gives the index, not the text, of the current setting in the enumerated item list. Also I did not need to use sudo to do this.
 
  • Like
Reactions: 1 user
FWIW, my DAC8 PRO was shipped with a version that would NOT WORK ON ANY LINUX distro. The version number in the flash was also wrong. I am currently running 1.43. I needed to buy a JTAG device from Digikey to flash it because the loaded flash would not flash over the USB port. You will have to get the flash kit and instructions from OR.
Thanks for the info. Are you able to control volume via amixer with version 1.43 ?
 
Thanks for the info. Are you able to control volume via amixer with version 1.43 ?
I am using a PC, not a RasbPi.
I haven't tried volume via an alsamixer in a long time, but can give it a try. I had to fix the Scarlet ALSA mixer to get it to work with my 3rd Gen Scarlett 8i6.
I am using ALSA_CDSP, CamillaDSP and 2 derivatives of ALSA_CDSP.
I am controlling volume via the DAC8's volume control to protect the speakers from pilot errors, software accidents and volume induced bit-loss (until absolutely necessary). Any reason why you can't use the DAC8's volume control ?

UPDATE: I am also using ALSA directly to the HW interface, not using pipewire or PulseAudio.
 
Last edited:
OK, I see you are already using Loopback,1 in your player.

First establish your playback device is working OK.

Code:
aplay -D hw:2 some_44.1khz_16bit.wav

Then run CDSP with your config in https://www.diyaudio.com/community/...overs-room-correction-etc.349818/post-6960023

That will open device Loopback,0 at 44.1/32bit/2ch (because your CDSP config uses format: S32LE for the capture device), making the other (capture) side of loopback locked to these hw params.

Then run
Code:
aplay -D hw:Loopback,1 some_44.1khz_32bit.wav

You can create the wav at any params with sox.

Or run

Code:
aplay -v -D plughw:Loopback,1 some_44.1khz_16bit.wav

and watch the plug plugin correctly converting the 16bit format to S32_LE for the loopback device.

Only after this chain is running correctly move ahead to the actual player configuration, systemd setup etc.
:) as always Pavel...you are the magician !!

Yes !!!...I have sound ! Manually starting camilladsp and using first the minimal snippet .yml then with the full .yml for headphone correction. Both work wonderfully.

Next to..
move ahead to the actual player configuration, systemd setup etc.
I will report results.

Hmmm on further investigation it appears that currently Pulse'OrribleAudio is not involved in any way...so despite the manual calling I might just skip any further configuration and find some way to adjust the .yml for other formats...
is it possible to use plughw for the hardware input ?? or do all files have to confirm to the input output settings ?
 
Last edited:
The other thing to try is to enter the text value for the desired item, not its index. This might be necessary because the control is of type ENUMERATED and not of type INTEGER. So for example try this:
Bash:
sudo amixer -c G6 cset numid=20 'S/PDIF In'

This worked on my system to set the value of an enumerated soundcard property:
Bash:
charlie@CI327:~$ amixer -c 1 cset numid=3 'Disabled'
numid=3,iface=MIXER,name='Loopback Mixing'
  ; type=ENUMERATED,access=rw------,values=1,items=2
  ; Item #0 'Disabled'
  ; Item #1 'Enabled'
  : values=0
charlie@CI327:~$ amixer -c 1 cset numid=3 'Enabled'
numid=3,iface=MIXER,name='Loopback Mixing'
  ; type=ENUMERATED,access=rw------,values=1,items=2
  ; Item #0 'Disabled'
  ; Item #1 'Enabled'
  : values=1

In the output above, I was able to set the value from Disabled to Enabled. The "values" field at the end gives the index, not the text, of the current setting in the enumerated item list. Also I did not need to use sudo to do this.
marcosch@raspcamilla:~$ sudo amixer -c G6 cset numid=20 'S/PDIF In'
[sudo] password for marcosch:
numid=20,iface=MIXER,name='PCM Capture Source'
; type=ENUMERATED,access=rw------,values=1,items=4
; Item #0 'Line In'
; Item #1 'External Mic'
; Item #2 'S/PDIF In'
; Item #3 'What U Hear'
: values=0

:'(
 
@MRamone

Are you successful if you try to set other values, e.g. 'External Mic'?

What is the OS and kernel versions on your system? You can run:
Bash:
uname -r
lsb_release -a

In my example I was using a machine with the following:
Bash:
charlie@CI327:~$ uname -r
5.13.0-30-generic

charlie@CI327:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.4 LTS
Release:        20.04
Codename:       focal
 
I just tried using alsamixer version 1.2.4 and it doesn't touch the DAC8's volume.
Running JRMC -> ALSA_CDSP VST3 plugin -> CamillaDSP -> DAC8.
JRMC's volume control and the DAC8's volume control works but the alsamixer doesn't touch it.
Thanks for checking. I use roon, shairport-sync and spdif input via the DAC8PRO as audio sources. Both shairport-sync and roon can link their volume control to USB dac hardware volume when the USB dac controls are accessible. I currently use the DAC8PRO remote or both application volume and DAC8PRO volume at the same time but it would be nice to have roon and airplay volume sliders control the dac hardware volume. I could use CamillaDSP volume control but would lose the volume display on the DAC8PRO.