Discussing about 8channel DSP using Camilla DSP + Raspberry PI -- Interface options

Hello,
and sorry in advance for beginning just another topic about multichannel DSP using CamillaDSP. But the questions I have are not answered so far. My intention is the implement a Stereo 4 way active loudspeaker system (8 channels in total). Initially my plan was to use analog active crossovers. But the limitations doing this are there. Hence I searched about DSP solutions and came across CamillaDSP, a great project.
Besides using very expensive multichannel sound interfaces (RME for example) I considered other solutions and hopefully get a feedback to this from the forum. My most important concern is timing accuracy. The individual channels must not have a timing error >10us (assumption) to reduce phase shift in between.
My elementary need is to have 4 I2S / Toslink IOs for using 4 fully digital AMPs (1 for each frequency band).

* according to my understanding using 4x Raspberry Pi and 4x Digi+ IO boards should do the job. The audio signal is split using a 1x4 TOSLINK splitter, all Raspi get the same input data stream, each Raspi only has its own filter and some delay to make all ways equal. As I understand the situation timing should be no issue because input and output audio is synced by the (common to all) I2S input clock.

* using 1x Raspberry Pi and 4 USB sound devices: as far as I know JACKD can be used to implement a aggregate sound device. 4x 2 channel devices give 1x 8 channel virtual device which can be used in CamillaDSP. Of course USB timing and delay is not known because of its asynchronous nature. But what can be said about the relative timing in between the USB devices? Does JACKD guarantee that there is no timing error in between them? If this is not the case what is the sense of the aggregate device?

* using 1x Raspberry Pi and HDMI 7.1 audio extractor: this implementation should give no channel relative timing error at all.

Perhaps here are some experts who can comment on this. Most likely this is a questions many others are interested in as well.
Many thanks in advance...

Stephan
 
If you want/need timing accuracy (and you do, in your case) then you must run everything on the same computing hardware (a Pi4 could do it) and I strongly suggest using a single, multi-channel audio interface. I have been doing this for years (not using CamillaDSP however) using Linux on small mini PCs (I started on the Pi platform but I like the higher computer power of e.g. a Celeron based system). I use a USB pro audio recording interface. By far IMHO the best one to start with is the Behringer UMC1820. You can upgrade to one with higher spec later if you want. I still have a couple of system run by this interface, and they are fine.

You can start with CDSP on a Pi4 4GB and an UMC1820 and bet all set for the next couple of years.

BTW, why would you want to use "digital amps"?
 
