Channel Rotation

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!


The ChannelRotation preset is used in LoopOp’s tutorial 16 Advanced Elektron Dikitakt Ideas for making it a polyphonic synth. For that to work, please use the project file attached to this answer.
It also filters out CC#120, which can crash the Digitakt otherwise (pressing Stop button twice).


Hello Florian !

Thank you a lot for sharing this, it’s funny that you worked on an elektron digitakt version because I’m interested in Bome for it’s grand mother : The Elektron Machinedrum uwmk2.

The midi implementation is pretty different on the Machinedrum, notes cannot be chromatically played (without Bome :)) and channels are separated in 4 part.

I resolved the how to play chromatically certain machines, preparing note per note, gate per gate, but now I would like to be able to play in a polyphonic rotation…

I would like to have like : 8 rotation tracks, so 4 on chan 3 and 4 on Chan 4, each one responding to it’s own note and to the rotating CC accordingly.

I hope you can help me.

Maybe you have a solution for that ?


Thank you a lot.


Hi, first of all thanks for your great job!! It is so very helpful! I can t understand How to make the rotation only in the 4 to 8 channels, i know how to reduce the global poliphony number but i can t day what channels Have to be used. Any help? Thank you all again!!

Hi, if you can be more specific on incoming notes and required outgoing actions, I can probably help. Right now, I’m not sure if the incoming notes are coming in on same channel or different channels and the rotation you would like for outgoing actions.

Hi, all the notes come from channel 1, and i want to spread them from 4 to 8 and then rotate. Maybe i Have found the answer. When the variabile ga reaches the gp it has to be = 4,right?

Hi, yes, you will need to increment the channel number each time a note comes in and send the new note to the new channel. When the channel reaches the highest number you reset the channel number back to the lowest.

You will also need to capture the last note-on number so that you can turn off the old note when playing the new note or you will get stuck notes.

Steve Caldwell
Bome Customer Care

Also available for paid consulting services:

The attached is probably pretty close to what you want as it will also send last note off when you send a new note.


Steve Caldwell
Bome Customer Care

Also available for paid consulting services:


Hello Steve,

I’m trying to use this translator Project for rotating channels on the Syntakt.
Note on works fine. but the note off messages do not work properly as soon, as I hold multiple notes together. (I think the channel rotates on and the note off messages when I release some keys will be on different channels. It’s hard to describe for me.

Is there a way to fix this?

Thank you very much


I believe the current implementation tracks which notes are pressed and changes channels as they are released so that if you hold more than one note down at a given time, it might be confusing as to which channel to release the note. In other words, it is currently set up for incoming monophonic only.

I believe it might be able to be done, however would be more complex to set up and likely beyond the scope of support here. You would need a way to evaluate which channel each note was sent on to ensure when you release the note, it gets sent to the right MIDI channel. I believe right now it is just set up to send note-off to the last channel a note was played.

Steve Caldwell
Bome Customer Care

Also available for paid consulting services:

I’ve done some informal testing of this project with a Digitone (four channels) and it seemed to work fine with four-note chords.

Could I use this project to play an Elektron Syntakt polyphonically similar to these videos?
How to play the Elektron Syntakt as a Polyphonic Synthesizer using Max for Live
Elektron Syntakt: How to play it polyphonically?

You should be able to. Just set your Digitone so that each voice receives on a different MIDI channel (1-4). Set the variable gp to 4 since you want 4 channel polyphony.

Steve Caldwell
Bome Customer Care

Also available for paid consulting services: