[sdiy] polyphonic glide behavior
Brian Willoughby
brianw at audiobanshee.com
Tue Jan 12 08:44:08 CET 2021
Hi Chris,
Fun question (and practical, too, of course).
I've never implemented chord glide, but I've done enough synth firmware design to have some thoughts.
The first thing that occurs to me is that chords never arrive as simultaneous notes. If received via MIDI, they certainly arrive only one note at a time. But even for local mode, the keys are scanned in groups, and thus a chord might span more than one group and then have some time separating the notes.
Then there are questions like: What if the player follows a three-note chord with a four-note chord? What if they follow a four-note chord with a three-note chord? You can't predict the future. Due to the paragraph above, what looks like a three-note chord might turn into a four-note chord a short millisecond later.
Yet another consideration is what to do when you have more voices than notes in the chord, especially if you're using round-robin voice allocation rather than voice number priority. You might want to think about whether it's better to stick to the previous voice if you're going to glide, rather than setting a new voice to the same old note (potentially tuned slightly differently) right before gliding to a new note.
My inclination would be to design an algorithm that can operate independently for each new note, in a way that the final chord sounds like it's gliding up from the previous chord regardless of the number of notes in the chord (easier said than done, of course).
If a note from a previous chord has been released, then allocate from the same voice and glide just like a monosynth. This should work fine unless the new chord has more notes. I'm not sure whether you need to make the 4th note glide when a 4-note chord follows a 3-note chord.
You can probably tell that I haven't used this mode on many synths. I'm way more familiar with mono synths, where you can turn glide off completely, have it on all the time, or switch into a third mode where legato playing triggers glide but staccato playing jumps immediately to the new note.
What I don't know it whether keyboards with chord glide have this auto-switch based on legato playing. Is it ever possible to overlap two chords and get a glide by play a new chord immediately before releasing the old chord? That seems like a *very* challenging algorithm to design and implement.
I only recall those synths (Poly-61?) where you release a chord, play a new one, and the synth glides between - I remember trying to hear which notes were doing what, but without a fast and accurate spectrum analyzer I doubt I could figure it out.
Brian Willoughby
On Jan 11, 2021, at 13:44, Chris McDowell wrote:
> what are your opinions on the "correct" polyphonic glide behavior? I have a simple polyphonic FM synth running on an stm32. I've been discussing with my brother about the "right" way to glide, none of which seem entirely right.
>
> The two cases explored so far, with 10 voices, voices assigned in round-robin fashion:
>
> 1: Glide from last note the voice played
>
> this is the most "glidey" and the least behaved-sounding.
>
> 2: glide from the closest previous note out of the voices
>
> this sounds quite behaved, but whether the note will glide, or wont, feels random. a note is quite likely to not-glide, at least with my playing style.
>
>
> The next proposed case, which I have not implemented, would be to store the last chord played (all the notes played the last time > 0 keys were pressed) and glide from the closest note in that list.
>
>
> I'm nearing done thinking about this, hehe, but figured this list would be a great place to ask for opinions / experience.
>
> Cheers,
> Chris
More information about the Synth-diy
mailing list