Shelf
Shelf is my submission to the 2023 Guthman Musical Instrument competition. It builds off a generative track I created as my final project for Music 158A "Sound and Music Computing with CNMAT Technologies." Shelf is a hardware interface for shaping sounds that I synthesized in Max/MSP.
Overview
Shelf is a musical instrument built into a piece of furniture. The user plays the instrument through touch and by repositioning the instrument’s components, creating ever-evolving, playful music. Shelf aims to make musical expression more accessible by sowing delight in the everyday.
Design
Using Shelf requires familiar gestures that evoke the way we listen to music with drifting attention. We shift our focus to different voices as songs progress. Similarly, Shelf lets you literally pull out and hide away voices by pulling and pushing its drawers and door. A system of constraints creates a more playful experience for the user. Touching handles simultaneously controls the tempo and tapping a handle controls timbre. While working through maneuvering the physical components to accomplish a goal, like changing these parameters, there’s room for new sounds and patterns to emerge in the meantime.
Engineering
I built Shelf into a shelving unit with minimal modification, maintaining the overall structure and functionality of the furniture. Three ultrasound sensors measure drawer and door distances and three capacitive touch sensors are wired to the conductive drawer handles. I used stranded wires to ensure that the wiring won’t wear down around the moving drawer parts.  All the sensors run off of a microcontroller placed inside one of the shelf compartments, which communicates with my laptop over a serial port. My laptop runs a music engine that plays to an external speaker.
Music
The sounds you hear are synthesized in Max/MSP using Karplus-Strong, and the engine combines generative elements with user-controlled parameters. For example, the user can slow down the tempo by touching handles simultaneously. The melody is semi-randomly generated by sampling an LFO and interpolating to the notes of a scale or chord. The user controls the LFO frequency by opening the door, but the scale/chord randomly changes. The upper voice is fed through two delay lines in sequence, and the user controls the gain on each line by touching the handles.
To view the Max/MSP patches that drive shelf, see the project Github repository.