Kimotei wrote:Can you output a range of notes on a midikeyboard to one note?
I need to have splits that each output only 1 note. Eksample: octacve 1 outputs c3 on all keys, octave 2 outputs C#3 on all keys.
Its my first post, jiiha!
Hi Kimotei, welcome to the forum.
The easiest way of doing this without creating a large number of translators would be to use some simple math on the incoming MIDI keys...
First you should create an incoming translator that captures the MIDI note signals coming in on your keyboard channel. MIDI keyboard note actions are defined as hex value '00' (C-2 note) through hex value '7F' (G8 note). Bome's MT can associate these incoming notes as a translator variable by altering the incoming MIDI message trigger string to include local variables instead of hard-coded note values.
This MIDI trigger string will accept all incoming MIDI messages on MIDI channel #1. This can be changed by altering the second digit of the first hex number (91 is channel #2, 9C is channel 13, etc). The 'oo' variable will then be assigned to whichever key you are pressing on your keyboard. The 'pp' variable will be assigned to the velocity of the key you are pressing.
Once you have the proper data captured, you'll need to create some processing rules for the 'oo' variable to tell it to only output 1 note per octave.
The most simple way of doing this is to divide the incoming note number by 12 (# notes per octave).
What this will do is create 10 different 'zones' for your keyboard, each that only outputs a single note. The C-2 zone outputs note C-2, the C-1 zone outputs note C#-2, the C5 zone outputs note G-2, etc.
Now that you have all your keyboard octaves 'zoned' you can alter the note that they output by including 'IF' statements in your processing rules. For your example, you would like to output C3 on your first zone, and C#3 on your second zone. Because the rules in a translator are processed sequentially, we can just stick some IF THEN statements right after our initial modifier.
Once we're all said and done, we need to alter the outgoing MIDI message to reflect our altered values.
So we put it all together...
Code: Select all
Translator 1: Keyboard Zones
Options: stop=false
Incoming: MIDI 90 oo pp
Rules:
qq=oo/12
if qq==0 then rr=60
if qq==1 then rr=61
if qq==2 then rr=62
...
Outgoing: MIDI 90 rr pp
You should be able to just copy verbatim the translator code I posted above, but altering the incoming and outgoing '90' to reflect the proper keyboard MIDI channel. Also, you can alter the outgoing notes (60=C3, etc) to your liking...
Hope this helps!
Joe