I started this project because after purchasing a Line 6 Helix, I found that because of the MIDI controller implementation, which only allowed for 6 immediate MIDI commands to be generated on preset, that I could not adequately control my Voodoo Labs GCX which required a minimum of 8 CC messages to be sent to fully configure it. Additionally, the Line 6 Helix running FW release 2.12, cannot (yet) generate a MIDI clock. This project allows a single Helix immediate Program Change command, to both fully configure a GCX and set a MIDI clock based BPM setting.
The Helix PC immediate message can produce a MSB CC #00, LSB CC #32 and a PC. The value of LSB#32 is combined with the PC to create an 8 bit value which is then converted into 8 CC#'s with on/off values of 0 and 127 respectively to enable the 8 loops of the GCX. Note that the PC can only have values between 0 and 127. This value by itself can only represent a 7 bit value. The LSB CC #32 gets the 8th bit if resolution. If CC#32 is set to 1, then 128 is added to the PC value.
The MSB CC# 00 is used to set the MIDI clock. In the code, the value set on MSB CC #00 is added with a fixed offset of 40. So to get a BPM of 110, you would configure the MSB CC #00 to 70
This project has been tested with an Arduino Uno and an Olimex MIDI shield board.
ard_gcx_editor.ino (6.89 KB)