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

Member
Joined 2005
You need a newer version of the jsonschema library. Can you check what version you have installed?
3.2.0-0ubuntu2 says its the latest version

The full line of the error is:

ImportError: cannot import name 'Draft202012Validator' from 'jsonschema' (/usr/lib/python3/dist-packages/jsonschema/init.py)
 
Last edited:
Member
Joined 2005
Thanks, did upgrade with pip.

Name: jsonschema
Version: 4.21.1

No longer getting that error but now get :

AttributeError: module 'camilladsp' has no attribute 'CamillaClient'
 
Last edited:
Member
Joined 2005
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:
Member
Joined 2005
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?
 
Member
Joined 2005
@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).
 
Member
Joined 2005
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
 
Member
Joined 2005
So I added camilladsp (my user name) to the audio group and changed the service back to be the user name. This now works fine!

Many thanks for the likely cause. I think its fair to sy I am floundering a bit with Linux but learning;)
 
  • Like
Reactions: 1 user
Member
Joined 2005
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/
 
Member
Joined 2005
@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 ;)
 
Member
Joined 2016
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
Member
Joined 2016
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.
 
Member
Joined 2016
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.
 
Member
Joined 2008
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?
 
Top