Hi folks,
I am currently doing some preliminary analysis with the goal of having Sushi running in a relatively simple Bela wrapper.
I was considering using Sushi as a library in Reactive mode, and I saw in the docs that it currently only supports a stereo use case and a single MIDI device.
I would need at least 8, and ideally 10, audio inputs and outputs (Bela Gem Multi provides 10in, 10out), so I wanted to ask whether you know of any challenges I might face if I tried to fork Sushi and make it compatible with such a setup.
My understanding is that Reactive is already the right integration model for Bela, i.e. Bela would own the RT audio callback and forward audio/MIDI to Sushi from there.
The main question for me is therefore whether extending Reactive from stereo to 8/10 channels is mostly a frontend/configuration patch, or whether deeper assumptions would get in the way.
FWIW, I think I would need to:
- make Reactive audio I/O counts configurable instead of hardcoded to stereo
- plumb those counts through the Reactive config/factory path
- possibly lift any frontend channel count limits
My main questions are:
- Is Reactive’s stereo limitation mostly superficial, or is stereo assumed deeper in the engine?
- Are there any known obstacles to running Sushi this way with 8–10 ins/outs?
- Would you recommend extending Reactive, or writing a dedicated Bela frontend instead?
I’m fine with the single MIDI device limitation, as I will only need one.
Thank you so much!
Leo
Hi Leo. Sounds like a fun project. Without knowing much about how the Bela audio api looks like, but if you have direct access to the audio api, my best bet would be on writing a new audio frontend for Bela. Iirc Bela is also xenomai based, so you could probably start from the XenomaiRaspaFrontend.
The reactive frontend was originally made for embedding sushi in a plugin and running inside another Daw on a desktop/laptop. Hence we did it with a limited scope (only stereo, one midi port, etc) but sushi supports any number of channels so it shouldn’t be a lot of work overcoming those limitations. If Belas api is closer to that of an audio plugin then the ReactiveFrontend might be a better choice.
Another aspect to keep in mind is twine, which encapsulates some low level threading details. It might work more or less out of the box, but it might also need some work to in order to work properly on Bela.
Good luck.
1 Like
Okay thank you very much @Gustav !
So far to me it looks like I could make the Reactive mode work in a small Bela project, which actually looks pretty much like a plugin/host, so pretty close to what is intended for Reactive mode. Haven’t tried anything yet, I am still researching and waiting for the shipping of my Bela Gem Multi to arrive.
It would be so awesome if it works out of the box, it would save me SO MUCH work to redo and I really loved the Sushi/Plugins dev workflow, it suits my project so well.
I’ll keep you updated.
Thanks again !
1 Like