This JSFX iterates incoming MIDI notes through different channels which is customizable. It ignores the channel of the incoming notes, and maps the note channels to different output channels by iterating or rotating them around in the given range.
All other MIDI events (i.e that are not notes) are passed through, including the channels they have, unaffected. For notes, it does a sort of "round robin" of the channels, so the first note is sent to Channel 1, second to Channel 2, and so on until no more channels are available. The max amount of channels available is defined by the user via the only parameter it has, which is specific to each instance. Keep in mind that it has some logic to avoid re-using a channel that is already active (i.e it still has a note playing), so in most cases it will prefer channels that have been inactive for the longest first. This helps with tails in some synths by prioritizing channels which have been dormant for the longest time over others. Please remember that this is not always possible! If you set the number of channnels too low and happen to play more notes simultaneously than the available channels, it cannot satisfy your request so the same channel will be re-used (and might cause some bugs). In most cases, though, it should still work even if you do that, but I recommend not to.
You can use it, for example, to play polyphony with monophonic synths, by duplicating the synth and routing each channel to a different instance of the synth.
More information on my site:
https://sites.google.com/site/octaro...annel-iterator
Download from Reaper Stash:
https://stash.reaper.fm/v/27475/Channel%20Iterator.zip
Hope you find it useful.