Some subtleties in glide / portamento

I want to write this down so it’s findable on the internet, in case someone else later has the same questions as me.

  1. Sometimes you want glide between distant notes to take longer (“constant rate”), sometimes you want to always take the same time (“constant time”). There are modules that have both options, e.g. TwinGlider.

  2. When you release all notes, then press a note, you want to jump directly to it, not glide from the last pressed note. So the glide module needs to have not only v/oct, but also a gate input. It should glide only when gate is 1, otherwise jump. TwinGlider has that too.

  3. If your patch has long release, then releasing in the middle of a slow glide can have a surprising effect: it audibly jumps to the target note, because the gate is now 0. To fix that, don’t wire your MIDI gate to the glide gate directly! Instead, wire a signal that’s almost always 1, and becomes 0 only for a short instant when you go from “no note pressed” to “some note pressed”. I’m not sure if there’s already a module for this, but it’s easy to make yourself: logical OR(delay(gate),NOT(gate)). This way, when you release all notes, any ongoing glide will “run to completion in the background”, but pressing any new note will cancel it and jump directly to the note.

1 Like