Three Shepards

An infinitely recurring barberpole MIDI synth with 3-voice polyphony.

No, this is not a typo of ‘shepherd’, but it’s another MIDI-controlled synth with a twist: the voices are Shepards tones (aka Barberpole tones) which means they can appear to be infinitely rising or falling as the pitch increases or decreases.
Unlike a regular rising/falling shepards tone this is a keyboard-controlled synth, so tones are recurring at every octave interval (so any C will sound the same, no matter which octave you’re playing it) and playing a simple scale will appear to go on infinitely… Pretty cool, right?

There’s only 3-voice polyphony, but that’s plenty since every octave sounds the same, plus you do get velocity sensitivity. The voices are built from sine oscillators multiplied with themselves (via an Audio Multiplier) that can be PWM’d via the Mod Wheel to create wavefolder-like overtones (a cool trick I discovered recently). This offers some electric piano-like sounds, and for extra flavour I added some random modulation that can either be slow and fluid, or as it gets faster it also gets more jagged.

It’s a fun little experimental synth and the barberpole effect isn’t always that noticeable but particularly when playing simple scales or up/down arpeggios the effect can be quite intriguing!

=====

[OVERVIEW]
-Input/Output: Stereo input (goes only through the reverb), Stereo out
-CPU load: Around 100%
-Build: Initial version built on ZEBU with firmware 2.80
-MIDI: All MIDI related modules (in PEACH colour) are on the 3rd page marked MIDI. I use channel 10 and if controls are set to CC’s I use CC 21/36 (see CONTROLS section for details).
-CV Inputs: Unused.
-CV Inputs: Unused.

[REVISIONS]
1.0: Initial patch.

[CONTROLS]
All the main controls are on PAGE0 and are labeled and starred (see below for a “Picture Manual” in the comments). The Stereo Output module with gain parameter is on PAGE1.

TONE (sets the timbre of the oscillators)
REVERB (sets the decay and mix of the reverb)
TUNING (sets the oscillator tuning; this is an important one! It’ll always stay within one octave, so this allows you to tune an octave up/down for different tones!)
PITCH MOD (amount of random pitch modulation)
MOD RATE (rate of smooth random modulation; from seasick slow to jittery fast)
TONE MOD (amount of random tone modulation)
ATTACK/SUSTAIN/RELEASE (speaks for itself)

ZOIA LEFT / MID / RIGHT stomp = Unused.
ZEBU LEFT / RIGHT buttons = Unused.

=====

[PATCH STRUCTURE]
Unlike most simple MIDI synth patches this one needed some special treatment for the Pitch input and for the barberpole effect of the voices.

For the pitch, I had to make sure every note falls within a single octave.
So, I’m using a bunch of comparators for this, each one set to detect the next octave (0.1, 0.2, 0.3, etc), and each one subtracts exactly 1 octave (0.1) from the incoming pitch. We end up with a pitch that’s always within a single octave.

Now, because this is quite a big construction (8 comparators, invertor, some switches, etc) I’m saving some CPU by reusing it for every voice; I’m simply sending the resulting pitch to three S&H modules (one for each voice) and I only trigger one of the S&H modules (the one corresponding with the ‘activated’ voice). There’s a short delay because of all this, but it’s not noticeable when playing.

For the barberpole tones I needed 2 oscillators per voice; to achieve the effect, one oscillator is tuned an octave above the other, but the relative level of the higher one is decreased as pitch increases, while the level of the lower octave one increases as the pitch increases. There is a ‘crossover-point’ at note nr 11 (I think it’s at G#?) where the level of one oscillator is 0% and the other is 100%, and then the next note above that gets ‘capped’ by the comparators so we’re back to the first note of our octave.

For the timbre control, each oscillator needs its own Audio Multiplier, so for 3-voice polyphony we need no less then 6 oscillators, 6 audio multipliers, and 6 VCAs.

We could do a similar patch with a simple subtractive synth (oscillators + filter), but even then, you’d probably still need 2 filters per voice if you want it to track the keyboard (else you’ll hear a jump in filter frequency at the crossover-point). I did also try this with a Karplus-Strong voice (my reasoning being that KS synths are notoriously tricky to get tuned over bigger ranges and here you’d need only 11 notes tuned!) but this sounded horrible because within our single octave range it’s not possible to get them tuned a perfect octave apart. Pinged bandpass filters (aka Modal synthesis) worked better but were actually quite boring. So, this weird PWM + Audio Multiply trick actually works really well for this particular application; you get some nice harmonic content without excessive CPU costs.

=====

[TIPS/TRICKS]
>>> Try sweeping you’re hand up/down across all white (or all black) keys! This goofy Elton John-esque trope actually sounds really lovely with this patch.
>>> Try arpeggios (I love my Keystep37 for this) or other simple melodies going up/down, don’t skip too many notes at once for optimum barberpole effect!

[THOUGHTS/IDEAS/PLANS]
This patch was a lot of work to get working, and I think it turned out very unique and quite fun, but I have no plans to expand upon any barberpole synths. If anything, I’d probably like to apply this principle to other effects like phasers or flangers.

If there’s any bugs/questions/remarks/requests or suggestions for improvement, please let me know!
Enjoy!

(Image: Witchoria)

One comments on “Three Shepards
  • Leave a Reply

      1576 PM
    • Platform:
    • Category: Sound Synthesizer
    • Revision: 1.0
    • License: Do What The F*ck You Want To Public License
    • Modified: 1 year ago
    • Views: 1092
      Likes: 6
      Downloads: 473
    Download
    Chat