Hey guys, I'm new to Arduino and am hoping for some guidance on this project.
Starting off is a bit overwhelming. I've gone through the Arduino Project Book that comes with the starter kit. I understand the process and what certain things do, but I haven't quite fully grasped the language. I do have plenty of experience building analog electronics. I've built over 100 guitar effects pedals, lots of high end studio gear, some guitar amps, and quite a few other things. Most of which were clones of circuits that were already designed.
I really want to learn how to do this stuff, so I'm not looking for somebody to do the work for me. Mostly, I'm hoping for somebody to help me make the right choices for this. This will explain why I am writing out each step of my thought process in pretty thorough detail.
Here is the project goal:
Midi Proccessor
A device that will send at least 65 midi messages out on at least 6 different channels.
Batch midi messages will be triggered by an incoming PM or by a footswitch.
Each midi batch will be stored in a bank. I will need at least 30 banks.
It will include an LCD display with a menu system.
I'll be using a rotary encoder to navigate the menu system.
I don't need to edit the menu system externally, but will need to be able to change predefined parameters.
I am planning on writing ever saved option from the menu to a text file on an SD card. This will enable me to make copies and quickly edit on a computer.
Here is a basic mockup of what it will look like:
For this project, I know I'll need the following hardware:
1 x Arduino Due
1 x LCD display (would prefer to eventually use 14-segment for readability, but I have 16 x 2 that came with the kit)
1 x Rotary encoder
3 x SPST momentary footswitches
2 x midi jacks
1 x SD card pcb
I'm unsure of exactly how many ins and outs I'll need from my Arduino.
I think I need the following digital ins and outs:
LCD Display - 6 digital
Rotary Encoder - 3 digital
Foot switches - 3 digital
Midi In/Out - 2 digital
SD Card - 4 digital
So, this gives me a total of 18 digital ins/outs needed. This leads me to believe it will be out of the Uno's scope and that I should look to use the Due.
For the code I am planning on calling up the following libraries:
Arduino Midi
Menu
LiquidCrystal
SD
The following is an example of the menu system: (This is just for one of the 7 effects that I need to control. Also, I'm not sure if 14-bit is necessary for this application)
MF-104MSD-L (Channel 1)
- Output Level
- 0-10 (CC 7(MSB), 39(LSB)) - 14-bit
- Time
- I would love to figure out a way to display MS (needs to edit CC 12(MSB), 39(LSB)) - 14-bit
- Feedback
- 0-10 (CC 13(MSB), 44(LSB)) - 14-bit 0-16383
- Mix
- 0-10 (CC 14(MSB), 46(LSB)) - 14-bit 0-16383
- LFO Rate
- .05-50 (CC 15(MSB), 47(LSB) - 14-bit 0-16383
- LFO Amount
- 0-10 (CC 16(MSB), 48(LSB) - 14-bit 0-16383
- LFO Waveform (CC#102) 7-bit 0-127
- Sine (0)
- Triangle (16)
- Square (32)
- Saw (48)
- Ramp (64)
- S&H (80)
- Smooth S&H (96)
- Range Switch (CC#86)
- Slow (0)
- Fast (64)
- Bypass Switch
- On (127)
- Off (0)
- Time Slew Rate
- 0-10 (CC 5(MSB), 37(LSB)) 14-bit 0-16383
- Filter Bright/Dark (CC#83)
- Bright (0)
- Dark (64)
- Delay Time Multiplier (CC#87)
- Normal (0)
- X2 (32)
- X4 (64)
- X8 (96)
- LFO Phase Reset (CC#105)
- Yes (Any value)
- No (Send nothing)
- LFO Clock Divisions
- Midi Note Spillover
- Midi Note Mode
Well, that's about all I have for today. I'll start compiling a basic list of the coding that I think I should use to accomplish this soon. If you have any input for me, please let me know!