ZS-30G — a pitch-tracked adaptation of ZS-40

This patch somewhat adapts the ZS-40 patch so that it can be played by instrument (G for guitar, but it will work with many instruments), rather than MIDI controller; it has up to three notes of “polyphony” (three, overlapping notes can be heard at one time, rather than three notes being played at once, hence 30 as opposed to the four-voiced ZS-40) and a very, very basic arpeggiator. The patch also employs an experimental method for producing envelopes, based on pitch changes (see below).

I started working on a new method of triggering envelopes for pitch-tracked synths, based on changes in pitch, following a discussion I had on the FB group with Jussi Tolvanen, with some helpful insights from Jacob Weinstein. The basic schematic of this is already on the Tips and Tricks page, in the comparator section. The idea is that rather than monitor transients (onset detector) or changes in amplitude (envelope follower), gates — or rather, triggers — would be produced by changes in pitch.

This leads to a type of playing that depends heavily on right-hand muting for best results; as a note rings out or as your finger releases a string, different overtones can become dominant, which will be read as changes in pitch. I think there are ways to correct/improve this behavior (filtering, envelope follower supplementation, etc.), but I was short on CPU, since the ZS-40 patch involves two oscillators per voice and a plate reverb — I already had to cut the pitch modulation the patch has, so this version may not sound as thick as the MIDI-controlled version. I tried a reverb lite, but that plate reverb really plays an important role in the patch, for me.

Because the envelopes are triggered, their dynamics are pre-determined by the envelope controls. This is both a good thing and a bad thing — the outcome is very reliable, but it is not very dynamic.

Additionally, there is a *starred* envelope on the third page which acts as a sort of “stability” control. (The ADSR is red and on the bottom row.) You may want to adjust this — it produces a short envelope, ~500 ms, which keeps the synth from recognizing changes in pitch following a new note; I found this very useful for avoiding those fluctuations due to overtones, but you may find the time too long for your playing style.

Pitch is derived from the left input. The dry signal is not passed to the output (CPU, sorry). The output is stereo, and the voices is very slightly panned C-L-R, just to give a greater sense of breadth.



Left — turns the arpeggiator on and off; the “shape” of the arpeggiation and its speed is determined by the “Arp LFO” in the bottom right corner of the front page. The default shape is a ramp, which will cause the notes to cycle as they have been played. Square will only cause the first and third notes to alternate; sawtooth will cause the notes to cycle in the reverse order that they were played; random… does random; sine is very funky; triangle is a forward/reverse order (but with three notes, this really isn’t all that interesting; ramp is my favorite).

Middle — turns on a very basic arpeggiator option where the arpeggiation is played one octave higher, every other time

The arpeggiator is a relatively cheap add-on, and not very full-featured. But it is fun. The sorts of envelopes that work playing (slow attack) may not be best for arpeggiating (where very fast or no attack envelopes can work better).


Expression is mapped to two destinations, with controls on the front page to determine its depth. To use the expression pedal with just one or the other of the parameters, set the depth of the unused to parameter to 0.

Oscillator 1 “pitchbend” — heel down will feature no change in pitch, toe down will travel to whatever pitch change you have designated (e.g. A1 would be a rise in pitch of one octave). This also controls the filter frequency, raising it to the same frequency as oscillator 1.

Oscillator 2 “pitchbend” — the same as above, except the filter control. This allows you to have the two pitches move to different intervals with a sweep of the expression pedal.

The exp. input is on the last page of oscillators, in the bottom left corner, if you would like to try directing it somewhere else (fun options include Arp LFO rate, filter w/o oscillator correlation, maybe attack or decay if using the arp, etc.)

Front page:

Across the top are the controls for the envelope, which affects both the amp and the filter. The patch uses linear envelopes; the attack and release stages have been attenuated to 15 seconds, while the sustain stage will play at 1 for up to 60 seconds. I thought about using an ADSR (this is actually an AHD, not ASR, envelope), but having to set the sustain time and level separately seemed like too much hassle.

On the second row are the controls for the expression pedal depth (detailed above). There is also a control for “Osc 2 detune” — oscillator 2 can be detuned +/- 1 octave. Small values give that lovely, detuned sawtooth sound, but intervals such as 4ths and 5ths can be achieved, too. (These could also be effected by the expression pedal.)

There is another control called “Transpose.” Rather than transposing the notes currently playing, it will transpose notes as they are detected. You can use this to change the range of your instrument, for instance, if you want lower notes than a guitar can play or higher notes than a bass.

The filter controls are the same as ZS-40. The filter is pitch-tracked to the oscillators, and the envelope can be positively or negatively applied to the cutoff frequency. Resonance control is full range, but for this patch I think sounds best in moderation.

Along the bottom are controls for the reverb, along with the arp LFO — you would change the rate or shape of the arp here.

  • Platform:
  • Category: Effect Synthesizer
  • Revision: 1.0
  • License: Creative Commons Attribution Share Alike 4.0
  • Views: 241
  • Modified: 1 week ago
Chat about this patch on Discord! Download (77)
Appreciate 5

Leave a Reply