Arduino project to let a Helix control a Voodoo Labs GCX

Recommended Posts

I came up with this cool solution to control my GCX from my Line 6 Helix, but it could be used with practically anything. To define the problem, the L6 Helix can generate 6 immediate MIDI messages. These messages are pretty flexible as to what you want, but the GCX needs at least 8 CC messages to properly configure it worst case. Also, I don't want to burn all of my immediate commands to control most of the GCX. So I had the idea to create a Arduino project that would take MIDI PC and MIDI Bank Select to produce a 8 bit value which I could then convert into 8 CC messages between CC#80 and CC#87.

#UPDATED 2/25/17: I have also added a feature to generate a MIDI clock using channel 16 CC# 00 which is a feature that Helix doesn't currently have right now either. Basically, CC#00 value + 40 is the BPM of the clock, so a CC#00 value == 70 translates to a BPM of 110. Because CC value can only go up to 127, the max BPM is 167.

Notice that the Bank Select value basically controls bit 8 and the PC value represents bits 6 down to 0. Taken together, they represent a 8 bit value representing the 8 loops of the GCX.

Based on the binary output, I scroll through bits 0 to 7 and send messages on CC 80 to CC 87. If a bit is a 1, I turn the loop on by setting the corresponding CC value to 127 and if it is a zero, I set the CC value to 0.

The Helix can generate a Bank Select and PC as one message, so for the price of one message, this project will make me 8 CC#'s effectively.

This code is hardcoded to channel 16 because, that is the "ONLY" channel a GCX will receive on. This code should allow other messages through, with only the Arduino's SW loop latency. There maybe some other side effects to, but those side effects should be limited to channel 16 PC and channel 16 CC#32.

Share this post

Link to post

Share on other sites

If my understanding of the unit is correct, you could program one midi command from the helix to translate to multiple cc's to the GCX via the event processor. In theory, this would free up the other 5 instant commands.

I like the out of the box thinking that you're using to solve this issue. If I were not trying to do everything strictly in the helix, I would be trying to do similar things with my GCX.

Share this post

Link to post

Share on other sites

This is very cool. On a side note, would a midi solutions event processor be able to handle similar tasks?

So looking at the Midi Solutions Event Processor, it looks like a very full featured solution. The software guide seems to indicate you can do "If this, and then if this, do this" type of commands which is required for this solution. So I think you could do it. The big difference is that the MIDI solutions event processor is about $150 bucks and the Arduino and Midi shield you can get for around $25 without a case. BTW, it turns out that finding a case that fits an Arduino WITH a MIDI shield is not easy. I found a guy who makes a taller transparent plastic arduino box. I have ordered one. I'll repost when I get it.