Like many people, I have a FCB1010 with stock firmware (no UNO chip). It works well with Amplitube, except for toggling effects on/off. It's been we documented in this forum and others how you can get it to sort of work, but sometimes have to step on a button twice to get an effect to turn on or off.
I've figured out how to get the stock FCB1010 to work exactly as people would expect/hope, using a MIDI translator. This info might be useful to many other people (after all, the FCB1010 has to be one of the most sold MIDI foot controllers). So, below is the approach. Note that I'm not affiliated with the translator app or the virtual MIDI port app I used.
-6stringer
-----------------
The Approach
-----------------
Because the FCB1010 latches its CC values that it sends, Amplitube's own latch option
won't work. We can have the FCB1010 toggle a CC value between off (0) and on (127) each
time we press a switch. But these values might not be in synch with what the current toggle button setting in amplitube. This causes you to sometimes have to press the switch twice to get the stompbox to turn on or off.
What we need is a way to send non-latched CC values to amplitube. It turns out the FCB1010
sends two values each time it sends a MIDI note event: a note on event (the note velocity is
greater than 100, and for the FCB1010, its a default 100) when you step on the switch, and a note off event (the note velocity is 0) when you release the switch. We can use a MIDI translator to convert these note events into CC events.
On my FCB1010, I've programmed switches 6 through 10 in bank 0 to send notes 6 through 10.
The translators we're about to create will convert each of the note events into CC events with
the same number (note 6 will become CC 6, note 7 will become CC 7 etc). This gives me the ability to control the on/off of five effects per Amplitube preset.
------------------
The Translator
------------------
I'm using Bome's MIDI Translator Classic. This app lets you define translator "rules" for MIDI
events. I'm using four translators:
- Note on: This translates the note on event into a CC event with a value of 100.
My incoming translator is "90 pp 64" (don't include the quotes), and the outgoing
translator is "B0 pp 64". The 'pp' in the translator rules is variable. This rule
says "take any note event with a velocity of 100 (the 64 is 100 in hexidecimal), and
send out a CC event with the CC param the same as the note param and the value
100. For example, a note 1 on event will result in a CC param 1 event, with the
value being 100.
- Note off: This translates the note off event into a CC event with a value of 0. Like the
note on translator, the CC parameter value is the same as the note value.
My incoming translator is "90 pp 00", and the outgoing translator is "B0 pp 00".
- Program Change: This just passes the PC event on. My input and output rules are both
"C0 qq". If you don't include this rule, the translator app will thrown out
any PC events it sees. If you want to you PC events with Amplitube,
you'll need this rule.
- CC: This passes CC events on. You'll want this rule so you can still use the expression pedals
and CC events for other things in Amplitube (controlling the looper, next and previous
presets, etc.). The incoming and outgoing rules are both "B0 pp qq".
I have the MIDI input for the Bome app set to be the input device my MIDI FCB1010 is connected to. The output device is set to a virtual MIDI port (see below).
Save all of this to a file. Each time you start your PC, you'll need to start the translator app.
---------------------
Virtual MIDI Port
---------------------
The Bome translator app doesn't act as a MIDI device/port. This means that Amplitube can't
"see" it and it won't appear as a MIDI input device. We need to send the output of the Bome
app to a virtual MIDI port. I'm using loopMIDI v1.0.16. It's a small app that appears as
a MIDI device in applications such as Amplitube and DAWs.
--------------------------
Setting up Amplitube
---------------------------
At this point we have the translators we need and we have a virtual MIDI port that will route
the translated data to Amplitube. Now we need to setup Amplitube. For this example, let's
suppose I have a preset with two stompbox effects in it. We'll call them effect A and effect B.
Both effect has a toggle button we want to control. Also, when the preset loads, effect A is
on and effect B is off.
To get Amplitube to receive the translated MIDI events, we need to select the virtual MIDI port
as the MIDI input device. Go to the AUDIO/MIDI properties page and select the virtual MIDI
port as the MIDI input device. On my PC, it appears as "loopMIDI Port" in the pull down menu
of devices. Don't select the device the FCB1010 is connected to, or you'll just receive the
untranslated MIDI events.
Now go to the CONTROL tab on the Setup dialog in Amplitube. Click on the Control Change
button, and then on the Preset button. You'll see our two stompbox effects in the list. Let's
use switch 6 on the FCB1010 to toggle effect A on/off, and switch 7 to toggle effect B on/off.
The way I have my FCB1010 setup, switch 6 sends a note 6 event. The translator will translate
that into a CC 6 event. Select the effect A bypass row in the list on the CONTROL page, click
on the Learn button, and step on switch 6 on the FCB1010. You should see CC# 6 filled in the
row. Important! Set the "Latch" value in the row to ON. Repeat this for effect B, this time
stepping on switch 7. Click on the OK button.
If you step on switch 6, you should see effect A turn off. If you step on switch 7, effect B
doens't turn on...hmm..what's up? Step on switch 7 again and now it turns on. That's not
exactly what we want. The problem is effect B is off by default when the preset was loaded.
We need to tell Amplitube to swap the min/max values. Go back to the CONTROL page on the
Settings dialog, and set the Min value for effect B to be 100%, and the Max value to be 0%.
Now effect B should work correctly. These values are stored in the preset, so make sure you
save it!!
There's one drawback to having to adjust the min/max value for effects that are off by
default. You'll need to assign MIDI control values by preset, not globally for an effect slot
(which Amplitube 5 isn't even supporting at the moment, even though previous versions did).
I don't know why the developers chose to treat effect toggle buttons the way they do. Life would be much easier if they just considered the effect on/off button as being pushed each time any CC event came in that was tied to that button. That's what the application does with other "buttons", such as the looper buttons. Considering the FCB1010 is probably one of the most widely sold MIDI devices, maybe someday this will change.