Noobee needs some Rules Code Help

skinner

2014-03-23 04:07:16

Being a first time user of Midi Translator Pro I am asking for some advice in order to create a series of rules.

1. All of the incoming MIDI messages are Note on and Note off

2. I need to change a range of notes that come in on one channel to be alterated by note number and channel number. For example this is the incoming message 92 00 40 which is Channel 3, Note 00, Velocity 40 on. I need this command to output 90 24 40 which is Channel 1, Note 24 and velocity 00.

3. My experiments with rules have been less than stellar and I would appreciate it if someone could give a straightforward example of a rule to accomplish the above translation.

4. THen to add to the complication, I only need this applied to incoming notes 00 to 3C. After that I need to do a different translation of Notes coming on Channel 3 starting with note 3E onward outputing a command for Channel 6, Note start 24 and velocity 40.

I hate to ask what must seem to be so simplistic, but some examples of code for this would certainly set me off on the right track.

Many thanks

DvlsAdvct

2014-03-23 20:51:58

Hi skinner

No worries on the questions. We are very aware of the learning curve involved in MT's rules. I'll try and walk you through what you need and we will try to get you what you need :)

As far as your first example, you need the outgoing message to go from 92 00 40 to 90 24 40, then 92 01 40 to be 90 25 40, correct? If that's the case then you can have one translator that says:

Code: Select all

Translator 1: Range 1
Incoming Message: 92 pp 40 [i]the pp is a local variable, meaning the translator will trigger whatever the incoming note value is[/i]
Rules: if pp>60 then exit rules, skip outgoing action [i]this is a large source of confusion in MT.  The incoming and outgoing actions are handled in hex, the rules are handled in decimal.  Note 3C in Hex is 60 in decimal.  This rule means the translator will not trigger anything if the note is higher than 60[/i]
pp=pp+36 [i]This rule is a simple addition, meaning that no matter what the note is, as long as it is below 60, it will be 36 higher (so 00 is 36[/i]
Outgoing Action: 90 pp 40
So we don't need to worry about rules for the channel and note type (90 to 92) because there are no variables, and the velocity is always the same in your example. Those are just changed as needed. If you wanted the velocities to be variable, for a velocity sensitive keyboard as an example, you could use a different global variable like qq or rr.

Then we have our second translator.

Code: Select all

Translator 2: Range 2
Incoming Message: 92 pp 40
Rules: if pp<62 then exit rules, skip outgoing action
pp=pp-26
Outgoing Message: 95 pp 40
That make sense?
Jared

skinner

2014-03-24 03:54:58

Jared,

Many thanks for your very helpful response. It was what was needed to get things working.
Amazing the confusions that can arise, ie a command called key strokes intrinsically in music one thinks of keyboard notes and associated MIDI commands, not alpha numeric computer keyboard. !

Very glad to have purchased this program, it really seems to work very effeciently

EM Skinner