Ringtone Jukebox

Ringtone Jukebox is a project for the Arduino Development Environment. It consists of a project for the Arduino IDE that plays RTTTL ringtones, and a project for the Processing IDE that draws graphical representations of the notes that make up a ringtone. As a ringtone is played by the Arduino board, information describing each note is transmitted through the serial device to a computer running the Processing application. Here is a video demonstration, showcasing the Arduino ringtone player and the Processing ringtone visualizer:

Sixteen pre-programmed ringtones are stored on the Arduino, with support for loading a user specified ringtone into the Arduino's EEPROM. The user specified ringtone is received through the Serial device.

Three buttons connected to the Arduino control the playing of ringtones. Two of the buttons are used to cycle through the ringtones in the jukebox, one to select the next ringtone in the jukebox and one to select the previous ringtone in the jukebox. The third button toggles the playing of the current ringtone. A LED blinks along with the ringtone while it is playing, and information for each note is written to the Serial device as it is played. This illustration, made with the Fritzing project documentation software,  shows how the components are connected to the Arduino from a breadboard:

Ringtone Jukebox Breadboard Layout

When building this project, I used this ProtoShield from SparkFun Electronics in place of a traditional breadboard:

Ringtone Jukebox

A program written with the Processing programming language receives information describing each note of a ringtone from the Arduino board for visualization as the ringtone is played. When idle, the Processing program displays a ring of darkly colored circles. The ring of circles is intended to simulate a ring of lights. When information describing a note is received from the Arduino, a circle associated with the note is temporarily redrawn with a brighter color for a duration determined by the duration of the note, making the circle appear to blink. The name of the current ringtone is also displayed in the upper left hand corner of the program's window.

User specified ringtones can be transmitted to the Arduino board with the Processing program. Pressing the space bar will display a dialogbox to which an RTTTL ringtone can be entered. A database of RTTTL ringtones can be found here.

The Processing program is also capable of recording video. Video recording is toggled with the Enter key.

Building Your Own Ringtone Jukebox

Source code for the Arduino IDE and schematics for the Fritzing project documentation software to help you build your own Ringtone Jukebox for Arduino are freely available, distributed under the terms of the open source MIT License.  You can find all of the relevant files in my Arduino projects repository hosted by GitHub: