|Type / Tags||MIDI ProcessorJSFX|
ReaJS 2.36+ (free from ReaPlugs) / REAPER 5+
The system requirements for either one those products will have to be fulfilled to be able to load this script in them.
Channel Iterator is a simple MIDI-only JSFX script that 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. The method used is the same as Key Tuner's channel rotation.
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 of the script. 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.
There is only one parameter, called Channels, which simply defines the maximum amount of channels it has available. For example, if you can only handle 4 channels output after it (it's how you set up the routing and so on), then set it to 4, pretty simple.
For an example and the download visit its dedicated page here.