Co-Wave

Each person has a different heartbeat, which creates a different life tempo and living behavior. Our synthesis "Co-Wave" uses dual heartbeat sensors to track the heartbeats of two participants and tries to find a common rhythm as a co-composition from each other. What will it sound like if we share and emerge from differences to become a united one?

Co-Wave was created over the course of 3 days as a submission to the Synth Design Hackathon 2023 by myself, Olifa Hsieh, and Ryan Millett. My major contribution to the project was all Arduino and sensor programming to gather incoming heartbeat data and connect it to a Max patch in order to generate realtime music.

Each person places a finger on one of two sensors embedded in a board. A resonant "ping" sounds at their current heart rate to indicate that the sensor is reading their data. Heartbeat data is represented in two forms: BPM (discrete) and IR level (continuous). Heart rate BPM sets a Max "metro" object that generates a set of impulse profiles (a "click~" and a "noise~") to drive their associated synths. This generates a regular pulse in sync with the participant's heartbeat which powers a synth patch consisting of a modified Karplus Strong and a step sequencer that loops over 8-beat patterns (a "byte"). Because each participant's heart rate is unique, the resultant effect is that of a constantly changing polyrhythm, blending the two rhythms into one. IR levels modulate various synth parameters including the feedback/damper on the Karplus Strong synth and the coefficients of a nonlinear all-pass filter. This data is scaled in various ways to better map the range of each synth parameter. Each participant's heartbeat data modulates their associated synth parameters, as well as some parameters of their partner's synth, creating an entangled polyrhythmic system that is synced to their heartbeats. The output from both synth patches is combined in a central reverb unit and routed to the DAC, creating a blended, unified sound.