I don’t know if the link already was posted here, so forgive me for double posting.
All (DSP/Audio/FX) programmers: take a look at SOUL! It seems to be a very cool C-like language for programming DSP-like things. It reminds me a little bit of chuck or CSound. For me, it’s a very cool thing, because it brings a C-like language together with avoidance of some really error-prone programming problems (like wrapping around array indices and some more features).
Currently the only really “host” seems to be JUCE. But I think creating a LV2 host or a Teensy-Audio-Lib-host should be possible. In the examples there is a TX81Z processor (it does not have all the original features) but for an example very impressive.
Unzip the files into a folder of your choice and change into this folder
Run an example patch: ./soul play --audio-device-type="HDA Intel PCH, ALC892 Analog; Front speakers" <path-to-your-cloned-soul-repo>/examples/patches/PadSynth/PadSynth.soulpatch
You can take a look at all available sound devices with ./soul play --list-devices
There are also arm32 and arm64 binaries for the soul programm available
Have a look at FAUST too. According to what I read from SOUL creator, there’s a bit of FAUST behind the SOUL concept, as he found FAUST was a great tool but too complex of a language for an average programmer, which sort of led him to creating SOUL. FAUST is indeed a purely functional language like LISP or HASKELL, so a nightmare for doing certain things while SOUL is very C-like… but FAUST includes simple GUI design and can export to many targets including ready to compile LV2 plugin source code. Both languages have a nice online IDE for testing code (but with FAUST you get an instant GUI as well)
It sounds like SOUL is a great match for this device, as the intention is to build a large corpus of DSP algorithms written in SOUL, which can then be JIT compiled onto various processors, including arm32/64, and hence you’ll get native support for this Pi based platform.
As for Faust, there is a faust2soul converter which means that any Faust code can be converted into a soulpatch, and hence can be played with the soul runtime. We’ve been looking at providing better integration between the two languages, which would allow a patch to combine Faust and SOUL code for example.
Yeah, welcome onboard, maybe you could set up a barebones zynth (rpi + usb audio interface) as a testing platform for your proyect, I myself am really excited to have this kind of features on the zynthian