Here is a solution for implementing a channel rotation scheme. For example, it is useful if you have a multi-channel monophonic synthesizer which you want to play polyphonic. So the solution is similar to how MPE devices spread messages on different channels to achieve per note control.
However, here, Program Change, CC, and pitch bend messages are sent on/duplicated to all channels.
What it does: Every note that is coming in (on channel 1) will be sent out on a rotating channel. So the first Note On is passed on to Channel 1, the second Note On is sent on Channel 2, and so on.
Note Off messages are matched to the respective channel. For that, each playing note is remembered on which channel it is playing.
It works for up to 16 channels. You can set the maximum channels/polyphony in the variable gp (for global polyphony) in the Init translator in the Init preset. The default here is 8 channels.
If you exceed the given polyphony, note stealing is implemented by sending Note Off to the oldest note still playing.
CC's, pitch bend, and program change messages are duplicated to all outgoing channels.
For general setup, please see the tutorial Set up Bome MIDI Translator Pro as a MIDI filter.
This project file can be used on the BomeBox, too! For assistance how to set it up, see the tutorial Create MIDI Translator Mapping for the BomeBox.
Feel free to comment here, thanks!