re assign all midi data from one channel to an other channel

ral.hopstaken

2018-12-08 10:08:17

Hi there,

Is it possible to re assign all MIDI data from one channel to another. I want to split my 2 keyboards into 1-8  for the first and to 9-16 for the second and then to my Mac . I have over 200 patches on both keyboards that have use the same midi channels and I don't want to program them new again. before I used an Iconnect midi that has the option of using 4 sets of 16 channels but now I like to use the bomebox over network so I can put my Mac of-stage  with a lan cable

Steve-Bome Forum Moderator

2018-12-08 14:53:55

Yes,

The way I would handle this is to create a different preset for each device and assign the a different incoming device for each preset to override the project defaults. If the devices are both using the same channels, you can then use translators to re-assign each device to a different set of outgoing channels under that given preset.

I typically use raw midi for this and although a bit more complex uses less translators. You can set up a 3 byte raw MIDI stream, a 2 byte raw MIDI stream and a 1 byte raw MIDI streams. This will cover everything except for Sysex which usually doesn’t use MIDI channels anyway.

To change just the channel number (first byte of the MIDI stream) it would look something like this (for a 3 byte stream)

Incoming: Raw MIDI oo pp qq

Rules:

// Modify the second nibble of byte 1 (status byte) only

// Mask lower nibble and assign it to local variable rr. This is the incoming MIDI channel

rr=oo&0x0f

// upper to tt – This is either status byte (ie Note-On Note-Off, CC etc)

tt=oo*0xf0

// Manipulate re-assign outgoing channel depending on incoming channel

// Set default outgoing channel if not re-assigned

uu=rr

if rr== 0 then uu=5

if rr==1 then uu= 7

// Reassemble status  byte using bitwise OR function

oo=tt|uu

Outgoing action: oo pp qq

 

You would do something similar for 2 byte stream and 1 byte stream.

Again each preset would have a different incoming port and then the rules within each would be set up to output to a different MIDI channel.

I hope this helps!


 

Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz