I would like to know if is it possible to write a translator rule that transform all the midi signals received by a controller to a specific midi channel, regardless of the type of midi signal or on which channel is received.
For example all the note on/off and cc messages on channels [1-16] remapped to midi channel 10. Then I want to receive the transformed midi signals in Ableton.
Yes this can be done easily with raw MIDI. Any MIDI message that has channel information will either be 2 bytes or 3 bytes long.
We an assign these bytes to local variables and then manipulate them for output.
In this example we take the first byte which is the status byte (that contains channel information) and convert the lower nibble to 9 (MIDI CH 10) and then send it out.
Here are the rules.
// get current channel into rr
rr=rr&15
Log "Log Incoming MIDI CHANNEL = %rr%"
// mask command
rr=oo&240
Log "Log Command = 0x%02x rr%"
// make MIDI CH 10
oo=rr|9
Log "Log Sending on MIDI CH 10"
So I have 1 translator for three bytes (which handles CC, pitch bend, and note messages, after touch), Then the 2nd translator that handles program changesl
You would need something that provides accurate time stamps and then send the message with at timestamp and look at the the timestamp when it comes back to you. (round trip delay). I’ve done this in the past with Bome MIDI Translator Pro but the timestamps have 1 msec accuracy and unless there is network latency (f sending and receiving from a remotely connected host) , I’ve seldom if ever seen an delta (less that 1 msec).
For more accuracy you would need timing clock with sub millisecond measurements).
Steve Caldwell
Bome Customer Care
Also available for paid consulting services: bome@sniz.biz