[sdiy] polyphonic glide behavior

Mike Bryant mbryant at futurehorizons.com
Mon Jan 11 23:02:42 CET 2021

Firstly have the synth form a guess on where the left hand and right hand split is on the keyboard as you'll want to glide left hand and right hand separately.  The split point can move on each chord - it's not fixed.

Then for both left and right hand separately :
1.  Store the current chord
2. Wait for at least one key in the chord to be released, then assume that all notes in the chord will be released
3. As soon as a new key is pressed start all notes in the current chord gliding in that direction
4. As more keys are pressed order them dynamically and then change the destination frequency of each of the notes in the current chord
5a. If it becomes obvious there are less notes in the second chord then fade out the highest frequency from the first chord.
5b. Alternatively if there are more notes in the second chord then start the highest note in the second chord from scratch

This sounds okay unless the glide is too fast so that some notes start having to change direction to get to their destination.  Of course you can deliberately confuse it but that's true of almost any poly glide algorithm.

Another alternative is to insist the player plays the root note of each chord first, then the synth can make a good guess of what the second chord will be and start gliding all notes towards it.  If it turns out not to be the case just fade out the notes that are wrong.  
(Indeed you can even set it so you don't have to press all the rest of the keys in the second chord if the synth is guessing correctly.  Only problem with this is you can't switch back to playing a single note.)

I assume this is a STM32H750 ?

-----Original Message-----
From: Synth-diy [mailto:synth-diy-bounces at synth-diy.org] On Behalf Of Chris McDowell
Sent: 11 January 2021 21:45
To: synth DIY
Subject: [sdiy] polyphonic glide behavior

howdy list, 

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. 


Synth-diy mailing list
Synth-diy at synth-diy.org
Selling or trading? Use marketplace at synth-diy.org

More information about the Synth-diy mailing list