Patches & Code



"Alto" is the total hardware and software substrate of the alto.glove, consisting of an ever-growing and evolving suite of interconnected and individually-compiled applications that generate sonic responses according to multivalent layers of first- and second-order processing and metaphorical feature extraction. These processes produce multiple classes of temporally varying metrics at micro-, meso-, and macroscopic scales. Novel metrics are produced by combining multiple features, such as comparing and selecting the greater of two values, e.g., stroke "duration" and stroke "intensity." Segmentation is achieved by parsing zero-crossings of the gyroscopic z-axis for changes in bow direction and crossings of the gyroscopic x-axis for changes in string position. Other features are left in a more raw or "under-interpreted" state, and most features can (and do) spill beyond their anticipated input limits, adding additional richness and unexpected depth to the system during real performance. Performance programs are written in XML files that store spatial states, DSP states, amplitudes, and input thresholds.

String Processing in Max for Live

Arvo and Holst are Max for Live patches designed to process string instrument sounds. "Holst" gets its name from its "planetary" implication: a spectrally frozen sound emerges from the center of the stereo field, then passes left or right, going through several effects transitions. "Arvo" can be reminiscent of the compositional procedures of Arvo Pärt when playing modal scales into its recored buffer. 16 individual loops are initiated by a noise gate threshold; each loop is played back with a unique set of effects according to an assigned pitch-shift value.

 Listen to the clip from "Tacna Two" for examples of Arvo-based processing.

Listen to the clip from "Tacna Two" for examples of Arvo-based processing.

 Listen to the clip from "Tacna Four" for examples of Holst-based processing.

Listen to the clip from "Tacna Four" for examples of Holst-based processing.

Screen Shot 2018-02-14 at 12.57.32 PM.png


A quadraphonic networked game for four player-performers. Sounds enter into causal relations with the others at the quadrophonic nodes, functioning as interactive stereo fields. Independently of the network, the patch works as a unique symthesis tool. Players can utilize this feature to exclude themselves from the game, temporarily disrupting the network triggers. In this mode, an individual node becomes recursive and self-contained, rather than passing its output to the next player.

In addition to the sonic features, Marbles implements a local chat room features that might be used among the players to coordinate their actions during performance. The chat room does not report the name or position of the player, however, and this anonymizing layer adds additional indeterminacy as a subtext to the performance.

With Bridget Feral, Caroline Park, and Asha Tamirisa. Performed at Wesleyan University, September, 2013.



Thema is a four-channel looping station that produces complex, pseudo-automated signal processing of live sampled input. The processes are built on four loops that are too extended to be granular, but too contracted to be gesturally significant. Thema works in the liminal space between the synchronic or atemporal aspect of sound, and its diachronic unfolding in and as time.


Dahinsterstehend is an interactive program-piece. The interface provides a simple countdown rule to the performer that generates the compositional structure by determining the progression of the soundworlds. The patch quantifies the gestures of the performer and uses this data to modulate a set of sounds. The sound material has only a minimal correspondence with each of the pads. The rules that it follows are opaque to the audience and, to a lesser extent, to the performer as well.

First Performed by Fred Kennedy @ Grant Recital Hall, Brown University.

Performed by Vanessa Tomlinson @ ICMC 2013, Perth, Western Australia.