[sdiy] MonoSynth Note Priority over MIDI

rsdio at audiobanshee.com rsdio at audiobanshee.com
Wed Apr 15 23:05:22 CEST 2015


Originally, keyboards were hard-wired so that only one note could be output. If they were wired for high note priority, then it didn't matter what order the keys came in, because as soon as you released the highest note, the next-highest note would immediately be output. WIth only a single CV and OSC, this was all you needed.

If I'm totally wrong about that, then please correct me. That was an era before I could afford to buy synths, but I sure tested a lot of them in music stores. I'm sure there are variations on the electronics that don't fit my description above.

After Dave Smith invented the scanned matrix keyboard that could sense individual keys separately and simultaneously, the processor had to emulate such behavior as the older priority wiring. The good news is that this allowed all kinds of variations on high-note, low-note, last-note priority, along with complex splits where different priority rules could be set for each zone (see Matrix-12).

If I were writing the firmware for this, I would separate the keyboard reading from the note stack. The keyboard routine would maintain a bit mask of all key states, whether they're up or down. Incoming MIDI would update this bit mask. Then, when the highest note is released, the new highest note can be found based on local information. The note stack would only be updated after the highest note is released. I'm assuming the note stack is what's heard.

I guess this gets a little complicated if you want to track velocity - something that the original high-note priority keyboards probably did not do. You could still save the velocity for incoming (lower) notes and reuse that if they eventually become the highest note. However, I'd think that the release velocity of the highest note should control the "velocity" if you're playing legato.

By the way, the eVolver has a bug in its last-note priority algorithm. It doesn't save old notes, so if you bump a key then it will become the last note but only sound briefly and return to silence. It's like there's no memory that you're still holding a key down. Perhaps eVolver firmware updates have addressed this issue.

I think most MIDI synths implement last-note priority by default. It would actually be rather difficult to handle last-note priority because your queue could 128 notes deep! But high-note (or low-note) priority is very useful for vintage mono synth playing where you have a long glide setting, hold a low key, and then cycle up and down an octave (or more) by playing a higher note. Very Keith Emerson. In my opinion, you have to be able to support that kind of MIDI input (which the eVolver does not, or did not when I tested). High-note priority really only requires 16 bytes to remember the state of all keys.

Brian Willoughby


On Apr 15, 2015, at 12:05 PM, MTG <grant at musictechnologiesgroup.com> wrote:
> so if you're are doing high note proirity, for instance, and a note comes in that's not higher than the one playing, but higher than other values in the stack, do you insert it or ignore it?  Again I don't a proper MIDI monosynth so I don't know what is customary.
> 
> GB
> 



More information about the Synth-diy mailing list