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

RPi I2S interface is capable of 768kHz/32bit/2ch (I run my ADC/DAC at that rate with some simple tweaks to timing thresholds). That bitrate is enough for 64ch @ 48kHz/16bits. At 720kHz samplerate that would be 40ch @ 48kHz/24bits with bitclock 46MHz. 40ch requires 5 pcs of inexpensive 48khz/8ch/24bit DACs with TDM input. Clocks can be generated either by RPi directly (a bit jittery), or via an inexpensive external programmable clock chip (configured via I2C) of which several are on the market. The most complicated part would be the HW block converting the single stereo stream at 720/768 kHz to multiple TDM streams at 48kHz. Maybe one or two 4-dollar RP2040 with its PIO HW state machine (people have been able to overclock RP2040 from stock 133MHz up to 420MHz) could do the job. The clock generator could provide the required synchronous clock at any multiple of the bitclock.

Modifying CDSP alsa sink code to interleave data chunks for all the channels generated by the processing thread into one stereo chunk at the samplerate multiple would not be complicated.

IMO this would be a nice project for some HW/SW enthusiast, likely with a commercial value.
 
  • Like
Reactions: 1 user
Got it, that makes sense. Thanks for explaining this stuff, I really appreciate it.

So I guess the only real solution to use multiple interfaces to achieve higher channel count is to use ADAT I/O.

If I was @nerddude I'd probably just use a mac and get two MOTU 16As (connected via ADAT I/O) or an RME Fireface USB + 4x ADAT DACs. BTW we never talked about your source, how are you getting your 11 channels of audio in to CamillaDSP?

Michael
From avr..I am converting my 11 bed channels to active.
 
I'm stuck, right after the startingline. NEEP HELP!

Constraints:
HTPC with AMD64 running Ubuntu 20.04
7.1 Reciver, connetcted to HTPCwith Displayport - HDMI
3-ways speakers, the staring point of this project.

I'm planing to stream sound from HTPC->reciver->speakers by running camillaDSP on the HTPC with active filters.

I have looked at the https://github.com/HEnquist/camilladsp#usage-example-crossover-for-2-way-speakers, copied the .yml and modified it to 3-way.

But do I set up Alsa? can someone walk me trough how I set up Alsa to capture a stero signal and then send it as a 7.1 to one of the displayports on the HTPC?

Please start from the basics, assume I have no idea of what I'm doing....
 
per@Carlin-HTPC:~/camilladsp$ 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: PCH [HDA Intel PCH], device 0: ALC294 Analog [ALC294 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 1: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: PCH [HDA Intel PCH], device 9: HDMI 3 [HDMI 3]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: PCH [HDA Intel PCH], device 10: HDMI 4 [HDMI 4]
Subdevices: 1/1
Subdevice #0: subdevice #0
per@Carlin-HTPC:~/camilladsp$
 
Nope, it refuse to coperate

Tried all ports.

Config:
devices:
samplerate: 44100
chunksize: 1024
capture:
type: Alsa
channels: 2
device: "hw: PCH,9"
format: S32LE
playback:
type: Alsa
channels: 4
device: "hw: PCH,9"
format: S32LE

Output:
familjen@Carlin-HTPC:~/CamillaDSP$ ./camilladsp /home/familjen/CamillaDSP/config/test3.yml
2022-05-29 14:42:21.952171 INFO [src/bin.rs:711] CamillaDSP version 1.0.0
2022-05-29 14:42:21.952248 INFO [src/bin.rs:712] Running on linux, x86_64
2022-05-29 14:42:21.958012 ERROR [src/bin.rs:362] Capture error: ALSA function 'snd_pcm_open' failed with error 'ENOENT: No such file or directory'
2022-05-29 14:42:21.958943 ERROR [src/processing.rs:50] Message channel error: receiving on a closed chann
 
Last edited:
Change only the Playback device, not the Caputre. Capture should be the Loopback.

Edit:
I would use maximum of Henrik's configurations. E.g. if you use
https://github.com/HEnquist/camilladsp-config/blob/master/asound.conf

i would set Capture according to this
https://github.com/HEnquist/camilladsp-config/blob/master/alsaconfig.yml

It is described here
https://github.com/HEnquist/camilladsp-config/blob/master/README.md
How do I convert the fedora syntax to something that Ubuntu understands?
Some of the folders are not avalible in Ubuntu.
 
The space are to aviod some kind of stupid emoji on diyaudio, it is not in the config file.

Just wrap the listings into the code tag to avoid any replacements. The problem is the new diyaudio upgrade removed the code tag icon, for a reason unknown to me. Just type code tags (in square brackets) around your listing manually. Like this:

Code:
this is your config :-)
 
  • Like
Reactions: 1 user
There is no need to convert anything. I use Mint and RaspbianOS, I used Cinamon Ubuntu and Cinamon Fedora as well. I do not remember changing anything for CamillaDSP. Just follow all steps, in the step 6 only section for Pulseaudio,
https://github.com/HEnquist/camilladsp-config/blob/master/README.md

I do not have /modules-load.d/ in my installation. Do i create it or should the aloop.conf be put someware else?
Code:
/etc/modules-load.d/aloop.conf
 
Just to be shure I do not miss anything.

In Settings (GUI) can I select following as sound output:
  • Internal Speaker
  • Analog output
  • HDMI 1 (physical a display-port+)
  • HDMI 2 (physical a display-port+)
And depending on selction can I choose
  • Stereo
  • 5.1
  • 7.1

Will there be a "Loopback" device when Alsa are corretly configured or should I choose any of above? I have preciously run on HDMI 1 + Stereo when I used the revicer + speakers with passive filters.

Have so far not to look at recording devices, assume there are somthing similar as above (minus speaker and HDMI?). is this something that I also need to adress?