thank you. Of course, a single audio interface is always the best. From the engineering point of view it would be very interesting what for example Jackd aggregate devices can offer. Or what USB can offer. I'm interested in this.
Fully digital amps like the Aiyima D03 ( https://www.audiosciencereview.com/...03-class-d-amplifier-subjective-review.25686/ ) do offer a great and cheap opportunity to test the speaker system I'll build. Designing 4 DACs, 4 analog amplifiers with common (!) volume control and so one may be the next step. But at the beginning I have to prove whether this makes any sense. The speakers it self will by very complicated (Subwoofer + 3 way spherical horn) and the success is not guaranteed. Because of this having a working crossover and amplifier setup that just works will be very beneficial.
 
@stephanbrenner Also, you wrote:
The individual channels must not have a timing error >10us (assumption) to reduce phase shift in between.
Do you realize that at 48kHz one sample represents a "bin" that is 20.8usec long, so you are asking for sub-sample timing accuracy.

I have experimented with multi-computer playback systems, one computer for each loudspeaker of a stereo pair for example. I can keep them synchonized using extraordinary efforts like GPS based playback timing, but only to +/- 50usec or so and it's not ideal because the relative timing is moving all over the place at the 10-20usec level from moment to moment. This is enough for left-right channel timing but would not work for e.g. keeping the phase angle steady between midrange and tweeter at 1kHz.
 
  • Like
Reactions: DorinD
Do you realize that at 48kHz one sample represents a "bin" that is 20.8usefc long, so you are asking for sub-sample timing accuracy.
of course, my assumption was using 96kHz rate and a max. phase shift of 10° in the mid to high transition.
Using the raspberry DIGI+ IO I believed that I2S chunk processing is mainly clocked by the common TOSLINK derived input clock, not the computer clock itself. Hence my hope was that the individual "processing nodes" do not introduce additional timing errors?!
 
CDSP can correct for different input and output rates, but cannot hold any one device/computer to a reference time, so each of your four Pis might play at the same rate after a short time, but at startup might drift apart much more than you think. Or they might never really get and stay in sync all that well, at least not to the level you need.

Well, I wish you luck. If you get it working and can do some measurements please post them here (on DIYaudio).
 
  • Like
Reactions: DorinD
Well, I wish you luck. If you get it working and can do some measurements please post them here (on DIYaudio).
oh thank you. I'll start work on this when I have a valid guess that producing the horn speakers will work. Similar to the Avantgarde Acoustic Trio (which is my dream but cannot buy because of the 400k price tag) I'll build a 20cm, 60cm and 100cm horn per side. Freq band will be 0-150Hz, 150-750Hz, 750Hz-2000Hz, 2000Hz-20000Hz. A passive crossover is hardly possible because of the low cutoff frequency and the different way SPLs.
 
  • Like
Reactions: pintur
I don't really have anything to add as Charlie already gave good advice. I would also recommend against any solution using multiple pi4's or multiple usb dacs. A single multichannel device gives superior synchronization and is far easier to get going. The devices Charlie mentioned (the Minidsp u-dio and the behringer interface) are both good choices. You can also add the Motu Ultralite mk5 to the list. It's similar to the behringer, but has volume control and better analog performance, at a higher price.
 
  • Like
Reactions: DorinD
I would say that multiple DACs connected via toslink is OK. Use an RME Digiface Toslink to hook up 4 stereo DACs in sync. I wouldn't dare via USB... RME is Mac or Win only as I understand. A used 2014 Mac Mini is 200€....? Fine machines for CDSP!

//
 
  • Like
Reactions: HenrikEnquist
I would say that multiple DACs connected via toslink is OK. Use an RME Digiface Toslink to hook up 4 stereo DACs in sync. I wouldn't dare via USB... RME is Mac or Win only as I understand. A used 2014 Mac Mini is 200€....? Fine machines for CDSP!

//
No,------ there is good (not Great ;-) RME support in Linux 🙂
https://github.com/PhilippeBekaert/hdspeconf/blob/main/doc/AIO.md

https://github.com/PhilippeBekaert/hdspeconf

https://github.com/PhilippeBekaert/snd-hdspe

https://forum.rme-audio.de/viewforum.php?id=10

Recent kernel versions support RME devices.
I use a very basic Debian server install to record analogue LP 24/96. (without any of the above)
arecord and alsa use the RME AIO card by default and works flawlessly. ;-)
 
Last edited:
thanks a lot for your replies. I think I have several options. The next important step is do hopefully build these 6 spherical horn speakers. This is the plan for this year. If anybody is interested in, maybe I can post intermediate results.
Nevertheless I'll try to do some measurement to figure out the timing behavior of aggregated sound devices in JACK. The topic would be very beneficial if it works.
 
Not all RME devices have Linux drivers. The hdsp family does, but I don't think there is any Linux support at all for the digiface.
No, I haven't seen one. Nor does the device function without an USB host connected as it cant remember it's configuration - I had hoped I could run it 2ch opto in with no USB connection but it wasn't to be. Audio in via USB it is.

//
 
@stephanbrenner I almost forgot about one more possibility that meets your needs: the miniDSP nanoDIGI.
https://www.minidsp.com/images/documents/Product Brief-nanoDIGI 2x8 Box.pdf
The product is discontinued, but you might be able to find a used one.

It's an all-digital (inputs and outputs) DSP processor. Outputs are 4x stereo S/PDIF on coax (RCA jacks). You could directly connect this to your digital amplifiers (possible using coax to toslink converters). There is the possiblity to control the internal volume with a remote, so you can use it like a pre-amplifier.