Using a standard Arduino single-board computer and a "shield" board, this project creates a MIDI sequencer that can record and play back sequences of MIDI notes.  It is similar to old-school sequencers in that the sequence is monophonic (one note at a time), and with each step in the sequence plays for one beat of the tempo.  Note that the sequencer doesn't make any sound itself; it generates a MIDI stream that can play a MIDI keyboard, a MIDI sound module or even a virtual instrument hosted on a computer.

You can see a short demo below.  I talk for a bit at the beginning, but hang in there, I do two demos of it.
The project consists of two commercially produced circuit boards.  The single-board computer (blue in the picture) can be purchased online for about $30, and comes fully assembled.  The "shield" board (red in the picture) comes partially assembled, but you will have to solder the pushbuttons, connectors and potentiometers (knobs).  It runs about $20 online.

What You Need For This Project
1 Arduino Uno or similar Arduino single-board computer
1 SparkFun MIDI Shield
1 Strip of 40 straight break-away headers with 0.1" spacing
A soldering iron with solder
Wire clippers
A computer (PC/Mac/Linux) with free Arduino software installed
A USB cable appropriate to connect the computer to your Arduino

Other Stuff Needed to Use the Sequencer
1 AC adapter for Arduino
2 5-pin DIN MIDI cables
1 MIDI keyboard or sound module
Speakers or headphones to listen

Arduino and AC adapter:

MIDI Shield and headers:

f you are in a hurry to get started, many Radio Shacks also carry Arduinos.

Step 1: Solder Components Onto the MIDI Shield

The MIDI Shield comes only partly assembled.  You will need to solder the 2 5-pin DIN MIDI connectors, 3 pushbuttons and 2 potentiometers (knobs) onto the circuit board, but the tricky parts have already been soldered for you. 

Follow the instructions that come with the MIDI Shield.  Make sure the components are all on the right side of the board (the same side as the IC chip), and are pushed in to be flush with the board surface.  After you finish soldering, I recommend you reflow each of your solder junctions by holding the soldering iron against it for 2-3 seconds.

Note: The header pins along the edges of the board are soldered in the next step.

<p>Hi </p><p>First off nice sequencer! I am having some problems recording. I have the switch set to run, The red light comes on and I play some notes then click the record again to play the sequencer but it dose not work for me. Any help to get the record working would be awesome. Cheers!</p><p>Jason H</p>
<p>Vance</p><p>Sorry to disturb you again</p><p>Before recording from piano to sequencer, have i to choose a channel, a track...on the piano? </p><p>I think i must try with another midi generator, isn't?</p><p>thank you for your job</p><p>rud</p>
<p>Can you help me, please</p><p>I can't record midi with this sequencer. The red light is on when i pressed the button record</p><p> if i pressed again, the red light is off, the green on and the old music is playing without recording the new notes i did with my piano yamaha</p><p>thank you</p><p>rudvan too old to understand</p>
This is normally caused when you do not flip the switch on the MIDI shield from the &quot;Prog&quot; position to the &quot;Run&quot; position. It must be in the &quot;Prog&quot; position when you download programs via USB, but it must be in the &quot;Run&quot; position when you want the Arduino to be able to see the MIDI input.
<p>Thank you but i did it and i am asking if:</p><p>- something else with channel of piano failed</p><p>- bug in pgrm (?) i don't believe</p><p>sorry for my english</p><p>rudvan</p>
<p>It appears that the new version(2.1) of the Time library will work. So you should find the latest build-fork. You need to change the name still.</p>
<p><a href="https://github.com/JChristensen/Timer/tree/v2.1" rel="nofollow">https://github.com/JChristensen/Timer/tree/v2.1 </a> </p><p>Here is the link to the 2.1 branch. Just change the name as vanakaru said.</p>
<p>I pursue the links and I found a Timer-Master library which (after rename to match the Arduino Standards) seems to have some lost functions (as console puked me&hellip;)</p><p>So&hellip; Any hint to solve it? Broken Links?</p><p>thanks!</p>

About This Instructable




Bio: If you enjoyed some of my projects, please take a moment an listen to some of Gekko Projekt's music. I play keyboards and write ... More »
More by vanceg:DIY 6-Button Silicone Rubber Keypad Cell Phone Bike Cradle for Galaxy S Series Stop Making Fuzzy 3D Prints! 
Add instructable to: