3+ output-DAC support

For a project, we are working on a system that needs to drive 3 or 4 independent audio-exciters. We have been trying to scour through all options that we can find, but haven’t found an ELK-supported DAC that has 3 or more output channels.

Is there a supported way, using ELK OS to chain two DACs together, or is there a known-supported DAC that does allow for this?

Hi @DaanVA

I ran into the same wall, and I found the Bela Gem Multi, which has 10 input and 10 output channels and also runs on the Xenomai kernel.

I am currently working on a reggae preamp project that uses Sushi-as-a-library in a Bela code project, and I am having great levels of success.
I have it running at bufsize 32 @48KHz and after quite a bit of perf-hunting, porting all my JUCE code to DPF for a lighter memory footprint, optimizing my DSP code to use fastmath and NEON SIMD vectorization where applicable, stripping off unused features of my plugins for the product, and most importantly tuning the system to use 3 Twine EVL workers on separate cores, I’ve managed to have almost no underruns (only 2/minute) with this enormous config :

  • 15 VST3 instances, including a 4-band compressor, a sample player, a double stereo echo, a granular delay, and a quite overkill saturation plugin (the rest are lightweight channel strips and eqs)
  • 32 internal sushi plugin instances, including 23 sends, 5 returns, 2 freeverb and 2 gain plugins

This is pushing the bela to its limits and I am having quite a blast optimizing everything I can to basically cram GTA5 in a gameboy color lmao.

I am using Claude Code to help me on these optimization tasks. I already had made all the plugins and sushi config on my Pi 4 and wanted to move to a platform with more I/O, like you.

The Bela is based on the PocketBeagle2 which is quite underpowered compared to the Pi 4, which does make the dev cycle a bit slower, for example it doesn’t meet the requirements to build sushi, so I’ve made a docker image that is inspired by the ELK one to crossbuild Sushi, JUCE plugins and DPF plugins for the PocketBeagle2.

I plan on making everything open source ASAP, I still have a bit of cleaning to do and fix several scripts and I will publish it for you guys.

If you can’t wait for me to release, hit me up.

Cheers !

1 Like

Please note that at the moment I am only using the first pair of output channels, and the current implementation of the sushi reactive frontend (which is the one used when you include sushi as-a-lib) does not support more than 2 ins and outs.

But I am working on that and will open a PR if I can make it work. :slight_smile:

Quick follow-up, I’ve just tested outputting a sine wave plugin through all outputs on my fork and it seems to work, here is the tooling I’ve just released to get you up and running :

Please let me know if you need help with it.
Claude Code will also totally be able to help (It takes the repo, runs the docker builds, then deploys the built binaries on your bela and runs it, you can just chill)

Enjoy !!