Rule for MSB / LSB / PC Remapping (MSB->LSB vs. LSB->M

thoettli

2009-08-23 21:32:10

I want to create generally usable remapping presets for Bank select / Patch changes. Unfortunately there is no fixed rule for an order of MSB/LSB, some sequencers sends first MSB than LSB others vice versa, that means for example sometimes
B0 00 00 B0 20 00
other times
B0 20 00 B0 00 00
For processing MIDI data on MIDI-Player this is normally not a problem - but for defining MIDI Translator I see currently only the way to define two mapping records, one for MSB/LSB, one for LSB/MSB sequence to get the map independent of a specific sender. So I would ask if someone has already found a better way by defining a flexible rule which allows to handle the mapping within only one mapping record independently of the MSB/LSB or LSB/MSB order.
Thanks, Thomas

ruediger

2009-08-25 10:06:07

Hi Thomas,

you can solve this with Rules and Variables. For example:

Code: Select all

Translator 1: New Translator
Options: stop=false
Incoming: MIDI B0 pp 00 B0 qq 00 
Rules: 
  if pp==32 then Goto "MSB"
  if pp==0 then Goto "LSB"
  Label "MSB"
  pp=0
  qq=32
  exit rules, execute Outgoing Action
  Label "LSB"
  exit rules, execute Outgoing Action
Outgoing: MIDI B0 pp 00 B0 qq 00 

This "code" changes the Midi Output always to:

B0 00 00 B0 20 00

Hope that helps!
Rüdi

joesapo

2009-08-25 22:26:59

ruediger wrote:Hi Thomas,

you can solve this with Rules and Variables. For example:

Code: Select all

Translator 1: New Translator
Options: stop=false
Incoming: MIDI B0 pp 00 B0 qq 00 
Rules: 
  if pp==32 then Goto "MSB"
  if pp==0 then Goto "LSB"
  Label "MSB"
  pp=0
  qq=32
  exit rules, execute Outgoing Action
  Label "LSB"
  exit rules, execute Outgoing Action
Outgoing: MIDI B0 pp 00 B0 qq 00 

This "code" changes the Midi Output always to:

B0 00 00 B0 20 00

Hope that helps!
Rüdi
Good call Rüdi! I was trying to figure that one out, but couldn't come up with anything...

ruediger

2009-08-26 07:48:50

thx :)