|
I've often felt frustrated by my own lack of coding skills, outside of ZX Spectrum BASIC! I'm a "systems thinker" and my dual passions of vintage computing and synthesizers have taught me to *think* like a coder; keeping an eye out for structures, loops, signal flow and variables.
But even a high-level language like C is a pretty big time sink. There's so many tiny specifics to learn, even with a coder's flow state (I've also never learned what all those pieces do in Chess! Someone, please teach me haha) that I've not gone near it, even when there was motivation to! Korg's Logue SDK, a series of open source development libraries/tools, allow any tinkerer with a bit of C/C++ knowledge to knock up a synth or effect algorithm and upload it to the hardware. "What a thrill, being part of something like that!" I thought.

I put that dream on the back burner and continued following the path I'm actually skilled at...until Boochow released an app (covered here) that can convert Pure Data patches into Korg SDK oscillators, synths or effects! I focus on the Drumlogue app in this article, but you can find more info about all the tools here:
Obstacles
Pure Data is a visual programming language from 1996. "PD" is node based, kinda like Resolve's Fusion editor and affords you a bunch of very basic, flexible building blocks in order to build, err...whatever you'd like! The program installed cleanly on my MacBook M1...but on Saturday afternoon, there were still a number of barriers between me and my goal:
1. Boochow's web shop experienced technical difficulties (sorted now!) so I couldn't get hold of the Drumlogue example patches.
2. The online converter application wasn't working through my internet connection.
3. Pure Data is an intimidating looking thing - stark monochrome, unlabeled node inputs/outputs. Simple mathematical +, * and ~n commands you have to work out. Also, no pre-built envelopes included in the vanilla install - you have to make them yourself out of "line" and "delay" commands! Without some example patches, how the hell was I gonna get something going?
Boochow has been fantastic in helping me get the tech working. My internet Gremlins soon disappeared and I was able to get hold of the example patches - although family life has prevented me from analysing these as of yet.
My Patch
In between the tech not-working and then working, I simply played with Pure Data, aided by the command reference, for about 3 hours - and that was actually enough time to work out the very basics! So I simply must say, PD feels a great stepping stone into synth development - it's more instantly-rewarding than C (which has no visual nodes, and an extra compilation step required to test code) but PD is an abstraction layer above say, VCV rack where pretty, foolproof panels belie hidden complexity.

There were a couple of gotchas like:
- A required "stripnote" node to that stopped my sound double triggering (due to Midi Note Off)
- The very specific syntax required by my 3 control parameters
- Not connecting the signal to both sides of the "dac~" and ending up with sound only in my left ear!
But I managed to, in the end, get something I was reasonably happy with. I converted the .pd file with Boochow's app and uploaded it to my Drumlogue...
My Patch Works!
A (possibly short!) career in synth design has begun! My Drumlogue synth "unit" is available here:
https://drive.google.com/file/d/10OxpsUQKCsatEzUC4rM8_QlswI_ew24a
EDIT, this is V2: https://drive.google.com/file/d/1sAfNG72fREXCjVBEGtHzNMRM5BfY87Pn/view?usp=sharing
It's called RubberDrumCircle (think a club full of goths hammering on oil drums) and whilst basic, sounds like nothing else on the Drumlogue. A slightly clipped sine wave - thru VCA and pitch envelope - is triggered sequencer or MIDI notes. Then:
- Knob 1 brings in nasty, exponential FM via a second oscillator.
- Knob 2 tunes this oscillator over a silly range that no real synth developer would allow.
- Knob 3 blends in white noise to the modulation signal - it can sound quite interesting and phasey.
Limited time, as I said, but my next steps will probably be:
- Record a little demo - I had it going through Boochow's "Delay Lab" (a nice delay with audio-rate LFO!) and wowed myself a little.
- Actually dig into Boochow's code and give RubberDrumCircle a proper envelope - the current "line/delay" one sounds a little rough and, of course, on this version you're stuck with one decay length! It's a good one, but yeah.
- See if I can do something with stereo, now I know how that works!
For now though, enjoy RubberDrumCircle - it sounds pretty cool. I have some more ideas, like a waveshaping delay, wavetable oscillator, etc...but those will have to wait a little while, whilst I rack up the skills. And talking of skills, I'm sure at least one person will ask me, "why learn to code now, when AI can do it all?" Well, learning skills and overcoming my limitations lights me up, and AI just doesn't. See you next time!
Posted by MagicalSynthAdventure an expert in synthesis technology from last Century and Amiga enthusiast.