Micro Scale - Midihub Documentation

A very simple modification, taking advantage of the existence of octaves in microtonal temperaments, might greatly increase polyphony in a frequent case. Let a new note on event takes the “least recently” used channel, instead of “subsequent”. If only this changed, the algorithm would practically be identical to what is there now. But let us add another modification: the priority over “least recently” would belong to a channel where already plays any note distant by an integer number of octaves from the new note (in a more general case, one whose frequency is 2^i of that of the new note, i being an integer value). This would allow to play the new note without the pitch bend event, and thus would not disturb the previous note. Instead, a multiply of 12 tones would be added/removed. Now, for example only 4 channels would be enough to play chords like Cmaj7 consisting of, say, 6 or 10 notes up to the device’s full polyphony. Another example: a melody limited to 8-note scale like C major might use full device polyphony with only 8 channels available, etc. As a side effect, this approach would also naturally simulate the subsequent note on of the same note behaviour, as specified in the MIDI protocol.

The increased polyphony would work for any temperament where an octave exists, like the 15-tone or the 24-tone temperaments.

Edit: I described possible implementation details and further optimisations for temperaments like 24-tone at Increase microtonal polyphony.

2 Likes