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

So the GUI is all good now. Unfortunately I have aproblem with the update of the DSP. When I start CamillaDSP I get:

2024-04-10 23:48:11.963154 ERROR [src/bin.rs:307] Capture error: ALSA function 'snd_pcm_open' failed with error 'ENODEV: No such device'

Looking at the gui both catpure and playback device show the devices I have in my yml, however clicking the "discover" button on each section show only default alsa devices and not the loopback and USB attached audio devices I need.

If I query alsa with "sudo aplay -l" I see all the devices, if I leave off the sudo I only get the default devices the gui shows me. Strangely if I query squeezelite BEFORE I do the sudo aplay -l I get the default list but if done AFTER the sudo aplay -l I get the full list. Some sort of authorisation issue I wonder?

Note that I use the excelent install checklist by mdsimon2 with some adjustments for the amd64 flavour. His latest install states "As of 12/13/2023 I am installing the camilladsp binary in /usr/local/bin/ instead of ~/camilladsp/, this allows camilladsp to be run by just invoking "camilladsp" instead of the full path to camilladsp." which I followed changing the service as needed. So maybe this has something to do with my problems?

Again any help appreciated.

 
Last edited:
Update to my problem.

I changed to "user=" in the service file back to root (had been change to my user name as per Michael's instructions). Now all seems to be working.

I have obviously got something wrong somewhere. Michael you say "If run as root, CamillaDSP will create a statefile with root as owner and the GUI will NOT be able to modify it, running as a normal user prevents this.". So I am guessing I will need to sort this out and go back to my user name. Any suggestions?
 
@ChrisMmm : Most likely the CDSP user has no access perms to the audio devices. Depending on distribution, it's either group "audio" using standard perms, or specific users listed in ACLs.

Post output of command
Code:
ls -l /dev/snd/*
If the perms section ends with plus sign, run
Code:
getfacl /dev/snd/*

Checking your user group membership is with command "id" (run under the command), or "id USERNAME" (run under root).
 
Output from ls:
Code:
crw-rw---- 1 root audio 116,  6 Apr 11 05:26 /dev/snd/controlC0
crw-rw---- 1 root audio 116, 10 Apr 11 05:26 /dev/snd/controlC1
crw-rw---- 1 root audio 116, 14 Apr 11 05:26 /dev/snd/controlC2
crw-rw---- 1 root audio 116, 16 Apr 11 05:26 /dev/snd/controlC3
crw-rw---- 1 root audio 116,  9 Apr 11 05:26 /dev/snd/hwC1D0
crw-rw---- 1 root audio 116, 13 Apr 11 05:26 /dev/snd/hwC2D0
crw-rw---- 1 root audio 116,  3 Apr 11 05:27 /dev/snd/pcmC0D0c
crw-rw---- 1 root audio 116,  2 Apr 11 05:26 /dev/snd/pcmC0D0p
crw-rw---- 1 root audio 116,  5 Apr 11 05:26 /dev/snd/pcmC0D1c
crw-rw---- 1 root audio 116,  4 Apr 11 05:27 /dev/snd/pcmC0D1p
crw-rw---- 1 root audio 116,  7 Apr 11 05:26 /dev/snd/pcmC1D3p
crw-rw---- 1 root audio 116,  8 Apr 11 05:26 /dev/snd/pcmC1D7p
crw-rw---- 1 root audio 116, 12 Apr 11 05:26 /dev/snd/pcmC2D0c
crw-rw---- 1 root audio 116, 11 Apr 11 05:26 /dev/snd/pcmC2D0p
crw-rw---- 1 root audio 116, 15 Apr 11 05:26 /dev/snd/pcmC3D0p
crw-rw---- 1 root audio 116,  1 Apr 11 05:26 /dev/snd/seq
crw-rw---- 1 root audio 116, 33 Apr 11 05:26 /dev/snd/timer

/dev/snd/by-id:
total 0
lrwxrwxrwx 1 root root 12 Apr 11 05:26 usb-Topping_DM7-00 -> ../controlC3

/dev/snd/by-path:
total 0
lrwxrwxrwx 1 root root 12 Apr 11 05:26 pci-0000:00:01.1 -> ../controlC1
lrwxrwxrwx 1 root root 12 Apr 11 05:26 pci-0000:00:12.0-usb-0:1.1:1.0 -> ../controlC3
lrwxrwxrwx 1 root root 12 Apr 11 05:26 pci-0000:00:14.2 -> ../controlC2
lrwxrwxrwx 1 root root 12 Apr 11 05:26 platform-snd_aloop.0 -> ../controlC0
 
From pyCamillaDSP is there an option to raise a flag signaling the web GUI we have updateded the configuration? So it can trigger the code behind the 'Fetch from DSP' button.

From what I'm experience 'set_active(conf)' does not cause such an event although I can see the update when manually clicking the button.

I've gone through the manual to the best of my ability. https://henquist.github.io/pycamilladsp/
 
@HenrikEnquist - Thanks! Currently, I'm refining a rewrite of my volume control system for Material Skin. It now supports replay gain and a sample rate switcher as program now have access to stream metadata from LMS CLI. Also accommodates resampling profiles for different SR as I've had on my wish list for some time

Its not critical, but it would be nice if the user interface could reflect whats happening on the back-end as I'm not doing any file mangling or reload. The active config is manipulated with pyCamillaDSP as you inteded ;)
 
I think this could be solved by improving the direct mode of the gui (when you have checked "Apply automatically"). In this mode, all changes are sent to the dsp immediately, to keep gui and dsp in sync. It would make sense if it also updated the config in the gui if it changed in the dsp for some other reason.
 
  • Like
Reactions: 1 user
I have just run up a new 8 channel DAC , so far only listened to it via headphones. The DAC is
https://www.hifiberry.com/blog/more-than-just-stereo-the-dac8x/
an 8 channel RPi HAT for the Raspberry Pi 5 running Raspberry Pi OS Lite 64bit.

I am currently using a modified version of a 3 way crossover for my K Horns, the display looks good but I don't have enough leads to hook it up so for testing on my K-Horns so I am listening to a pair of channels at a time via headphones.

I reckon this device could make up a pretty low cost full 8 channel output DSP.
 
More on CamillaDSP on a RPi5 with the HiFiBerry DAC8X, I rigged up a SMSL SP200 headphone amp to drive a Klipsch K55-M on a K401 Horn and fed it the midrange output from the DSP. With my ear in the horn mouth I couldn't hear any residual hiss even with the vol at max. Pretty subjective but indicates to me that this little DAC may be quiet enough for use with high sensitivity horns. Will get some more 3.5mm to RCA leads tomorrow so I can test on the K Horns with the B&C DCX464 mid/hi driver.
 
I have just run up a new 8 channel DAC , so far only listened to it via headphones. The DAC is
https://www.hifiberry.com/blog/more-than-just-stereo-the-dac8x/
an 8 channel RPi HAT for the Raspberry Pi 5 running Raspberry Pi OS Lite 64bit.

I am currently using a modified version of a 3 way crossover for my K Horns, the display looks good but I don't have enough leads to hook it up so for testing on my K-Horns so I am listening to a pair of channels at a time via headphones.

I reckon this device could make up a pretty low cost full 8 channel output DSP.
I just started messing with CamillaDSP with MoodeAudio and an 8ch HDMI extractor (Very nice so far). I also have in my posession, the DAC8x and I'm waiting for my Pi 5 to arrive in the mail. I'm looking forward to trying this out. Are you doing streaming only or have you incorporated some sort of ADC (or digital)
input?