K-S synth — a three-voice Karplus-Strong synth

That kind of stays in tune? Sort of? I actually didn’t think this was possible, and maybe my caveats there have you think “Sounds like it still isn’t.” But it’s _very_ close to in tune, at least across a few octaves; maybe someone can really nail it down.

If you’re not familiar with Karplus-Strong synthesis, it is a type of percussive/string synthesis that employs delay lines (really comb filters) as oscillators. A noise impulse (or sometimes other source; I tried a sawtooth, but the noise worked better for me) is used to excite the delay line, which is fed back into itself, with a low-pass filter used to shape the sound.

The results are quite wide-ranging, from tuned drums and idiophones to pianos and plucked strings to… alien textures that aren’t really produced by any real-world instrument.

For me, the real joy of this synth is using it with an external sequencer or arpeggiator (I know a lot of you are rocking Keysteps). The synth employs a RoundRobin MIDI input (set to channel 1 by default), so that, with three voices, notes can ring out over one another as the arpeggiator cycles through the voices.

The output is stereo (via a stereo spread).


Front page:

The control set overlaps in quite a few places, and I tried to give controls names that were evocative rather than necessarily descriptive of the module being affected.

The top row controls (oranges and yellows) the “exciter,” with “Metallicity” controlling the envelope that generates the noise impulse. More metallicity means a longer envelope, allowing more noise into the circuit, producing a more metallic sound. “Firmness” controls the frequency of an aliaser that follows the noise module; at low levels, the impulse will be more “rubbery” and at high levels, brighter and “snappier.” “Tautness” controls the resonance of low-pass filters that follow the aliaser; as the resonance increases, the sound becomes more … taut. (These names are hard to come up with.)

The middle row and bottom left corner are all controls for the delay line. “Decay” controls the feedback amount; in some settings this can lead to runaway amplitude rise, but in most it’s fine. “Timbre” controls the cutoff frequency of the low-pass filter in the feedback loop; higher settings will be more harmonic and string-like, lower settings more percussive and drum-like. “Sharpness” controls the resonance of the filter, with low settings producing a duller sound and high settings a sharper, more pointed sound. “Buzz” is a noise modulation on the delay line; it can introduce noise, obvious, but at low levels, it can also warm up the sound somewhat.

“Stereo spread” controls the amount of stereo spread at the output (pro-tip: throw a slow moving LFO on this).

Aftertouch — is routed to decay (see above)

Velocity — is routed to an internal low-pass filter that follows the noise source; the effect of this is to have the sound grow brighter as more velocity is expended; the velocity can also be bypassed

Mod wheel — is routed to timbre (see above)

Pitch bend — the range is defined on the front page

  • Platform:
  • Category: Synthesizer
  • Revision: 1.0
  • License: Creative Commons Attribution Share Alike 4.0
  • Views: 254
  • Modified: 3 weeks ago
Chat about this patch on Discord! Download (89)
Appreciate 1

Leave a Reply