Group: Benjamin Mills, Joshua Caron, Matt Adam, William Abraham, Lucca Chantre.
MU 2801 Final Project: 2021 A-Term
Description
Our musical machine is The Brown Box. It is a machine that is able to use a drum pad and incoming MIDI notes to play a beat. The Brown Box takes in MIDI notes from Logic Pro and then converts them to bytes using Max MSP that are passed to the Arduino. The Arduino then activates the solenoids attached to the drum pad in the rhythm conveyed through the MIDI file’s information and presses down the drum pad to create the desired musical piece. Due to the structure of the machine and the innate on-times of the solenoids, the resulting piece possesses naturally generated expressive timing, which is something we aimed to accomplish so the piece would not be as rigid or robotic as it might be otherwise.
Design Process
Firstly, we found a schematic (Image 1) to ensure that our idea was electronically possible with the materials we know how to use.
Next, we came up with a design to place on top of a MIDI drum pad. Before arriving at our final design, we drew out our ideas on paper and discussed the possibilities. The Z-Machine’s solenoid array on the guitar neck was a fascinating design that influenced our choice, as can be seen below.
Luckily, lab five covered some of the programming knowledge necessary to make this machine work. The main challenge coding was corresponding analogWrite() to proper velocities in the MIDI byte. Once achieved, we could send a stream of MIDI notes with different velocities from Logic Pro X to Max MSP which would use serial communication to send to the Arduino. This way, we could control how hard the solenoids play the MIDI drum pads. The Brown Box was on its way to becoming a reality.
Finally, we created the machine. There were some challenges that needed to be overcome during its creation, but it serves the purpose we originally set out to accomplish and can perform musically for an audience as shown in the demonstration. Presenting: The Brown Box.
Future Developments
- Improve range of velocities using more powerful solenoids.
- Improve structure: enable viewing of solenoids striking the drum pads for visual entertainment aspect.
- Implement polyrhythms using binary encoding for individual solenoid actuation.