CC to inc/dec program changes translator

Nanoboss

2016-01-20 12:25:16

Hi, I downloaded Bome Midi Translator Pro demo thinking to buy it and before I wanted to study it and check how it cover my not so complicated MIDI convert/mapping needs. One of them is the reason of this first post, I want to know how to make a translator for convert incoming CC message into inc/dec (up/down) outcoming program changes for my guitar proccessors. In this case I think of two switches in Korg Nanokontrol as CC sender and my Boss GP-10 (guitar processor) as PrgChg receptor, which go from 01 to 99 presets.

The idea is to mimic both hardware < > buttons used for presets inc/dec scroll or rotatory knob in my GP-10, using NanoKontrol MIDI button, midi pedals or any other MIDI control surface.

Thanks in advance and congratulation by such an amazing useful piece of software!

Nanoboss

2016-01-21 09:18:15

UPDATE : Ignore this code and read next please


I did it! my first preset, I use trial version, after reading some post related to my question I tried making a test preset with 13 translators. It did work and I could send incremental program changes from 01 to 12 in an continuous cycle from a midi button in Nanokontrol to my Boss GP-10. But I'm stuck and don't know how to make the reverse process using another button from the MIDI controller in order to get decremental PrgChgs.
I want to get incremental-decremental program changes from 01 to 99 in an random way, I mean for example, to went incrementally until patch no. 25 and backward to 24 then up again one to one to 45 with each button press, in the same way as is done in a processor hardware dec/inc two buttons "< >" or rotatory knob in my GP-10.
This is the code I wrote, please let me know if there is a more simplified way to accomplish the same thing.

Code: Select all


Translator 1: Out 1 if ga=0
INCOMING: MIDI <midi message for the MIDI button>
RULES:
if ga!=0 then exit rules, skip Outgoing Action
OUTGOING: C0 00

Translator 2: Out 2 if ga=1
INCOMING: MIDI <midi message for the MIDI button>
RULES:
if ga!=1 then exit rules, skip Outgoing Action
OUTGOING: C0 01

[...]

Translator 13: Increment control counter
INCOMING: MIDI <midi message for the MIDI button>
RULES:
ga=ga+1
if ga>=12 then ga=0

OUTGOING: <none>



Nanoboss

2016-01-23 12:46:24

Well, accepting myself as an newbie in BMT slightly reduced my 'being ridiculous' sense, mainly after the absurd previous codes I "create". Now, after a little understanding of maths and logical behind rules, I could solve my first request with only 3 translators. I used two momentary nanokontrol buttons for transmit up and down the 0 to 99 program changes in my Boss GP-10, and for the continuous cycle inc/dec I assing a rotatory pot set with nanokontrol editor within a range of 00-99 in order to avoid the pot round waste from 100 to 127 of unused range. The nice thing is both buttons takes the last position and value from the rotary knob

Code: Select all

PRESET: PROGRAM CHANGE SET FOR BOSS GP-10

Translator 1 Prg chg UP  (INCREMENT of 1 with each button press) 00-99
INCOMING: MIDI B0 18 7F
ga=1-ga
ga=2-ga
OUT MIDI C0 ga

Translator 2 Prg chg DOWN (DECREMENT of 1 with each button press) 99-00
INCOMING: MIDI B0 22 7F
ga=2-ga
ga=1-ga
OUT MIDI C0 ga

Translator 3 rotatory pot  (inc/rigth - dec/left) 00-99, 99-00
B0 0F ga
NO RULES
C0 ga



Now remain two doubst: 1- what type of rule should be used to limit a range of velocities of a pot (for example 00~99) whose range of 00-127 is fixed and can not be changed. 2- what kind of rule is required for give a maximum of 99 increments in Translator 1? (I realized pressing the button beyond 99, you have to press down again to resume prg.chg 99) hope my question make sense and be well explained.

I admit, BMT learning curve is not easy, but I'm loving this program, even as a demo/off every 20 minutes.
Any help welcome ...please.

Nanoboss

2016-01-23 13:18:09

2- what kind of rule is required for give a maximum of 99 increments in Translator 1? (I realized pressing the button beyond 99, you have to press down again to resume prg.chg 99) hope my question make sense and be well explained.
Solved! with the help of Tips For Better Translating #2 – Golden Rules.
The Count Rule did the work:

Code: Select all


PRESET: PROGRAM CHANGE SET FOR BOSS GP-10

Translator 1 Prg chg UP  (INCREMENT of 1 with each button press) 00-99
INCOMING: MIDI B0 18 7F
ga=1-ga
ga=2-ga
if ga>99 then ga=0
OUT MIDI C0 ga

Translator 2 Prg chg DOWN (DECREMENT of 1 with each button press) 99-00
INCOMING: MIDI B0 22 7F
ga=2-ga
ga=1-ga
if ga<0 then ga=99
OUT MIDI C0 ga

Translator 3 rotatory pot  (inc/rigth - dec/left) 00-99, 99-00
B0 0F ga
NO RULES
C0 ga







florian

2016-01-28 12:06:57

great! Thanks for sharing your solution, too.
Florian