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

Volume Control question: Moode / CamillaDSP / USB DACs line level / Active monitor speakers and subwoofer.

This may not be 100% CamillaDSP specific, but I hope have some advice here. I often read to pay attention about how and where doing the volume control. I would like to do it right, and understand better the concerns at stake here.

my restitution chain would be: RPi with Moode / CamillaDSP => USB DACs line level => Active monitor speakers and subwoofer.

I have some basic level adjustment on the Active monitor speakers and subwoofer so that max IN signal would be Max I can listen to. Then I need to dial my session volume (much lower normally).

Ideally, I would do it from the Moode interface. Is it OK? Are there better ways to do it? Nota: the DAC wouldn't have a volume control (line level).

Help :)
JMF
 

TNT

Member
Joined 2003
Paid Member
A few rules perhaps:

  • you don't want a situation that when you play loud(est) and at the same time need to use a lot of digital attenuation (... -20-50 dB). This can happen if your last stages are analog and with high gain.
  • if you have many digital level controls along the path, use the one with the highest resolution (CDSP...) and set the other to zero attenuation.
  • the Mood interface - is that a native Moode level control or in fact the CDSP? Use CDSP if possible.

But your chain is simple and you seem to already have set it it up OK - not som many options really.... I would set the speakers to have 3-6 dB headroom....

//
 
Try running:

sudo apt install linux-modules-extra-$(uname -r)

Michael
Each time my RPi4 kernel updates I've had to apply this advice I received gratefully a long time ago from @mdsimon2 to ensure the alsa playback loop virtual device remains available. It's bugged me a bit, and I've just discovered that there's a way to overcome that. Instead install a meta-package with
sudo apt install linux-modules-extra-raspi
This is the according to the advice given in the Description reported by sudo apt show linux-modules-extra-5.15.0-1032-raspi
You likely do not want to install this package directly. Instead, install the linux-modules-extra-raspi meta-package, which will ensure that upgrades work correctly, and that supporting packages are also installed.
 
A few rules perhaps:

  • you don't want a situation that when you play loud(est) and at the same time need to use a lot of digital attenuation (... -20-50 dB). This can happen if your last stages are analog and with high gain.
  • if you have many digital level controls along the path, use the one with the highest resolution (CDSP...) and set the other to zero attenuation.
  • the Mood interface - is that a native Moode level control or in fact the CDSP? Use CDSP if possible.

But your chain is simple and you seem to already have set it it up OK - not som many options really.... I would set the speakers to have 3-6 dB headroom....

//
Thanks TNT,

Seems that I'm not completely out of track.

Ideally, I would like to use for interface the "Main" volume control provided by the Moode interface (a big 0-100% sector). I have to see if this HMI is/can be connected to CDSP volume control.

I forgot to explicit that CDSP will, have to do the main speakers low cut. This means 2x2 channels out of CDSP, and the volume control has to be applied I imagine after DSP processing, so:
  • between CDSP and the DACs (digital),
  • or after the DACs (analog on each channel of the multi channel system ; less practical than digital solution.

Last resort if at the end my amplifiers have too much gain: attenuators with resistors bridge on the analog outputs between DAC and speakers?

What would be the requirements/conditions making a multichannel Volume Control IC justified in such an application (to go to the bottom of things)?

Best regards,

JMF
 
Volume Control question: Moode / CamillaDSP / USB DACs line level / Active monitor speakers and subwoofer.

This may not be 100% CamillaDSP specific, but I hope have some advice here. I often read to pay attention about how and where doing the volume control. I would like to do it right, and understand better the concerns at stake here.

my restitution chain would be: RPi with Moode / CamillaDSP => USB DACs line level => Active monitor speakers and subwoofer.

I have some basic level adjustment on the Active monitor speakers and subwoofer so that max IN signal would be Max I can listen to. Then I need to dial my session volume (much lower normally).

Ideally, I would do it from the Moode interface. Is it OK? Are there better ways to do it? Nota: the DAC wouldn't have a volume control (line level).

Help :)
JMF
If a CamillaDSP config has a filter of "type: Volume" moOde will automatically proxy its volume knob updates to the nice 64b CamillaDSP volume control.

