New to arduino, need help on MIDI system design

Hello, I am completely new to the Arduino stuff, so I am in need of some advice. I am trying to design a system that will control my guitar setup via MIDI. It will comprise of a footswitch controller, a rackmount unit(that I want to control), and a purchased Line6 Echo Pro (that i want to control). Due to my inputs and outputs that I want, I am under the impression I should purchase a Arduino Mega 2560 R3 and a Uno?

*If I purchased a Mega and an Uno would I be able to accomplish what my requirements are or should I buy 2 Megas?

*What is the difference between the “Arduino Uno- R3” and “Arduino Uno - R3 SMD”??

*Are 7 segment LED Displays easier to read than LCD’s?

*Are serial 7 segment LED displays easier to control and use less pins?

*Do you have to use the “TX” pin on the arduino to communicate with a serial 7 segment LED display? (if so, then shouldnt I purchase 2 Arduino Megas because I will need to use another TX pin for MIDI OUT?)

My system requirements:

Footswitch Controller(use Arduino Mega?):

*9 momentary button inputs

*6 LED outputs

*Bright, very easy to read display of some sort that will display ATLEAST numbers 1-99

*MIDI Presets store/recall

*Send out MIDI “CC” and “PC” messages

*Low Latency preset switching

*Run on 9V

*Store presets by pushing “program” button and push buttons (with LED) to whatever combination and hit “program” again to save for that preset to be recalled later.

Rackmount MIDI Relay Controller(use Arduino Uno?):

*5 momentary button inputs

*5 LED outputs

*Bright, very easy to read display of some sort that will display ATLEAST numbers 1-99

*MIDI Presets store/recall

*Low Latency preset switching

*Operate 4 relays to control a guitar amplifier (for channel switching, etc)

*Store presets by pushing “program” button, push buttons 1-4 to select what relays you want to trigger for that preset, then hit “program” again to save preset.

Thanks for any advice you could provide me. I have been reading online for hours about how I should implement this system and I’m still pretty lost haha…

http://i.imgur.com/YDP8GFb.png

bump? :whistle:

axeman713:
*If I purchased a Mega and an Uno would I be able to accomplish what my requirements are or should I buy 2 Megas?

I don't know enough about MIDI to give you a good answer.

axeman713:
*What is the difference between the “Arduino Uno- R3” and “Arduino Uno - R3 SMD”??

There’s no functional difference at all. One has a DIP version of the Atmega328 MCU, the other is a surface mount version.

axeman713:
*Are 7 segment LED Displays easier to read than LCD’s?

It depends on the particular display and the lighting. One question to ask yourself if how big do you need the digits to be ? Is it going to be outside in the sunlight ? How much information do you want to be displayed at any one time ?

axeman713:
*Are serial 7 segment LED displays easier to control and use less pins?

In both cases you’ll probably want a driver IC to to the actual interface to the display. Given that you can find parallel and serial interfaces from the MCU (Arduino) to the display IC, it’s your choice. Obviously serial interfaces use less pins but will cost more as they will have an embedded processor to the to serial to parallel translation.

axeman713:
*Do you have to use the “TX” pin on the arduino to communicate with a serial 7 segment LED display?

(if so, then shouldnt I purchase 2 Arduino Megas because I will need to use another TX pin for MIDI OUT?)

The Tx (transmit out) and Rx (receive in) are used for serial communications btw 2 devices. In an Arduino Uno, those pins are shared with the IC that translates the USB traffic into the serial traffic the MCU can handle. So with an Uno you have to be careful when sharing them. A Mega has 4 UARTS (the internal circuitry that handles the details of the serial comm); 1 UART (aka serial port) does the USB comm, the other 3 are free. Now you can use software to do the same function that the hardware UART does but that software takes up clock cycles that might be needed elsewhere.

The thing to do is figure what tasks are going to be done and in what time are they required to be done in. Put another way when a MIDI message comes in, is there a time limit on the action that’s supposed to occur as a result of that message ? If you’ve got a lot of messages coming in and going out, it might be worth the $$s to get the Mega.

For example :

Just reading the reqs you have for the foot switch controller … my thought goes more towards and Uno than a Mega. My guess is your concern is all the I/O pins needed but I’d give consideration to using some other hardware to do that. For example a shift register, one that can drive LEDs directly, could be used to drive the 9 LEDs … which I presume are to indicate which button was pressed and active. So 6 pins becomes 2. The 9 input buttons can be multiplexed and so 9 becomes 6 (and maybe less if I think about it). You only need 1 serial output so 1 UART (or even software emulation) should be OK. So it comes down to what you need/want for a numeric display and perhaps how many “presets” you have. I get the idea that some number of messages (= presets ?) are to be stored in the Arduino and then sent out depending on the user input. Each of those presets will take up some memory space and so that may become a driving issue. Or not, 100 messages, each of 1 byte in length … not likely to become a problem. 100 messages of 100 bytes … time to be concerned.