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!


Attachments:
1537369901117_ChannelRotation.bmtp

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).


Attachments:
1538043027591_ChannelRotationDigitakt.bmtp

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: bome@sniz.biz

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: bome@sniz.biz


Attachments:
1605915738844_Rotate-MIDI-Channels-2020-11-20.bmtp