MIDI processor and clock gen- Lets a Line 6 Helix to control a Voodoo Labs GCX

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)

Hi there! I have a helix and a GCX and stumbled across this solution for being able to control all 8 loops. I bought an Uno and have a MIDI shield. I uploaded your code and it works great for loops 1-7, but it appears using 1 on CC32 to activate loop 8 isn't having an effect, other than it appears to be locking into a loop where the ACTIVE light on the GCX is flashing pretty quickly.

I'm still new to the Arduino and coding so I'm a tad clueless as to where the problem might be.

Any help would be greatly appreciated!
Cheers!