I can post a config if you want to experiment and see what the pipeline looks like.
 
  • Like
Reactions: 1 users
May I express, again, my wish for a CDSP version that would support Fs switching, pretty please? :)
If there had been a straightforward way to do that, I would have done it already...

Hi I have a couple of questions:
1) are any limiters/compressors available? I had a look through the documentation but couldn't find a mention
Both will be available in v2.0. (v2.0 will be the next version, I'm skipping the 1.1 release)
2) what kind of input out output latency is possible, could this be used in a 'live' situation?
It will never compete with a hardware dsp on latency. The actual latency depends a lot on the setup and what filters are used. I know some people have made an effort to minimise it in their setups, but I don't remember how low they managed to get.
 
  • Like
Reactions: 2 users
Member
Joined 2007
Paid Member
I'm quite curious as QSC is using off the shelf server hardware for their DSP cores now: https://www.qsys.com/products-solutions/q-sys/processing/core-5200/ so it must be posible to get acceptable latancy through software DSP. I'm interested in the latency from input to output without any filtering but also if filters are added is there any extra latancy beyond the intrinsic delay of the filter (E.G buffers inside Camilla DSP?).
 
IIUC that setup is aimed at video conferencing, where latency is not so critical, provided lip sync is preserved (i.e. video is delayed to synchronize with audio). The specs say:

AES channel capacity: 64 at 200ms tail length

That server has no IO cards, everything is over IP.

I'm interested in the latency from input to output
You have to add latency of the input/output buffers for the audio subsystem.
 
Hi I have a couple of questions:
1) are any limiters/compressors available? I had a look through the documentation but couldn't find a mention
2) what kind of input out output latency is possible, could this be used in a 'live' situation?
I have optimized my own setup for low latency. Using an overclocked RPi 4 and a Behringer UMC1820 (with some 1024 taps FIR filtering @96Khz and a bunch of IIR filters) I get less than 20ms of roundtrip latency at the listening position. A while ago I measured the "raw" latency without any applied filter and I got a nice 4-5ms, including the latency coming from the measurement side (Mac+soundcard -> UMC1820 -> RPi+CamillaDSP -> UMC1820 -> Soundcard+Mac).
I am really amazed by those results, and I can record some electric guitar using my setup as a monitoring system without being bothered by any latency issues messing with my timing.
 
  • Like
Reactions: 1 user
Last edited:
@phofman I have set the maximum priority to CamillaDSP, changed the kernel to a realtime one and locked the frequency of the CPU to its maximum with cpufrequtils. I have also disabled a lot of unnecessary background processes to reduce the number of interrupts susceptible to eat usable cpu time.
I think I will try an x86-64 architecture in the future (with a mini ITX motherboard and a decent Intel or AMD CPU), to see if I can further improve those numbers. With larger FIR filters buffer underruns start to appear, and maybe more processing power can solve this.
 
I currently don't have a "potent" (=hot) RPI4. Instead, along with a "weak" (and cool) RPI3A+ and even trottled to 600kHz for steady-state CDSP operation chunksize set to <= 64 does not work. Set to chunk sizes >= 128 everything is perfect, stable, no dropouts, while resampling 44kHz/48kHz to 96kHz, apply some filtering and outputting to an alsa spdif device. I did not measure latency.
 
Last edited:
I recently attempted to set up a virtual ALSA device combining two multichannel DACs for use with CamillaDSP as described here -> https://github.com/HEnquist/camilladsp-config/blob/master/asound_multidevice.conf.

I was able to get this to work with two DACs that both used S32LE format but could not get it to work (I believe I got a device unavailable error in CamillaDSP) with a S24LE and a S32LE DAC.

Is this expected? Is there are known work around?

Michael
 
  • Like
Reactions: 1 user