Hey, this is my first Arduino project. I have spent the last few weeks reading and watching every Arduino tutorial I could find. I was hoping to get some help on what boards/shields/etc I should need to move forward. Everything that I pull up on the subject is for real time midi controllers. My project will use midi, but it will need to store midi data that can be triggered by one event.
It is for a preset box to be used in between a footswitch that sends PCs and effects pedals that only accept CC's for every control.
Here is my goal:
Midi preset/patch box
It will accept incoming midi PCs. Those incoming PCs will then trigger specific event that will send Midi data out . A similar example of this would be the Midi Solutions Event Processor - MIDI Solutions Event Processor Plus; 32 Event MIDI Event Processor. The event processor only allows for up to 32 settings to be sent at once. I would like to be able to send up to 100 midi messages at once.
The box will have two footswitches that will scroll between banks. There will be a two digit numeric display that will show the current bank. The banks will determine which midi code will be chosen depending on the PC that is received.
For example, the incoming PC messages will always be on CH 1 and will be numbers are 1 through 14. Bank 1 would have 14 presets that could be drawn from it. Bank 2 would have 14 different presets that would still be triggered by CH1 PC 1 through 14. And so on.
It will have an external LCD display. With every preset that is pulled up, I would like to have a name that shows up on the display. The display could also be used to program the midi presets.
I would like to eventually move away from using a computer to program the midi presets and instead have it all included in the preset box. I would program and name every midi channel in Arduino to make it more user friendly. I would use the LCD display to show the data.
For example, if I were to edit Preset 1, I could assign it's incoming trigger as Bank 1 > Ch 1 > PC 1. I could name it as Effect 1. When Effect 1 is triggered by PC 1, CH1 on Bank 1, it would send all of the midi CC data that is programmed into that preset. Instead of programming everything on the preset box as midi data, I would like to make it more user friendly for on the fly programming. For example, my chorus effect will be on Ch 2. If I wanted to adjust the Feedback on the unit, I would need to adjust CC#12(MSB), CC#44(LSB) 0 - 16384. Instead of going in there and entering that specific midi data every time, I would just want it to show go from Chorus > Feedback > Value (-100 through 100) in a menu system.
An perfect example of this all is the Strymon multieffects boxes menu system - TimeLine Multi Delay - Strymon
I would want to be able to dump all preset info into a file to save as a backup.
What to purchase to get started?
Will the Arduino Uno be the best board for this?
What would I use to store all of the midi data that is used? Does the Uno have enough memory or should I use the Arduino to pull up data that is stored in another source?
I've seen many different Midi shields, most designed for controllers. Is there one that will work for me on this project and make my life easier?
Are there any specific parts of this project that will make it more difficult than it needs to be?