Jump to content
aaronlyon

DIY MIDI program change footswitch

Recommended Posts

I made a two-button footswitch for changing Helix patches up and down, using a generic (Elegoo) Arduino Nano board. It sends MIDI program change messages, and is endlessly customizable.

 

Complete parts list:

 

Hammond 1590a enclosure

Elegoo nano (set of three for cheap https://www.amazon.com/Arduino-Elegoo-ATmega328P-without-compatible/dp/B0713XK923 )

two SPST momentary (normally open) switches

LED and 220 ohm resistor (optional)

panel-mount MIDI jack

panel-mount 9v jack (optional, easy to power from 9v battery--Nano draws only 25mA, and only 37mA while LED is lit)

hookup wire

 

My code is pasted below. Entire project took less than two hours, and cost less than dinner.

 

// midi.controller
// Sends midi program change
// Aaron Lyon April 2018

#include <MIDI.h>

MIDI_CREATE_DEFAULT_INSTANCE();

byte patchNum = 0;

#define BUTTON_PIN_1 2
#define BUTTON_PIN_2 3
#define LED_PIN 13

void setup() {
  pinMode(BUTTON_PIN_1, INPUT_PULLUP);
  pinMode(BUTTON_PIN_2, INPUT_PULLUP);
  pinMode(LED_PIN, OUTPUT);
  MIDI.begin(MIDI_CHANNEL_OMNI);
}

void loop() {
  if (digitalRead(BUTTON_PIN_1) == LOW && patchNum < 99) {
    // Next Program
    digitalWrite(LED_PIN, HIGH );
    patchNum++;
    MIDI.sendProgramChange(patchNum, 1);
    delay(200);
    digitalWrite(LED_PIN, LOW );
  }
  if (digitalRead(BUTTON_PIN_2) == LOW && patchNum >= 1) {
    // Next Program
    digitalWrite(LED_PIN, HIGH );
    patchNum--;
    MIDI.sendProgramChange(patchNum, 1);
    delay(200);
    digitalWrite(LED_PIN, LOW );
  }

}
 

midi2.jpg

midi1.jpg

  • Like 1
  • Upvote 1

Share this post


Link to post
Share on other sites

This is excellent!  I've been looking at Arduino to do something similar but doing CCs instead of PCs.

Can I use your design and code but send CCs instead?

Share this post


Link to post
Share on other sites

Heck, you could set this up as a MIDI oscillator. Like, send a LFO to sweep the wah position. 

Share this post


Link to post
Share on other sites

I built a new program switcher into a plywood base for my Line 6 50 receiver and an expression pedal, for ease of portability and setup.

 

Let me know if you would like to buy the MIDI pedal I built, shown above, the one in the Hammond 1950a chassis.

 

 

board1.jpg

board2.jpg

Share this post


Link to post
Share on other sites

Very cool. Does your original box do MIDI via USB as well as the 5-pin DIN?

Share this post


Link to post
Share on other sites

Yes, if you connect the Nano to your PC using a USB cable, you can transmit MIDI to PC also. But that wouldn't be very convenient with this unit, because you'd have to remove the chassis cover to get to the Nano.

 

Share this post


Link to post
Share on other sites

Do you have a schematic or afew photos where the full wiring is shownfor this. I'd love to build it but cannot see  what is wired to what. Thanks 

Share this post


Link to post
Share on other sites

 

 

I'm also experimenting with sending midi signals to the Helix, but sending the preset number on channel 1 does not change the preset correctly.

I expected that with the command:

 

MIDI.sendProgramChange (10, 1);

 

the helix selected preset 10 and with the command

 

MIDI.sendProgramChange (xxx, 1);

 

select preset n ° xxx while instead with any number only select patch 0 or 60

did any of you have the same problem?

Share this post


Link to post
Share on other sites

aaronlyon

is it possible to send a MIDI-command to change snapshots? I have an idea: I use sometimes the Helix Native as a stand-alone-program on my PC. I not realy need a DAW for using Native. So, in some presets I use, there are snapshots. The idea now is: sending a MIDI-command with a homemade footswitch to change snapshots. Can you test this thing or what do you think? is that possible?  :-)

 

Can you give us the used MIDI-Library, please?

Share this post


Link to post
Share on other sites
3 hours ago, tuxmrk said:

I use sometimes the Helix Native as a stand-alone-program on my PC. I not realy need a DAW for using Native.

How do you use HxN stand alone? I was convinced HxN is plugin and need some kind of host. I have even written a tutorial how to use midi to control HxN.

 

Share this post


Link to post
Share on other sites

Share this post


Link to post
Share on other sites

Sure, you can use any host that works and use either HxN automation handles with midi controller or HxN midi control with midi controller.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...