Mapping LEDs midi fighter twister

trabz

2016-11-04 13:21:46

Hey !

I mapped 2 banks more to the 4 already existing on the midi fighter twister firmware. I'm trying to set the LEDs for the banks I created and I can't achieve that yet.

Firmware mapping: each of the 16 encoders will get a different CC depending on which bank is selected. The CCs used in the firware are CC00 to CC63

My mapping: When I click on my new bank and press an encoder : Incoming message is the CC from the previous bank (00 to 63), outgoing is a CC with a number that I assigned (CC64 to CC95). I ticked the swallow option and it is working just fine in terms of Midi message sent.

Regarding the LEDs:
I can't update the LED status on my CCs (64 to 95) probably because they're not "recognized" by the firmware (but setting a LED to a CC 00 to 63 is working just fine)

Any idea how I could bypass that problem??

sjcaldwell

2016-11-04 15:16:45

If I understand correctly

The device is capable of 4 virtual banks and with those virtual banks the firmware only handles CC 0 through 63
Bank 1 - 0-15
Bank 2 - 16-31
Bank 3 - 32-47
Bank 4 - 48-63

What you are trying to accomplish is to set up 2 more virtual banks managed by Bome. When you make ga value = 1 you wantBank 1 to act like a Bank 5 with values 64-79. With ga value of 2 you want it to act like a a Bank 6 with values 80-95.

The midi twister firmware doesn't seem to recognize controller numbers beyond 63 (actually per the manual, CC 64-95 and 127 are all animation controllers so you really don't want to use them.

The trick is to set it up when your midi controller outputs a switched from Bank 4 to your Virtual Bome bank 5, you actually want to real midi twister bank to be bank 1 but have BMT manage the translation

So when in bank 5 you want the BMT to translate all incoming values 0-15 to be outgoing values (to controlled device) of 64-79
but lights back to the Midi Twister to still receive values 0-15.

When in bank 6 you want the BMT to translate all incoming values 0-15 (yes you can still us real bank 1 if you wish) to be outgoing values (to controlled device) of 80-95 but lights back to the Midi Twister to still receive values 0-15.

That way you have two more "virtual banks" controlled by Bome beyond what the midi twister normally allows. Is this what you are trying to accomplish?

If so this is what I would do:

