Midi pedal plans/help arduino

Started by briandress, November 26, 2017, 01:35:01 PM

Previous topic - Next topic

briandress

Hey gang. Hoping to finally build a midi pedal. I'm looking to have something that will do preset switching and also be able to turn fx on and off like distortion reverb etc.

The preset changes would be PC right? Hopefully routing that inside some apps to change multiple presets at once.

Also would like to be able to have some buttons to do looper controls like play rewind record stop etc.

A few questions. Building on arduino I have seen people use the uno or Leonardo or the teensy. Curious which will give me easiest programming and flexibility.

I would like to be able to reprogram pc buttons or cc buttons if need be and display items on LCD screens. If possible.

Any thoughts or support in helping me brainstorm and plan this project would be great. If you think I should just go look at another thread point me that way and I'll be grateful too.

Thanks forum!


Sent from my iPhone using Tapatalk

ElectricDruid

Arduino of any flavour is going to be a good start because there are existing libraries for the MIDI comms you need, and LCDs too if you go that way.

The worst part is going to be working out what the interface should look like and how it should react. If you've got an LCD, that becomes about 100x more complicated, and there's x100 more ways to make it painful to use. Editing text on an interface with a few foot switches? (No thanks!) Think very carefully about what you want to press, what you want to happen, what happens next, what happens if you don't press anything, etc etc. You need all of that absolutely solid before you think about coding anything. Diagram it on paper, stick post-it notes on the wall, whatever works for you, but make sure you're really clear about what you're trying to do.

Technically, sending MIDI messages is really easy. You don't even need the opto-isolator hardware you need for MIDI reception. In fact, with a 5V processor with a UART, a 220R is all you need - dead simple. So the hardware's a cinch.

T.

caldersm

Have done that same thing using a Teensy, OLED, and a Rotary Encoder.  The Teensy was used because of the fast speed and the super easy USB Midi setup, as well as simultaneously using serial Midi and the Push Buttons.   The Rotary encoder/Switch allowed for a menu with the ability to change the CC/PC channels and the numbers that it responded to:  Default 81 -89.   I used a 16 port I2C I/O chip to make it easy to wire the 8 PB and 8 Relay Outputs.   I added a bunch of neat stuff with the rotary encoder....so that you could completely set it up without a computer.....all done with a spin of the dial.

All items are available on Amazon.  With the Teensy, OLED, Encoder, I/O chip...I have under $30 in parts for the electronics.  See a picture of the pre-test unit....Setup to respond to CC channel 16, PC channel 1.....currently on Preset 112.....that has 4 outputs on that are programmed.  I have a program button separate, so you can set the outputs and store them on the current presets.



Once you get started and get the right components.....all the libraries for the Teensy are available for download....even using the rotary encoder menu.   I did a lot of extra fancy scrolling with the menus, but it was all relatively easy to get working.

Let me know if you have any questions.

Steve
caldersm44@gmail.com





briandress

so i started to plan this out. There are a few things id like to accomplish with this. mostly because its just for me.

i dont want to program on the unit. I would rather make all presets on the actual unit.

I would like to be able to make a preset in the program...meaning that when I call up the preset it sends a PC out but also it programs all the footswitches for specific CC and labels them.

In example.

Preset 1 sends a PC out that pulls up my presets for all the different plugins. Loading preset one also loads the pedal names on the CC switches and loads up the proper CC codes for each switch. So it will send to the first switch the lead readout for TS9 and it will assign the CC code to turn on the boost in my plugin preset. second switch it will load delay etc.

I want to also have some dedicated buttons for looper etc so those dont really need LCD they will be static.

So maybe Im looking for 4 presets, bank up and down. then a row of stomps. and other custom controls.

Im planning to make a breakout box with knobs too so I can control amp parameters without going to the actual software.

caldersm

Totally doable.....no issue......assuming you would hard code all the Pedal names for the PC that you send.   I do some of that for the guy that asked me to do the code......say for CC95, I display "Storing Presets" on the OLED, and I store the current switch status to the Preset that it is currently on.  Very easy with the Teensy.

In the case below....if the CC is on the right Channel and the Control number is equal to 95, then go Store_Preset routine.  It is not hard at all, once you get everything talking.

void OnControlChange(byte channel, byte control, byte value) {
   
   Set_ledPin_ON();

   if ((channel == CC_Channel) && (control == 95)) {
     Store_Preset();  //If we receive a CC #95, then Store the Outputs to the Current Preset.
   }