Wrapping my head around SOUL

I’ve read through the SOUL docs and I’m super excited about what it seems to be capable of. I’ve wanted to get into audio development for years but have never worked up courage of learning C++.
Probably because I don’t know anything about embedded languages, I don’t quite understand where or how SOUL would interface with, for example, Python and a system’s soundcard. Is SOUL going to be a separate process running with an API that the Python script sends SOUL patches and input (MIDI) signals? To me, I’m imagining a SOUL server and the other languages (Python, JS, Go) as potential hosts…

Is that the correct understanding or is there a way to wrap SOUL and a python script together as a single process?
As a python/go developer, I’d love to help out however I can. I’m just trying to get a better idea of how it all works because I haven’t done much cross-language work before.

Yes, that’s the general idea. There are actually loads of ways to use it (it’d probably be a good exercice for us to list them out in the docs, actually), but certainly the main use-case we want to achieve is where your program (in Python, Javascript, C++ or whatever) calls the soul API to give it the program, tell it to run it somewhere (local, or a server, or wherever) and then talks to it to send/receive events and data while it’s going.

3 Likes