Introduction: Arduino Dubstep Piano Keyboard

As a musician, I am constantly writing music. Part of my creative process involves playing melodies or chord patterns on my guitar or piano so that I can further develop them and (hopefully) turn them into songs. I already have a backpack guitar which I take with me on trips and such; what does not exist however is a backpack piano.
The dubstep backpack piano has 12 pushbuttons, which will represent keys on a piano, connected to the breadboard.
When one presses down on one of the designated buttons, a corresponding note will be emitted from the audio box. When more than one buttons is pressed at a time, the sound that will be heard from the audio box will be a constant alternation between the two or more notes (quite a dub step-like horrendous sound).

I have recorded a demonstration video for reference:

I have also recorded a video which serves as a complete run through of each step of the piano's assembly: 

Step 1: Materials List

For the dubstep piano keyboard, you will need:

- 1 DBX-05PN audio box

- 12 10k-ohm pulldown resistors 

- 12 pushbuttons 

- 28 stranded 22AWG jumper wires with solid tips

- 25 non-bendy shorter wires

- 1 UNO arduino

- 1 smaller breadboard

- 1 larger breadboard

- 1 battery box (1 9V battery inside of it) w/ connector to Arduino

Step 2: Connecting Wires From Arduino Board to Breadboard 1

1. The first step involves attaching one end of each 12 stranded 22AWG jump wires with solid tips into digital pins 3 through 13 and 1.

2. Next, the other end of each stranded 22AWG jump wires with solid tips will be plugged into Breadboard 1. Be sure to keep each wire parallel to all other wires (i.e. no overlapping/crossing wires) and be sure each wire has 1 breadboard hole between itself and the wire on either side of it.

Step 3: Connecting Wires From Breadboard 1 to Breadboard 2

1. Plug in 12 additional wires into Breadboard 1. Each wire should be lined up in the same row as the first 12 Breadboard 1 wires.

2. Connect the 12 additional Breadboard 1 wires (referenced above in top-most picture) to Breadboard 2 (see pictures 2 and 3).

Step 4: Installing Non-bendy Wires, 10k-ohm Resistors, and Pushbuttons

(repeat steps below 12 times)

1. Attach one end of non-bendy wire to same row as jumper wire (see picture top-most picture).

2. (See picture 2 for reference): Arrange pushbuttons as shown below. Make sure that each button is spaced two breadboard holes apart. Also, be sure that each sharp-note button (see tag above) has its two pegs closest to the positive line bent in before attaching sharp-note pushbuttons to Breadboard 2 so that there is space (a hole) in each row for one side of the 10k-ohm pulldown resistor to be attached. Also, make sure that pushbuttons are properly oriented. Pegs 1 and 3 or 2 and 4 are (as a pair) closest to the positive line. Otherwise, if rotated 90 degrees, the pushbuttons will not work.

3. Attach other end of non-bendy wire to other side of Breadboard 2. Be sure that it is in the same row as one side of the pushbutton. 

4. Attach other non-bendy wire to the other end of the pushbutton. Be sure that it is in the same row as the pushbutton. Connect other end of wire to the positive line (the red line).

5. Attach one end of 10k-ohm pulldown resistor into same row as pushbutton and the other end into the ground line. 

Step 5: Breadboard 2 Positive Line and Ground Line to Breadboard 1 +5V Pin and Ground Pin, Respectively

1.  Plug in wire from Breadboard 2 positive line (red line) to the Arduino +5V pin.

2.  Plug in wire from Breadboard 2 ground line (blue line) to the Breadboard 1 ground line.

3.  Then connect new wire from Breadboard 1 ground line into the Arduino ground line. (see second picture)

Step 6: Setup Audio Box

(Reference pictures above)

1. Install audio box onto Breadboard 1. Be sure that the long peg is plugged into the same row (row 1) as the wire going to digital output pin 2. Be sure that the short peg is plugged into the same row (row 4) as the wire that connects to Breadboard 1's ground line.

2. Connect battery box to Arduino battery input. 

Step 7: Download Code Into Arduino

1. Download code from .zip file below.

2. Once code is successfully downloaded, remove the USB cable (this allows digital pin 1 to be used as a normal digital pin input ).

3. Turn on battery box and enjoy playing with your Dubstep Piano Keyboard!