SynthEdit modules and tools

Here is a confession right away: I have never actually used SynthEdit to make music. But I was fascinated by how it worked — a modular environment where third-party modules (SEMs) plug into a visual synthesis graph. So I did what I always do with fascinating architectures: I took it apart and built for it. The results live under SE modules and SE Tools.

Modules

After translating the SynthEdit SDK to Delphi, I ported a large slice of my open source DSP code into SEM modules: audio file oscillators, tanh approximations (ten of them, each a different trade-off between accuracy and CPU), a 25-piece trigonometric math collection, and one big bundle module containing about 175 sub-modules. The GUI modules went in a different direction: algorithmic brushed metal surfaces, a whole shelf of image effects, a filter frequency-response plotter, a sonogram, even an OpenGL viewer that loads 3DS/OBJ/STL scenes into a synth GUI.

Tools around the format

Understanding the SEM file format led to tooling: the SEM Explorer displays general information and pin properties of any module file, the SEM Merger chains as many modules as you want into one, and the VST to SEM wrapper made any VST plugin usable natively inside SynthEdit. A convolution module could even get impulse responses embedded straight into the module file.

Everything came out of my Delphi ASIO & VST open source project, and the sources are still available. The modules are no longer maintained — but as an exercise in learning a foreign architecture from the outside, this chapter taught me more than most.