Live coding

Michael has built two interrelated live coding systems for audio synthesis: Wax and Facet. Both are free and open source, with a GPL-3.0 license.



Wax

Four Wax devices connected together in the Wax workspace

Wax
is a browser-based audio synthesis environment inspired by Max and other data-flow programming systems. By adding devices to a virtual workspace and connecting them together, you can create custom digital signal processing algorithms. All devices communicate to each other with audio signals, similar to a modular synthesizer.


Facet

the Facet text editor containing a live-coded audio synthesis algorithm

Facet
is an open-source live coding system for algorithmic music and synthesis. With a code editor in the browser and a pair of NodeJS servers running locally on your machine, Facet can generate and sequence audio, MIDI, OSC, and image data.



Web Audio projects

Sojourner Pond Music

A handheld phone displaying the user interface for Sojourner Pond Music, and the remote-controlled miniature boat on which the phone moved around the pond
Web Audio and Geolocation API programming for Sojourner Pond Music, an interactive art installation open to the public. This piece was composed by all members of the University of Michigan Digital Music Ensemble in 2023 and ran from October 24th-28th, 2023, at the pond next to the school of music. The theme focused on connections between Ann Arbor and the Underground Railroad and Abolitionist movements.

From the program notes: "The installation involves utilizing a remote-controlled boat on the Music Pond. We developed a project workflow that treats the pond as a navigational ‘map.’ Within the pond, we’ve designated specific locations such that when the remote control boat passes over them, it activates one of the audio samples from our collection. This approach enables active audience participation, with individuals taking control of the boat, effectively making the audience an integral component of our installation."


XY

The user interface for XY, with various sliders, buttons, and a region for dislaying and clicking on the selected waveform

XY is a 64-voice web sampler with 2D canvas for gestural interaction via mouse or touchscreen. The user can upload any sound or record directly from their phone and create granular abstractions and movements through the sound.