This page contains schematics and code for my Arduino music projects. It also contains a list of resources I have found helpful in learning how to make music with the Arduino.
If you maintain a page that you think would fit in well here, or have found a page that has helped you out with your Arduino music projects, please let me know by sending me an email at rogueclown@rogueclown.net.
My Schematics
Arduino keyboard: This is the single-octave pushbutton keyboard that I used to demonstrate four sketches at Penguicon 8.0. The schematic is in Fritzing format.
My Code
The Most Annoying Arduino Sketch Ever: Arduino sketch to play The Song That Never Ends. This is compatible with the Arduino keyboard circuit, but only needs the speaker attached to pin 10, and not the full pushbutton keyboard.
Sound Dimmer: Arduino sketch that takes bytes from the serial line and maps them to tones. A two-pixel move of the mouse pointer alters the tone by a quarter-tone. This can be controlled by the Sound Dimmer Processing sketch. This is compatible with the Arduino keyboard circuit, but only needs the speaker attached to pin 10, and not the full pushbutton keyboard.
PWM Keyboard: Interface between a thirteen push-button keyboard and a speaker hooked up to an Arduino. A PWM tone between middle C and the C above middle C is mapped to each key. The keyboard is monophonic, and the highest note pressed takes precedence. This is compatible with the Arduino keyboard circuit, and uses the full pushbutton keyboard as well as the speaker.
MIDI Keyboard: MIDI interface to a keyboard made of thirteen pushbuttons. Uses the ardumidi library, a component of the ttymidi USB-to-MIDI interface. Transmits serial data to the computer, and ttymidi converts it to something that a MIDI synthesizer can understand. This is compatible with the Arduino keyboard circuit, but only needs the pushbutton keyboard, and not the speaker attached to pin 10.
Arduino Music Resources
arduino.cc: The official Arduino homepage. Contains documentation about the Arduino hardware, Arduino programming language, and Arduino projects people are working on.
Arduino Tone tutorial: A tutorial on the official Arduino page, teaching how to use the Tone command to make music with pulse width modulation.
Arduino Dimmer tutorial: A tutorial on using the analogWrite() command to control the brightness of an LED based on the mouse's position on an image drawn by a Processing sketch. I based my Sound Dimmer project on this tutorial.
NYU Interactive Telecommunication Program physical computing labs: A set of tutorials for learning basic functions, both musical and non-musical, on the Arduino.
NYU ITP Tone Output lab: A tutorial on using the tone() function to generate PWM tones, with hints on how to start designing instruments.
NYU ITP MIDI Output lab: A tutorial on building a basic MIDI hardware circuit and using the MIDI library to build an Arduino MIDI controller.
ttymidi: The homepage for the ttymidi project. ttymidi is a software library that allows a USB to MIDI interface for arduino on Linux and Mac OS X computers.
Control an iPod with an Arduino: Advice on how to connect an Arduino to an iPod remote, in order to integrate the iPod with Arduino projects.
Daisy .mp3 project page: Homepage for the Daisy, an open-source .mp3 player kit. Includes documentation, hardware specs, and links to buy it as a kit.
Processing.org: The homepage for the Processing language. Processing is an open-source computer language aimed at programming images, animations, and interatctions. Using Processing to make software interfaces to Arduino sketches is very well-documented, and the Processsing language is very similar in form to the Arduino programming language.
Fritzing.org: The homepage for the Fritzing project. Fritzing is a platform for saving physical circuit prototypes, and features a breadboard interface on which you can save your circuit by drawing it out exactly how it looks on your breadboard. It converts the circuit automatically to a schematic form as well, and can also be used to design printed circuit boards for fabrication.

