Skip to content

DIY midi footswitch for helix/hx stomp or actually any midi device

License

Notifications You must be signed in to change notification settings

jtolj/HelixMidi

 
 

Repository files navigation

HelixMidi

This is a DIY midi footswitch controller for the line6 helix / hx stomp (or actually any midi device).

Short demo: https://youtu.be/-W3b5MKsnIc

Controller

I did it when it's turned out that I neeed more than 3 footswitches ;-) , and the price of stock midi controllers was too high. More likely I'd sell the stomp and buy helix lt instead, if I had to pay for the controller.

It offers 6 different pages (modes), and covers nearly everything that the hx stomp can accept through the midi :) It is powered directly from USB, works fine with hx stomp, no buzz/hum

  • basic - 4 'classic' switches

  • basic+ - 3 'classic' switches + tap/tempo

  • preset change - Fs4,5 emulation + 1 'classic' + tap/tempo

  • snapshot change - 3 snapshot switches + tap/tempo

  • looper 1 - record/overdub, play/stop, undo/redo, tap/tempo

  • looper 2 - record/overdub, play, stop, undo/redo

  • tuner on/off always available when long pressing fs2

Brief user manual :) :

You can cycle between basic, basic+, preset and snapshot change by long pressing fs1 and fs2 simultaneously. Clycle between basic, looper 1, looper 2 by long pressing fs3 and fs4 simultaneously. Each page has it's own color set - I've tried to reflect hx stomp colors as closely as possible :).

Current page is saved in memory, so next time you turn on the controller, it will go back to it.

Footswitch functions in particular page:

  • Basic : fs1-4 - 'classic switches' (midi cc codes 100-103)
  • Basic+ : fs1-3 - 'classic switches' (midi cc codes 100-102), fs4 - tap/tempo
  • Preset change: fs1 - Fs4 emulation, fs2 - 'classic switch' (midi cc code 101), fs3 - Fs5 emulation, fs4 - tap/tempo
  • Snapshot change: fs1-3 - snapshot 1-3, fs4 - tap/tempo
  • Looper 1 - fs1: play/stop, fs2 - undo/redo, fs3 - record/overdub, fs4 - tap/tempo
  • Looper 2 - fs1: stop, fs2 - undo/redo, fs3 - play, fs4 - record/overdub

In the looper modes leds function is a bit different, and it displays if the looper is active, and if record/overdub is in progres. So eg. after hitting record/overdub (first time) leds indicating looper and record activation will be lit, and then, if You hit the play switch, the record led will be shut. However it's not 100% accurate - (eg. undo/redo hit just after recording is started for the first time seems to turn the looper in the hx stomp off, but it's the best I could do ;-)

Tap tempo blinking - sadly my led blinking implementation did not keep up the same tempo as the stomp. Probably it was implemented too naive way ;), or just a real time clock is needed to do it? hmm...

Programming

3 external libraries are used for midi, ledstrip and button handling. You can add them via Arduino IDE -> Tools -> Manage Libraries...

Add:

  • MIDI Library (by Francois Best, lathoub)
  • Freenove WS2812B RGBLED Controller
  • ezButton

Sketch uses 8194 bytes (26%) of program storage space. Maximum is 30720 bytes. Global variables use 740 bytes (36%) of dynamic memory, leaving 1308 bytes for local variables. Maximum is 2048 bytes.

Elements used

Total cost of elements (except the case) was c.a. 23$.

Wiring

Diagram

In my case (huh, 'case' ;D) the wiring looks like this - pretty simple (only on the photo it looks like hundreds of wires :P ), the arduino is in a heat shrink tubing, and attached to the case with double sided tape

Wiring

Misc

  • If you wonder what is the correct order of pins in the midi socket/plug, this image should solve Your problems (helped me a lot)

    Midi plug

    it comes from http://www.philrees.co.uk/midiplug.htm

  • It looks like this together with the hx stomp

    Together with hx stomp

TODO

  • Tap/tempo and looper mode
  • Install single leds next to the stomp when they arrive ;) And fill their holes with some transparent, or opaline resin to disperse the led light gently.

Info from hx stomp instruction

CC message ids restricted by line6 (special purpose):

0	n/a Bank MSB (unused, but reserved)
1	0-127 Emulates EXP 1 Pedal
2	0-127 Emulates EXP 2 Pedal
3	0-127 Additional global MIDI commands
32	n/a Bank LSB (unused, but reserved)
49	0-127 Emulates FS1
50	0-127 Emulates FS2
51	0-127 Emulates FS3
52	0-127 Emulates FS4
53	0-127 Emulates FS5
54	0-127 Additional global MIDI commands
55	0-127 Additional global MIDI commands
56	0-127 Additional global MIDI commands
57	0-127 Additional global MIDI commands
58	0-127 Additional global MIDI commands
59	0-127 Additional global MIDI commands
60	0-63: Overdub;64-127: Record 1 Switch Looper Record/Overdub
61	0-63: Stop;64-127: Play 1 Switch Looper Play/Stop
62	64-127 1 Switch Looper Play Once
63	64-127 1 Switch Looper Undo/Redo
64	64-127 Tap Tempo
65	0-63: Forward; 64-127: Reverse 1 Switch Looper Forward/Reverse
66	0-63: Full; 64-127: Half 1 Switch Looper Full/Half Speed
67	0-127 Additional global MIDI commands
68	0-127 Tuner screen on/off
69	0-2, 8 and 9 Snapshot select (0=Snapshot 1, 1=Snapshot 2, 2=Snapshot 3, 8=Next snapshot, 9=Previous snapshot)
70	0-63: Bypass; 64-127: On All Bypass
71	0-5 Footswitch Mode (0=Stomp, 1=Scroll, 2=Preset, 3=Snapshot, 4=Next footswitch mode, 5=Previous footswitch mode)
72	0-127 Additional global MIDI commands
73	0-127 Additional global MIDI commands
74	0-127 Additional global MIDI commands
75	0-127 Additional global MIDI commands
76	0-127 Additional global MIDI commands
128	 0-63: Jealous;  64-127: Codependent HX Stomp sends late-night texts to all of your exsignificant others, professing your undying love to them and their cats

Values for block bypass

Incoming CC values 0-63 turn the block off; values 64-127 turn the block on. Note
that some MIDI CCs are reserved for global functions and cannot be selected 

About

DIY midi footswitch for helix/hx stomp or actually any midi device

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 92.3%
  • C 7.7%