First turn off all midi through connections (so you don't have to use swallow for every translator and you can have Bome rules control all messages)

When you select bank 5 (not sure what controller from the device would do this) set ga=value to 1 when you select bank 6
set ga value to 2 (but have your midi fighter to continue to use real bank 1.)

You will need 4 translators for each control type

If you are using standard Midi fighter banks (Nothing translated)

-One translator looks for ga value of 0 and if 0 just pass through the output to the controlled device (set swallow off)
-Another looks also looks for ga value of 0 and if so, sends it back to the translator light (set swallow on)

If you are using BMT virtual banks 5 and 6 translator handles if ga value is not 0.

-If it is 1 set the incoming controller value (say pp) to pp+64.
In same translator if ga value is 2 then set pp=pp+80. Then output the the translated value to your controlled device. (swallow off)
-A separate translator just passes the original values back to the midi fighter led's unchanged to control the lights. (swallow on)


So essentially if value of ga is not 0 you are using real midi fighter bank zero and using BMT to translate to the output device otherwise things just pass through as normal.

With this you could set up virtually unlimited number of virtual banks controlled by BMT.

I hope I properly understand what you are trying to do and this provides some guidance. From your previous posts, I was really quite confused on what you were trying to accomplish. Maybe this time I got it right.

trabz

2016-11-04 16:56:48

Yes it's what I was trying to do, actually I finished the projet (without LEDs so far)

Left Hand Side button 1 = Bank 1
Left Hand Side button 2 = Bank 2
Left Hand Side button 3 = Bank 3
Right Hand Side button 1 = Bank 4
Right Hand Side button 2 = Bank 5
Right Hand Side button 3 = Bank 6

Actually I mapped it this way (maybe weird but makes sense to me hehe)

-pressing bank 5 after bank 1: IN=CC0-15 // OUT=CC64-79
-pressing bank 5 after bank 2: IN=CC16-31 // OUT=CC64-79
-pressing bank 5 after bank 3: IN=CC32-47 // OUT=CC64-79
-pressing bank 5 after bank 4: IN=CC48-63 // OUT=CC64-79
-pressing bank 5 after bank 6: IN=CC80-95 // OUT=CC64-79
=============
-pressing bank 6 after bank 1: IN=CC0-15 // OUT=CC80-95
-pressing bank 6 after bank 2: IN=CC16-31 // OUT=CC80-95
-pressing bank 6 after bank 3: IN=CC32-47 // OUT=CC80-95
-pressing bank 6 after bank 4: IN=CC48-63 // OUT=CC80-95
-pressing bank 6 after bank 5: IN=CC64-79 // OUT=CC80-95
=============
Pressing bank 5 button will turn all the presets regarding bank 6 OFF
Pressing bank 6 button will turn all the presets regarding bank 5 OFF
Pressing bank 1 or 2 or 3 or 4 buttons will turn all the presets regarding bank 5 & 6 OFF
MF Twister 4+2 banks.bmtp
(126.52 KiB) Downloaded 215 times
Thank you for your infos, and your help, I'll try it modifying my project
The midi twister firmware doesn't seem to recognize controller numbers beyond 63 (actually per the manual, CC 64-95 and 127 are all animation controllers so you really don't want to use them.)
I think I'm safe because I used the same channel as the virtual banks do: ch01 for encoder turn and ch02 for encoder pressed/engaged
So when in bank 5 you want the BMT to translate all incoming values 0-15 to be outgoing values (to controlled device) of 64-79
but lights back to the Midi Twister to still receive values 0-15.
When in bank 6 you want the BMT to translate all incoming values 0-15 (yes you can still us real bank 1 if you wish) to be outgoing values (to controlled device) of 80-95 but lights back to the Midi Twister to still receive values 0-15.
Actually I'd like the lights to respond to CC80-95 (bank6) and to CC64-79(bank5). I mean to have a separate "LED bank" from all the other banks 1-2-3-4. So there's no mistake possible (I'm gonna use the 6x banks to control my effects racks, I need accurate visual LED feedback as I don't like staring at the computer)
If you are using BMT virtual banks 5 and 6 translator handles if ga value is not 0.

-If it is 1 set the incoming controller value (say pp) to pp+64.
In same translator if ga value is 2 then set pp=pp+80. Then output the the translated value to your controlled device. (swallow off)
-A separate translator just passes the original values back to the midi fighter led's unchanged to control the lights. (swallow on)
I'll dig this

trabz

2016-11-04 20:16:01

Well I mapped it ~~as you said but the problem is still the same: the LEDs are replacing the ones from bank 1 which I don't want. I'd rather have independent LEDs for bank 5-6
Preset 19 on the picture is just sending ga=0 when any of the bank 1-2-3-4 is selected
Sans titre1.png
Sans titre1.png (85.86 KiB) Viewed 3079 times
Maybe I made a mistake ?

sjcaldwell

2016-11-04 20:49:06

trabz wrote: I'd rather have independent LEDs for bank 5-6
Well if you want to retain the bank 1 states when you switch back from bank 5 or 6 to bank 1, you will have to capture the original states from bank 1 and store them into global variables in BMT. Then when you switch back to bank 1 you will have to send out midi to restore their original states.

Since the midi fighter twister doesn't have memory for non-existent banks, there is no other way that I can think of.

I would think that you would need to create rules to track any changes from bank 1 all of the time and record them into global variables so you can restore them as needed. (same for 5 and 6 since they are not real banks)

To reduce the number of global variables, you may need to create a bit map. That way a single variable could control multiple indicators.

trabz

2016-11-16 22:27:54

nvm