MIDI (Musical Instrument Digital Interface) is a means for electronic instruments to communicate among themselves. We can use the Arduino to control an electronic instrument like a electric piano, synthesizer or drum machine through MIDI. Likewise, the reverse is also true, an electric keyboad can be used to send commands to Arduino that can be used in any way imagianable (lights, sound, motors, fireworks, lasers,...).
- MIDI is a serial protocol.
- everything is sent in binary. (you can use the "byte" command to send decimal in binary)
- first byte is a command. the first four bits comprise the command and the next four bit address the MIDI channel
- Commands begin with a 1 bit. Data begin with 0 bit.
- You can use not on with 0 velocity to turn the note off instead of note off.
- There is a midi library to make things easier.
|4bit code &||Command||Data 1||Data 2 (if applicable)|
|1000 0000||note off||note (0-127)||velocity (0-127)|
|1001 0000||note on||note||velocity|
|1011 0000||continuous controller||controller #||controller value|
|1100 0000||patch change||instrument #|
|1101 0000||channel pressure||pressure|
|1110 0000||pitch bend||lsb (7bits)||msb(7bits)|
|1111 0000||non-musical commands|
MIDI 5 pin din wired different depending on whether it is in,out or through.
- two pins are not used at all. farthest pin on both sides.
- use only one ground (out)
- for receiving need an opt isolator
- This is a good instructable on getting MIDI working with Arduino. (includes: schematics, MIDI protocol, and sketches.
- laser harp- what better way to play a laser harp than with real harp samples.
- air harp-Would be using that pitch bend command a lot.
- hand bells - a keyboard could trigger the corresponding handbell.
- Keyboard event controller - Waiting for the C# to launch that rocket.
- Arduino sythesizer - using tone library or pmw and some circuits.
- MIDI manipulator- What goes in doesn't have to go out the same way it came in.