Published by Nig on 02 Nov 2015 at 08:17 pm
TB-3 Sysex
As of system version 1.10, Roland introduced the ability to control aspects of the TB-3 via the use of System Exclusive, or Sysex, messages. Sysex messages are commands specific to a MIDI controlled instrument that allow access to functions, by memory address, that change the operation of the instrument via MIDI. In the case of the TB-3, this includes sysex control of the main physical controls, such as Cutoff, Resonance and Accent, plus additional functions that are not available via the TB-3’s interface. These additional functions are predominately related to control over the effects and also the indivdual patch waveforms.
The full list of controls are detailed by Roland in the TB-3 MIDI Implementation file available from their support website, and are also listed below:
- Controller
- Patch
- Patch Distortion
- Patch EFX1
- Patch EFX2
This section mimics the physical controls of the TB-3 for the Cutoff, Resonance, Accent and Effect level knobs plus the ENV MOD x and Y movement on the TB3’s pad. These controls, and a couple of additional ones are also controllable via MIDI Control Change messages, or CCs.
The Patch section allows the control of the patch waveforms SAW and SQR plus white and pink noise. The controls for these allow each to be individually turned on or off and their levels set so SAW and SQR waveforms can effectively be mixed.
In addition, controls are available to the patch decay and volume but these are golbal settings for the patch rather than for the individul waveforms.
Allows access to 25 different distortion types, with further settings available for DRIVE, BOTTOM and TONE, plus dry and effect level control.
There are eleven effects controllable for EFX1. In order these are BYPASS, COMPRESSOR, RING MODULATOR, BIT CRUSHER, TREMOLO, CHORUS, FLANGER, PHASER, DELAY, PHASE SHIFTER AND EQ. For each effect there are up to 12 parameters that can be set, including an ON/OFF function (Parameter 1). Each of the effects has different settings for the remaining parameters, depending which effect it is.
Patch EF2 has almost all of the same effect as EF1, except there is no PHASE SHIFTER or EQ but there is a REVERB instead, making 10 available effects. Also there are only 10 parameter settings available.
The EFX Parameters
In the Sysex specification, Roland haven’t defined individual memory addressing for the parameters per effect, so the address for Parameter 2 of the RING MODULATOR, say, is the same as Parameter 2 of the CHORUS. This makes setting of the effect parameters difficult to manage via a controller as the values for each effect parameter are different. In the case of the RING MODULATOR, parameter 2 adjusts the frequency and has a value between 0 and 127. For the CHORUS, parameter 2 controls the available modes (MONO, STEREO1 and STEREO2) and has a value range between 0 and 2.
Behringer BCR2000 TB-3 Patch
A patch for the Behringer BCR2000 to control these parameters, which uses both Control Change messages and Sysex to allow real-time adjustment of the TB-3. The zip file contains the patch itself, templates and files to use with Mark van den Berg’s BCManager software. Please see the README for further details.
About Sysex
As stated at the top of the the page, Sysex messages are commands specific to a MIDI controlled instrument that allow access to functions, by memory address. Sysex is MIDI channel independant which has a set message format (in HEX format), part of which identifies the manufacturer and instrument of the device the message is intended for. All sysex messages are identified by the start and stop values FOH and F7H, and between these lie the device IDs, the command ID, the data and, in the case of Roland a checksum.
Consider the following sysex code, which sets the TB-3 distortion on:
F0 41 10 00 00 7B 12 00 20 10 00 01 4F F7
F0 defines that this is the start of the sysex message
41 is the manufacturer ID for Roland devices
10 is the device ID
00 00 7B is the model ID for the TB-3
12 specifies that this is a sysex command so the device will know that it needs to change the data defined later in the string
All comands to the TB-3 will start with these preceding identifiers and will be followed by the memory address and the data:
00 20 10 00 is the TB-3’s memory address to enable the patch distortion
01 tells the TB-3 to turn the distortion on (01 = on, 00 = off)
4F is the checksum that Roland uses to establish that the message it has been sent is valid. It is calculated by converting the memory address and data value, in this case ’00 20 10 00 01′, to decimal and adding them together. Our example has a total of 49 in decimal. This total is then subtracted from 128 so (128 – 49 = 79). The result is then converted back into hex, giving a checksum value of 4F.
The final part of the sysex message is F7, which tells the receiving device that this is the end of the message.
Note: If when performing the checksum the result of the sum is greater than 128 then 128 is subtracted from the total, and this new total is then subtracted from 128 as described above.