Changing MIDI note depending on control change value

Hey there. I’m totally new to MT Pro and need some help.

On my e-drumkit i have a hihat sending note C1 (velocity 1-127)
There is also a hithat controller-pedal sending control changes → CC#4 (1-127)

What i want to do:

Change midi note in correlation of control change.

when control change’s value is between 1- 30 → change note from C1 to D1
when control change’s value is between 31-60 → change note from c1 to E1
when control change value is between 61-90 → change midi note from C1 to E1
when control change value is between 91-127 → change midi note from C1 to F1

Can anyone give me a example of the ‘rules settings’ i have to change to get this done?

Sry for my bad english.
Feel free to answer in german.

Thx Matt

Hi and welcome to the Bome community!

I will answer in English and then use Google Translate to translate to German however I believe this site has a tool that can also translate for you.

See the attached project file. It has two translators.

The first translator sets the value of global variable ‘ga’ based on the incoming CC4 value.

The second translator has rules that evaluate the value and then transpose the outgoing note depending on the value. In this example I’m assuming C1 is note 24 (18 hex). It appears you want 2 different ranges to transpose to E1. My guess is this is not what you intended so you may need to modify the rule accordingly.

The outgoing note number will be dependent on the last known CC value and a velocity of the incoming note.

Here are the rules:

// F1
if ga>90 then qq=pp+5
// E1
if ga<91 then qq=pp+4
// E1
if ga<61 then qq=pp+4
// D1
if ga<31 then qq=pp+2
//C1
if ga<1 then qq=pp

Log "Note Number %qq%"

I use the following aliases in my example.

image

You can learn more about aliases from this tutorial.

Translated --------------

Hallo und willkommen in der Bome-Community!

Ich werde auf Englisch antworten und dann Google Translate verwenden, um ins Deutsche zu übersetzen. Ich glaube jedoch, dass diese Site ein Tool hat, das auch für Sie übersetzen kann.

Siehe die angehängte Projektdatei. Sie hat zwei Übersetzer.

Der erste Übersetzer setzt den Wert der globalen Variable „ga“ basierend auf dem eingehenden CC4-Wert.

Der zweite Übersetzer hat Regeln, die den Wert auswerten und dann die ausgehende Note je nach Wert transponieren. In diesem Beispiel gehe ich davon aus, dass C1 Note 24 (18 Hex) ist. Es scheint, dass Sie 2 verschiedene Bereiche zum Transponieren in E1 möchten. Ich vermute, dass dies nicht das ist, was Sie beabsichtigt haben, also müssen Sie die Regel möglicherweise entsprechend ändern.

Die ausgehende Notennummer hängt vom letzten bekannten CC-Wert und der Geschwindigkeit der eingehenden Note ab.

Hier sind die Regeln:

// F1
if ga>90 then qq=pp+5
// E1
if ga<91 then qq=pp+4
// E1
if ga<61 then qq=pp+4
// D1
if ga<31 then qq=pp+2
//C1
if ga<1 then qq=pp

Log "Note Number %qq%"

Ich verwende in meinem Beispiel die folgenden Aliase.

image

Weitere Informationen zu Aliasen finden Sie in diesem Tutorial.

Transpose-CC4.bmtp (1.5 KB)

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

No need to translate for me. I can understand nearly erverything. But building sentences in english is differnt for me ^^ But i gues you can understand me :wink:

Thank you so much @SteveC :grin::grin::grin:

This works great for me. I already had the idea of setting " modifiers" (in Native 'Instruments skrips, the translators are called modifier). But the list of translators is so long, i thought this was kind of ascii etc.^^

There is one more thing…
I have a trigger(Key) which is sending note G#3.
I want Midi Translator Pro to do following:

when velocity is below 100 → no note is sent
when velocity is above 100 -< note is sent with velocity values 101-127

I tried for 2 hours now but can’t get it done. Would be super nice, if you could help me one more time :slight_smile:

Hi, Translator 0.2 of this modified file will handle it.

We capture the incoming velocity in local variable ‘qq’. If it’s value is less than or equal to 100 then nothing happens otherwise we sent the note with the velocity qq.

if qq<=100 then exit rules, skip outgoing action

Transpose-CC4-a.bmtp (2.0 KB)

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

Thank you again.
Now everything is working fine :slight_smile: