notes

Kimotei

2008-03-31 20:17:19

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! :D

joesapo

2008-03-31 21:38:53

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! :D
Hi Kimotei, welcome to the forum. :D

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.

Code: Select all

Incoming: MIDI 90 oo pp 
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).

Code: Select all

qq=oo/12
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.

Code: Select all

if qq==0 then rr=60
Once we're all said and done, we need to alter the outgoing MIDI message to reflect our altered values.

Code: Select all

Outgoing: MIDI 90 rr pp
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

Kimotei

2008-03-31 23:57:57

Cool! Many thanks, I will try it out rigth now/tonight! :D

One thing though, do I need pro or can I use clasic?


more detail of what I want to do:


range C-2 to B-1 output only C-2
range F#0 to B1 output only C1
range F#2 to B3 output only C3
range F#4 to B5 output only C5
range F#6 to B7 output only C7


The purpose for this is to make splits for Ableton Live.
On my midi keyboard I can have layers of midi channels, but they all output to the same tuning. On midi CH 1 I want this above configutarion. On midi CH 2 I just want to output normal notes. CH1 will select a spesific vst in ableton. CH 2 will trigger coresponding vsti midi sequences (clips) in Live.
I need these notes on CH1 to output only once, and not change a thing until one of the others are triggered! This way youll get splits of synths on the keyboard, but more importantly all the pots on the midi keyboard will change to the synth you are playing with.

Some notes on CH1 I want to output normaly, ie not be affected.

joesapo

2008-04-01 01:47:10

Kimotei wrote:Cool! Many thanks, I will try it out rigth now/tonight! :D

One thing though, do I need pro or can I use clasic?


more detail of what I want to do:


range C-2 to B-1 output only C-2
range F#0 to B1 output only C1
range F#2 to B3 output only C3
range F#4 to B5 output only C5
range F#6 to B7 output only C7


The purpose for this is to make splits for Ableton Live.
On my midi keyboard I can have layers of midi channels, but they all output to the same tuning. On midi CH 1 I want this above configutarion. On midi CH 2 I just want to output normal notes. CH1 will select a spesific vst in ableton. CH 2 will trigger coresponding vsti midi sequences (clips) in Live.
I need these notes on CH1 to output only once, and not change a thing until one of the others are triggered! This way youll get splits of synths on the keyboard, but more importantly all the pots on the midi keyboard will change to the synth you are playing with.

Some notes on CH1 I want to output normaly, ie not be affected.
To answer your first question; Yes you could use classic, but you'd need to have a translator defined for every single note on your keyboard... :?

While it's possible, it definitely isn't preferable. I would highly recommend getting started in Pro, as you'll sooner or later think of something else to do that MT Classic won't be able to touch.

In order to define specific keyboard ranges like that, you'll need to more closely follow the example Florian gave on the other topic you were posting at...

I've taken the liberty of creating a Pro template with the criteria you provided. Let me know how it works out!

Code: Select all

Translator 1: C-2 - B-1
Options: stop=false
Incoming: MIDI 90 oo pp 
Rules: 
  if oo>23 then exit rules, skip Outgoing Action
Outgoing: MIDI 90 00 pp 

Translator 2: F#0 - B1
Options: stop=false
Incoming: MIDI 90 oo pp 
Rules: 
  if oo<30 then exit rules, skip Outgoing Action
  if oo>47 then exit rules, skip Outgoing Action
Outgoing: MIDI 90 24 pp 

Translator 3: F#2 - B3
Options: stop=false
Incoming: MIDI 90 oo pp 
Rules: 
  if oo<54 then exit rules, skip Outgoing Action
  if oo>71 then exit rules, skip Outgoing Action
Outgoing: MIDI 90 3C pp 

Translator 4: F#4 - B5
Options: stop=false
Incoming: MIDI 90 oo pp 
Rules: 
  if oo<78 then exit rules, skip Outgoing Action
  if oo>95 then exit rules, skip Outgoing Action
Outgoing: MIDI 90 54 pp 

Translator 5: F#6 - B7
Options: stop=false
Incoming: MIDI 90 oo pp 
Rules: 
  if oo<102 then exit rules, skip Outgoing Action
  if oo>119 then exit rules, skip Outgoing Action
