SOUL - Sound Languange for DSP programming

Hi @ll,

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.

Have fun,



The link is not working for me.

Ah, sorry… fixed it!

Thanks for reporting!

… and got it running (on x64 cmd-line):

  1. Clone the SOUL repository: GitHub - soul-lang/SOUL: The SOUL programming language and API
  2. Download from
  3. Unzip the files into a folder of your choice and change into this folder
  4. 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 :sunglasses:

Regards, Holger


That’s what we want to see :grinning_face_with_smiling_eyes: .

I’m uncomfortable with the idea of a soul patch.

Could be worse:

(David Soul with soul patch)


“I think my least-hated favorite fish is sole. Sole has no eyes.”

You’re listening to k.a.o.s. in Los Angeles.

1 Like

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)

Hi, one of the SOUL designers here.

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.


Thank you cesare!

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