versions 1.1, 1.5, 2.1 and 2.2:
I have written a few versions of firmware for the BJ Devices TB-12 MFC. Here are the main features:
^ versions 1.1 and 2.1 only
* version 2.1 only
NOTE: This firmware is for the BJ Devices TB-12 model only !!!
STARTUP mode is identified by the 5 patch LEDs chasing.
Footswitches 7 to 11 select your first patch in the current bank, and goes to PLAY MODE. Footswitches 12 goes to bank mode, where any one of 25 banks can be selected.
Footswitches 1 to 6 can optionally select a pre-configured pair of custom CC messages to be sent after each patch change. This can be used, for example, to set an ambient reverb level, or always select a patch variation such as a scene on the Axe-FX. The change is previewed, and can be de-selected if not required.
Bank mode is identified by the Bank footswitch 12 LED flashing.
There are 25 different banks, separated into groups A, B, C, D & E. Each of these groups has 5 banks numbered 1 to 5. So banks are numbered A1, A2, A3, A4, A5, B1, B2, …, D4, D5, E1, E2, E3, E4, E5. Selecting a bank sets the bank for the next patch selection.
Any one of these banks can be selected with a maximum of two presses:
Footswitch 12 returns to the previous mode without changing bank.
Once a patch has been selected, footswitch 6 in BANK mode can be used to go to the bank containing the current patch.
Footswitches 7 to 11 select one of 5 patches in the current bank.
Footswitch 12 can be configured to backtrack to the previous patch. Holding it down for about one second goes to BANK mode. If backtracking is not required, this footswitch goes to BANK mode immediately.
Footswitches 1 to 5 select effects (IAs) including Tap.
Footswitch 6 is for FX shift (LED flashes when shifted) so that footswitches 1 to 5 select an additional 5 effects.
This process must be performed to set your pedals to work properly with the MFC. Once set, you would not usually need to do it again until you replace a pedal.
Press [SETUP] to show the start screen above, with a flashing cursor under the pedal number. You can press [UP] or [DOWN] to select the pedal you want to calibrate. The press [ > ] to start and show the screen with pedal values. This screen briefly shows the previous pedal minimum and maximum values, then shows current values.
Move the pedal throughout its range a few times, from heel down to toe down. You will see the minimum, current and maximum values change as you move the pedal. Press [ < ] when finished.
If you have another pedal, press [UP] to select it and calibrate that the same way.
When finished, press [OK] to permanently save your pedal calibration and restart the MFC, or press [NO] to exit without saving changes.
(versions 1.1 and 2.1 only)
Up to two pedals can be connected. They are enabled by setting their CC number to something other than “NONE”.
But pedals are subject to failure or temperamental behaviour due to scratchy pots, internal failures or even connecting lead problems.
The quick fix to disable all pedals is to press [LOAD OK] twice - you could even do this in the middle of a solo:-)
Pressing [LOAD OK] shows the LCD screen above, with a flashing cursor under “BOTH”. You can press [UP] and [DOWN] to scroll through different choices of which pedals to disable (BOTH, NONE, PEDAL 1, or PEDAL 2).
Press [OK] again to send a configured value for the disabled pedal(s) - for example, send maximum volume for a faulty volume pedal, and to disable the pedal(s). If pedals are not disabled, they will be re-enabled.
This is a temporary change only – configured settings will be used next time the MFC is restarted.
Press [SETUP NO] to exit this screen without making changes.
The above descriptions apply to firmware versions 1.1 and 2.1.
Version 1.5 is a simple MFC with only one mode. It's also an easy version for programmers to expand to meet your own needs.
I programmed this pedal to work the way I want. BJ Devices offer development tools to allow you to build a MFC the way you want. You can also use my code as a stating point for your own design. Here are some modifications you may wish to consider:
There are 4 current firmware versions and a PC settings editor. My source code and editor can be downloaded and all feedback is welcome to firstname.lastname@example.org
You can modify settings for these versions with the program GM Arts EEP (sorry, Windows only). The editor saves .eep files that can be loaded into your TB-12 with the same software used to upload firmware.
All versions have:
Versions 1.1 and 2.1 have additional functions:
Version 2.1 adds:
Version 2.2 adds:
There are no known bugs in the firmware with the settings I use. But there are hundreds of settings (which means billions of combinations) and there's only one of me, so I can’t make any guarantees. I’m keen to fix any bugs so please let me know at email@example.com
The MFC has 125 patches as 5 patches per bank in 25 banks. Banks are displayed as A1, A2, A3, A4, A5, B1, B2, B3, … , D5, E1, E2, E3, E4, E5. A patch displays as 1 to 5, so for example B3-2 means patch 2 in bank B3.
The MFC supports 9 effects plus Tap (which can be used as a momentary footswitch if Tap is not required). It will be helpful to list the effects that you plan to use when making settings.
Normally patches are created with some effects on and some off. And of course when you select a patch you want to see the initial effect states on your MFC. A common approach is to use an additional MIDI connection so your device can tell the MFC what’s on and what’s off. The TB-12 is capable of doing this, and there is sample code showing how this can be done with devices such as the Axe-FX II and Kemper.
I use a different approach where the MFC controls which effects are on and off when selecting a patch. Each patch has its own settings for effect states, and any or all effects can be set to send their effect state after a patch change. I find this works well for me, when I save patches sometimes with effects on that should be off and vice-versa. No unpleasant surprises at the gig! But the beauty of the BJ Devices MFCs is that we can each program them to work however we want.
sets the MIDI channel (1 to 16) for sending PC (patch changes) and CC (effect) messages
MIDI Program Bank MSB
MIDI Program Bank LSB
Some devices allow multiple banks of 128 patches. These banks are selected with MSB and LSB numbers (0 to 127) and are sent immediately prior to a PC message.
Each patch has the following settings:
MIDI Program Number
A program number from 0 to 127. Many devices show these as numbers 1 to 128, so if that’s the case, use a number 1 less for your setting here. If you wish, more than one MFC patch can send the same MIDI program number. This may be useful with different effect settings.
Effects F1 to F9
These should match the state of effects in the selected patch. Settings here merely set the initial state of effects when a patch is selected. There are settings in the effects section to force these effect states to be sent so that the MFC controls which effects are selected in each patch.
Note that even a momentary effect footswitch can be set as on here. In that case, the LED shows the effect is on, and when pressed it sends the effect “off” value; when released it sends the “on” value.
(versions 1.1 and 2.1)
Each bank can set any of the 4 relays to “no change”, on or off. When a relay is on, its jack connection is shorted to the jack sleeve.
There are 9 effects F1 to F9 which can be:
The Tap footswitch is a momentary footswitch and can be inserted anywhere in the order of footswitches F1 to F9.
The left 5 footswitches in the bottom row (numbered 1 to 5) are used for effects, while an FX-Shift footswitch gives access to the additional 5 effects. For example, if we place Tap on un-shifted footswitch number 5, effects would be as follows:
In addition to the 9 effects and Tap, there are other effects available:
Each of the above effects can:
Where Are My IAs?
IA is a term typically used for a MIDI message used to toggle an effect on and off. There is no such thing as a MIDI IA message, so I use the correct term: CC for control change. This is also more applicable to my firmware that can send any value for off and on.
Each effect has the following settings:
A CC message has a number and a value. CC numbers are typically used for different purposes. For example CC number 7 is commonly used for volume control, with CC values from 0 to 127 setting volume from off to maximum. CC numbers 0 and 32 are reserved for MIDI patch banks and are not available in my editor or MFC. Any other number from 1 to 31 and 33 to 127 can be used.
You can set any number from 0 to 127. Because the MFC allows you to use any value for off and on, you can:
Each of effects F1 to F9 can be set:
If you use the Relays option, each effect can set any of the 4 relays to “no change”, on or off. When a relay is on, its jack connection is shorted to the jack sleeve.
Mutually Exclusive Effects (versions 1.1 and 2.1)
Mutually exclusive (ME) effects work so that only one effect is on at the same time. For example, if you include phaser and flange effects in a ME group and phaser is on, turning the flanger on will automatically turn the phaser off.
The MFC has four ME groups which you could use, for example, for modulation effects, drive/boost effects, delay effects and Axe-FX scenes. You can even include effects in more than one ME group if you want to get creative.
ME groups don't control which effects are on when patches are selected (or backtracked). They only turn effects off when another effect is turned on in the same group.
ME groups apply to toggled effects and also Tap FX (where you specify a number of Tap presses to turn on Tap FX).
Note that if effects F1 to F9 don’t have an off value, then once they’re on, they’ll lock on until another effect is selected in the same ME group. Even if you press the same effect, it will just send the “on” value again. This works well with mutually exclusive groups where you use several footswitches to send different CC values such as Axe-FX scenes, because you can always see which one is currently selected.
Note that pedals should be calibrated on the MFC before use. See the usage guide for instructions.
Each pedal has a CC number from 1 to 31 or 33 to 127. If you don’t set a CC number then the pedal is disabled.
CC Value to Send After Patch Selection
When changing patches you can send a specific value or even send the last pedal value for smooth pedal operation between patch changes.
% Dead Zone Under Toe and Heel
Pedals often have rubber stops under heel and toe and possibly footswitches as well. All of this means that there’s not a precise start and end to pedal travel. You can set from 0 to 25 percent of pedal travel to ensure that the pedal minimum and maximum values are always guaranteed as you get near the pedal extremes.
CC Value to Send if Disabling Pedal (versions 1.1 and 2.1)
There is a pedal panic option to quickly and temporarily disable faulty pedals. When disabled, the CC Value you enter here will be sent. For example, this could send maximum volume on a faulty volume pedal. See the usage guide for instructions.
Set Full Pedal Range
Each pedal should be calibrated on the MFC, however, you can set them here to operate over the full range if you know your pedal operates from fully off to fully on (many don’t).
(versions 1.1 and 2.1)
When the MFC is first powered on you are in startup mode until a patch is selected. In startup mode you can press one of the bottom-row 6 footswitches to select custom CC messages to be sent after each patch change. These messages can be used, for example, to set an ambient reverb level to suit your playing environment, or select particular Axe-FX scenes to suit different gigs.
There are 2 x CC messages that can be sent, and the second message can be used to set relay states instead.
Can be from 1 to 31 or 33 to 127.
When you select the custom messages on footswitches 1 to 6, the message is sent so you can hear the change it makes. If you toggle a selection off, this “off” value is sent. It is only used in startup mode for preview purposes, so should be set to a value that represents no custom message being sent.
Values #1 to #6
One of these values can be sent after each patch change by selecting the corresponding footswitch in startup mode.
For the “Off” setting and for each custom message #1 to #6, you can set any of the 4 relays to “no change”, on or off. When a relay is on, its jack connection is shorted to the jack sleeve.
Send Custom Messages Last
The custom messages can be sent before or after CC reset messages that follow a patch change.
Tap Footswitch Number
The Tap footswitch is inserted into the order of F1 to F9 effects by selecting which footswitch is used for Tap here.
Tap Presses for Tap FX
In addition to the normal Tap messages sent when pressing and releasing the Tap footswitch, it can send additional messages after a certain number of Tap presses after a patch change. You can set this off, or from 1 to 9 presses.
Turn FX-Shift Off
Select this if you want to ensure that FX Shift is off after a patch change.
Wait After Patch Change
Some devices may need a small amount of time after a patch change before processing additional CC messages.
This allows you to toggle between the current and previous patch.
Backtrack Effect States
When backtracking with this option, the effect states of the previous patch are also set. Another use of this option is that by reselecting the current patch and setting different effect states, you can then use backtracking to toggle between different effect states in the same patch!
This option sets the MFC bank with the backtracked patch.
This option shows the tuner automatically on the lower LCD row.
This is required if you wish to use the Tempo Backtracking option.
This option is available when Backtracking is enabled. It ensures that when you backtrack to the previous patch, the last tempo you set in that patch is reset. This is useful for delays synchronised to song tempo.
(version 2.2 only)
One for the MIDI geeks!
Up to 15 messages can be set with a total of up to 255 bytes. Each message can be any type of MIDI message, such as system exclusive, CC, PC, note off/on, etc. Each of the 15 messages can even chain multiple messages. For example one of the messages could be a system exclusive followed by a CC!
These 15 messages can be configured for use after patch selection with settings for each MFC bank. They can also be used instead of the first effect CC message, or instead of the first custom CC message.
The default settings for the library is that it is empty. To use messages, they must be configured in the PC editor, then saved as an .eep file and loaded into your TB-12.