Building mini MIDI 2-button foot switch

Started by bstiles, July 23, 2015, 02:20:17 PM

Previous topic - Next topic

bstiles

  I was looking to build my own MIDI foot switch.

  I just need to switch between presets on a Source Audio EQ pedal (down and up), but the MIDI Mouse is too big for my board- I was thinking like the size of a Disaster Area switcher, but not for their price.

    Where could I find a build schematic/tutorial for a pedal like this? I think it'd be simple enough to build if I had a map to follow. Thanks guys!!

FiveseveN

We don't know anything about your previous experience, so I'll start with the basics:
1. MIDI is a serial communication protocol, i.e. it allows "computers" to talk to eachother. It's not something you can implement in the analog domain, or even with discrete logic (efficiently). That means you need to program a microcontroller. If you already know how to do that, the programming part is trivial. If not, investment in the necessary tools and research may be a significant obstacle. Particularly if this is a one-off thing.
2. The protocol doesn't include instructions for "next preset" and "previous preset". All you can do is send "load preset number X" (Program Change X in MIDI parlance). If you must have a 2-button interface, you can store the "current" preset number in a variable and use those buttons to increment or decrement it, then send the new value. Initiate on preset 1 or 4 or whatever makes sense to you.
But seeing as there are only 4 presets available (+ bypass on the 5th), I'd just go for 4 buttons for instant recall.

Ref: SA EQ MIDI implementation on page 6 of the manual: http://www.sourceaudio.net/downloads/product_docs/sa_eq_manual.pdf
Quote from: R.G. on July 31, 2018, 10:34:30 PMDoes the circuit sound better when oriented to magnetic north under a pyramid?

Danila-master

Here you can find a user guide for this pedal:
http://www.sourceaudio.net/products/documentation/sa_eq_manual.pdf

As I can see it is not using Program Change, it is using Control Change commans (Page 6)

MIDI Implementation Table:

Parameter:                  Message Type:           Data Value:
Enable Preset 1            Program Change        001
Enable Preset 2            Program Change        002
Enable Preset 3            Program Change        003
Enable Preset 4            Program Change        004
Disable Preset – Bypass Program Change        005

You can send a CC for all MIDI Channels.
But entire project depends on price and usability.
If you have some more MIDI pedals in your board - then it make sense to add a simple MIDI controller.
If this pedal is a single pedal with MIDI - IMHO it is not realibe to make a controller just for one single pedal.

I'd rather build a true-bypass loop for this EQ to turn it On/Off with a separate button.
Guide says the following:
The footswitch can also duplicate the function of the SELECT button.
Pressing and holding the footswitch will make the unit begin to scroll
through the four presets in the same manner as pressing the SELECT
button. Releasing the footswitch will stop the scrolling on the last selected
preset.

So you can engage this function and list presets with a Footswitch button and turn bypass with a True bypass looper.
IMHO

FiveseveN

Quote from: Danila-master on July 24, 2015, 04:46:08 AM
it is not using Program Change, it is using Control Change

Quote
Message Type: Program Change

Am I missing something?!
Quote from: R.G. on July 31, 2018, 10:34:30 PMDoes the circuit sound better when oriented to magnetic north under a pyramid?

Danila-master

Sorry, I was a bit tired when I wrote my post.
Anyway.
It is easier to send PC commands.
For example:
http://www.aliexpress.com/item/Free-Shipping-800pcs-dupont-cable-jumper-wire-dupont-line-male-to-male-dupont-line-20cm-1P/1699335351.html
Arduino Nano clone for about 3 bucks.
And very simple guide:
http://www.instructables.com/id/Send-and-Receive-MIDI-with-Arduino/step10/Receive-MIDI-Messages-with-Arduino/

There is another way) to make a full discrete controller.
2 x Shift registers (parallel in serial out) + generator + some logic.

bstiles

Danila, I was reading through all what you wrote! I'm new to MIDI (have never built a pedal or anything like that), but a little background on my project:

I wanted the MIDI so I could set the tone and solo for 2 different guitars as follows:

1) Guitar 1 Regular Tone
2) Guitar 1 Solo
3) Guitar 2 Regular Tone
4) Guitar 2 Solo

The footswitch DOES work to change presets, but it can be hard to time the length of hold to make it land right on the downbeat of a solo and make it seamless, especially when I have maybe another pedal (alternate delay) to press down.

What do you think would be a good workaround for this? Basically I was trying to use the EQ as a tone control/solo boost.

Mark Hammer

There was a circuit published in Electronic Musician some years back, using a couple of CMOS chips, for a simple MIDI message tester.  I forget what message it sent, but the idea was to send something simple, like program change, to be able to test a MIDI-equipped device, without requiring another larger MIDI-control device.  The intent was to have a little battery-operated thing that would let you say "Yep, that one works fine".

I'll see if I can find the circuit this evening.

Danila-master

Quote from: bstiles on July 28, 2015, 10:27:52 AM
Danila, I was reading through all what you wrote! I'm new to MIDI (have never built a pedal or anything like that), but a little background on my project:

I wanted the MIDI so I could set the tone and solo for 2 different guitars as follows:

1) Guitar 1 Regular Tone
2) Guitar 1 Solo
3) Guitar 2 Regular Tone
4) Guitar 2 Solo

The footswitch DOES work to change presets, but it can be hard to time the length of hold to make it land right on the downbeat of a solo and make it seamless, especially when I have maybe another pedal (alternate delay) to press down.

What do you think would be a good workaround for this? Basically I was trying to use the EQ as a tone control/solo boost.

It depends on your experience.
Mostly in programming.
You can use an Arduino board.
Add there 4 switches one per preset, a DIN connector and a power supply (9-to 5 Volts)
Since it is transmitter - no optocouple is needed
rest depends on your understanding in programming.
Code is pretty simple:

If button 1 pressed - send the program change 001 command
If button 2 pressed - send the program change 002 command
If button 3 pressed - send the program change 003 command
If button 4 pressed - send the program change 004 command

Here is an example with 7 buttons.
http://www.witchmastercreations.com/arduino-simple-midi-footswitch/
You just need to reduce number of buttons to 4 and send Program Change instead of  MIDI.sendNoteOn

Here is description:

http://arduinomidilib.fortyseveneffects.com/a00024.html#ga95a68e3efb4bee491ffce27d20eafa19

We need to use:
send(ProgramChange, inProgramNumber, 0, inChannel);

send(ProgramChange, 1, 0, 1);
send(ProgramChange, 2, 0, 1);
send(ProgramChange, 3, 0, 1);
send(ProgramChange, 4, 0, 1);

Also you can add the 5th button for bypass.

P.S.
Mark Hammer, It would be great to take a look on the discrete MIDI Device.
Considering that Shift registers cost about 0.4$ and we need two per channel it means that totally it would cost 3.2$  + some other logic and a generator.
It would cost even more than a nano-clone, but it will not require programming skills.