More selected projects

2-5-1 Machine

The 2-5-1 Machine is a toy-like, sequence-based musical instrument aimed to help teach children some of the fundamentals of music theory.

produced by: Laurie Carter


Before starting this project, I was inspired by the Buddha Machine; a musical instrument created by the Chinese duo, FM3. The Buddha Machine is a device pre-loaded with a series of loops that once switched on, plays through sequences in a random order, never repeating itself. The instrument is of minimal design and comes in various bright, toy-like colours and is strangely popular given its limited opportunity for interaction.

When I was a child I was taught the fundamentals of music theory in a very individualistic and academic way. This made me resent it and it was only much later, as I studied a greater variety of musical styles, that I began to become interested in the underlying theories behind much of western music. As a teenager I studied African percussion and I was struck at how differently it was taught compared to my earlier classical studies. It was all group-based and rather than the aim being to display virtuosic skill, the emphasis was on listening to one another, having a musical dialogue and the quality of the sound that could be created as a unit.

The Machine

The 2-5-1 Machine is a simple device with three buttons that can be pressed and three potentiometers that can be turned. Inside the unit, an Arduino Uno controls the instrument and a small speaker omits sound once one of the three buttons is pressed and held down. A sequence is played each time one of the buttons is pressed causing various notes to be heard, looping through an array within the code in the Arduino. Each button loops through a separate array containing specific notes that correspond to different chords within the key of C; the second chord, the fifth chord and the first chord - hence the name, 2-5-1. This is a very powerful chord sequence which can be heard in countless pieces of music across many different genres of Western music. It is the relationship between chords rather than the notes themselves which, through listening rather than reading, I hope my machine will help children to understand. If a number of these machines were created, each with a different chord sequence / cadence, children could play many different pieces as a group, communicating and listening to one another without worrying about physical, technical constraints. This in no way is supposed to challenge the dedication required in mastering an instrument as a performer, but rather offer a more engaging way for young children to be exposed to the magic of music theory rather than seeing it as a burden.


The circuit is a simple one, consisting of three buttons with resistors, three potentiometers and a piezo. I separated each set of components onto an individual circuit board for ease of placement once I had fabricated the unit that would house the electronics. Power and Ground are sent out of the Arduino and into the first board to connect the three buttons. Data from the buttons (off or on) is sent back from the board to the Arduino, into ports 2, 3 and 4. Power and Ground is then sent out and into the second board where the three potentiometers are connected. Data from these need to be connected to the analog pins of the Arduino so they are sent to A0, A1 and A2 to then be mapped within the code to more usable value ranges. Finally, Ground is sent to the final board where a piezo is connected along with receiving data from pin 8 of the Arduino.

The code

My code was inspired by the Tone Melody tutorial on the Arduino website

Each time one of buttons is pressed down, one of three arrays of notes is randomly looped through and continues to loop until the button is let go. However, each potentiometer is mapped to affect different values controlling the array so that interesting surprises can occur. The first potentiometer controls the amount that the note length is divided by, in essence affecting the perceived speed that the sequence plays. The second potentiometer changes the amount of steps of the array that are looped through. Therefore, if the potentiometer is turned all the way to the left, only the first note of the array will be repeated whereas if it is turned all the way to the right, each note within the array will be heard in a random order. The final potentiometer sends data to the Arduino which is then used to affect the pauses (or rests) between each note. However, this is then multiplied by a random amount meaning that the more the potentiometer is turned, the greater the randomness in value creating interesting rhythmical variations in the sound.



Taking my cue from the Buddha Machine, I wanted to create a simple, colourful box but with large components that children would want to press and turn. The machine is about discovery so the design is intentionally minimal, not giving any instructions as to what component does what. The idea is for the user to listen as they play and to figure out the relationship between the notes as they go. I used acrylic because of the vibrant colour it offered along with its sturdiness. I used for the box and then TinkerCad so that I could accurately laser-cut the holes needed for the buttons, potentiometers and a grid for the sound from the piezo to escape.


  • gallery-image
  • gallery-image
  • gallery-image
  • gallery-image