Outgoing: MIDI 90 6C pp 

Kimotei

2008-04-01 02:01:13

:shock: Your to kind!!

Im purcasing pro right now, will report back as soon as ive tried this!

Bear with me though, im a newbie on this ;-)

Kimotei

2008-04-01 03:48:42

Could you possibly send me the preset?

joesapo

2008-04-01 17:40:00

Kimotei wrote:Could you possibly send me the preset?
Right-click / Save As...
http://sapoav.com/share/tmp/kimotei.bmtp

Kimotei

2008-04-01 17:56:41

joesapo wrote:
Kimotei wrote:Could you possibly send me the preset?
Right-click / Save As...
http://sapoav.com/share/tmp/kimotei.bmtp
Great, thanks again!

Im working throgh the manual.. It seems eazy enough somehow, I just need to grasp the language.. :)

joesapo

2008-04-02 00:21:23

Kimotei wrote:
joesapo wrote:
Kimotei wrote:Could you possibly send me the preset?
Right-click / Save As...
http://sapoav.com/share/tmp/kimotei.bmtp
Great, thanks again!

Im working throgh the manual.. It seems eazy enough somehow, I just need to grasp the language.. :)
Speaking of, if you happen across part of the manual that you think could use some revision, please let me know.

:mrgreen:

Kimotei

2008-04-02 04:33:31

joesapo wrote: Speaking of, if you happen across part of the manual that you think could use some revision, please let me know.

:mrgreen:
I think its set up correctly now with midi yoke outputing to Live.
The preset works! Though theres some minor issues: When I map the notes inside ableton live, the first note in the Translator C-2 - B-1 (C-2) is dead! Though if I dont map those notes in Live, they all output correctly musical notes as set in the translators.


After trying it out I figured out a few things. Those notes that I dindt want to be affected, they also have to be set up in Bome to be usable. Also the configuration turned out to be better with some small ajustments:


Translator: C-2 = C-2
Translator: C#-2 = C#-2
Translator: D-2 = D-2
Translator: D#-2 = D#-2
Translator: E-2 = E-2
Translator: range F#-2 to B-1 output only C-1
Translator: C0 = C0
Translator: C#0 = C#0
Translator: D0 = D0
Translator: D#0 = D#0
Translator: E0 = E0
Translator: range F#0 to B1 output only C1
Translator: C2 = C2
Translator: C#2 = C#2
Translator: D2 = D2
Translator: D#2 = D#2
Translator: E2 = E2
Translator: range F#2 to B3 output only C3
Translator: C4 = C4
Translator: C#4 = C#4
Translator: D4 = D4
Translator: D#4 = D#4
Translator: E4 = E4
Translator: range F#4 to B5 output only C5
Translator: C6 = C6
Translator: C#6 = C#6
Translator: D6 = D6
Translator: D#6 = D#6
Translator: E6 = E6
Translator: range F#6 to B7 output only C7

If I understand it correctly, it has to be like this?


Your preset sent bouth note on and ofs. Each translator should only output note "on" once and not of when triggered again. It will then stay on, and if the same translator is triggered again, nothing will happen. It will stay on, until another Translator is triggered, and so on.


Regarding the manual, id would perhaps be nice to see some kind of charts that shows what all this means: 90 (numbers) or: oo pp qq rr ss tt uu vv, hexadecimals, variables and all that is knid of "greek"* to me until I see proper charts or transelations! :P

*in lack of a better word!!

Kimotei

2008-04-02 07:13:36

Kimotei wrote: Regarding the manual, id would perhaps be nice to see some kind of charts that shows what all this means: 90 (numbers) or: oo pp qq rr ss tt uu vv, hexadecimals, variables and all that is knid of "greek"* to me until I see proper charts or transelations!
Scrap that, its all in there hehe. ;-)

(This a.d.d. thingy can make me use a whole day to finish each page of a manual sometimes! What can I say im I slow learner, but ill get there eventualy!!!)

Tuur

2008-04-02 12:27:56

Kimotei wrote:Those notes that I dindt want to be affected, they also have to be set up in Bome to be usable.
Maybe I'm missing something, but isn't this why there is a 'MIDI Thru' setting under options? :)