# Which synths have a programming api?



## DennyB (Feb 21, 2021)

For example, is there an api for Reaktor where I can create a synth network (create nodes, connect outputs to inputs, etc) from a (probably) C++ api?

i know there is stuff like csound, but I’m looking for something whose audio engine is competitively performant and high quality.

thanks!


----------



## Technostica (Feb 21, 2021)

A lot of them seem to be more graphically orientated but they still may have a text based API in some cases.
At one extreme is this:









New in Max | Cycling '74


Check out what's new in Max 8




cycling74.com


----------



## uOpt (Feb 21, 2021)

You could also start with an Open Source Synth such as Surge.


----------



## ReleaseCandidate (Feb 22, 2021)

I don't know of any.
There is Surge as OS (and some others), you can't get much better than it anyway.
And you could - using JUCE - program a generic plugin host and control the parameters and MIDI of (almost every) synth from there. That's what I would do, but I don't know what you want to do exactly, as each of the nodes would be a plugin, not a part of a synth like in a modular.


----------



## EvilDragon (Feb 22, 2021)

Since Surge was mentioned... Surge has a Python API with which you can access its parameters and programmatically create a patch.


----------



## ReleaseCandidate (Feb 22, 2021)

So mentioning Surge two times is enough to summon an evil dragon! 😲


----------



## EvilDragon (Feb 22, 2021)

Yep. Faster than Beetlejuice, who needs to be called three times.


----------



## Tag (Feb 22, 2021)

Might not be exactly what you are looking for (e.g. it's not as complex as Reaktor), but since it is modular: *MSoundFactory*.


----------



## Pier (Feb 22, 2021)

DennyB said:


> For example, is there an api for Reaktor where I can create a synth network (create nodes, connect outputs to inputs, etc) from a (probably) C++ api?


By using the VST SDK in C++ you should be able to instantiate and manipulate any VST device with the exposed automation parameters, no?

If you're on macOS you could use Swift with AU instead.


----------

