This is a companion discussion topic for the original entry at https://blokas.io/midihub/docs/micro-scale/
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.
Is there any plan to support microtuning of more than 127 notes across multiple incoming midi channels? The lumatone (http://lumatone.io) has 280 keys. For larger microtunings (31, 53 EDO etc) multiple channels are needed. This would be a great accessory for using the lumatone with MPE capable hardware synths.
Hey, devices like Lumatone should be outputting the appropriate MIDI messages for microtonal scales on its own, check out its manual, it offers some information on software it can be used with.
Midihub is for adding microtonal capability to MIDI keyboards that otherwise don’t have such functionality built-in.
Does the pitch bend range have to cover the difference in frequency between each midi note and its remapped frequency, or does the Midihub automatically choose the closest MIDI note and pitch bend accordingly? In this case a pitch bend range of 1 would give the highest accuracy, right?
Midihub selects the right note number to use automatically. The lower the Pitch Bend range on your synthesizer, the higher the resolution is available for matching the correct frequency for the micro scale.