220A Final Project
Richard Lee, 12/04/2023

Butterfly Effect Synthualizer

For my final project, I wanted to explore the synergy between feedback, physical interaction, and dynamical systems. As such, I sought to construct a system that was a convergence of these different but overlapping worlds: to have some device that allows control over feedback, but also sounds inherently dynamic.

In a more metaphorical or philsophical context, perhaps I got inculcated in a dynamical system, because I got quite lucky with this project coming together! Initially, I started toying with microcontrollers and sensors (shown below), attempting to use ChucK's serial commications for direct control. However, this proved to be difficult with mapping device inputs, specifically in drawing from the microcontroller's bytes to the ChucK terminal compiler. Alternatively, OSC control and MIDI input are viable options, but seem to require additional, working functions, such as a router or USB-MIDI firmware, respectively. So - I actually got really lucky, as Nette handed down an old monitor and speaker system (picked to the bottom right), Terry helped with setting up WebChucK HID, and I found some fun controllers in the Max Lab.

Resultingly, I deconstructed the speaker system and monitor, combining them to make an audio/visual system. As the speaker was unable to handle large gain values, I decided to mod a set of headphones to amplify signals through USB C. The interactive mechanism behind this was to allow users to have control over their visualizer (displayed on the monitor), making way for what I feel is like a TV Theremin. Then, ChucK code was compiled with HID WebChucK functionality to take in keyboard and mouse input to modulate the audio concurrently (or impulsively). The ChucK code includes a typical synthesis using HID inputs as a delta, as well as a method that makes impulses with feedback to create chaotic feedback due to convolution of a short-time IIR filter. Please turn down the gain and enjoy!
Code for WebChucK
Further, here are the files for the audiovisualizer that was displayed on the screen, utilizing several concurrent FFTs in a star shape. This code relies on use of ChuGL.
Code for ChuGL