Software Projects
Vibrato Transfer
This plug-in analyzes a sidechain signal for vibrato and transfers the frequency and amplitude modulation to an incoming signal in real-time. It can be used as a creative tool to add modulation to a synthesized sound, match the vibrato of two signals, or for more experimental compositions pitch and volume changes are controlled by external signals.
The algorithms and technology are outlined in two original research papers (see my research page). The code is available on Github.
![]()
The algorithms and technology are outlined in two original research papers (see my research page). The code is available on Github.

Audio Bashing
Two implementations of the frequency bashing and amplitude whacking algorithms (see my research page) are available. The first, implemented in Python, works offline and is intended to control the roughness of multiple audio signals that are combined in a mix. The second is a collection of Max externals that operate on additive synthesis parameters and can be used to control the roughness of an additive synthesizer in real-time.
The code for each project is available on Github (offline and real-time).
![]()
The code for each project is available on Github (offline and real-time).

WaVAEtable Synthesis
This software allows you to take your favorite timbral autoencoder (autoencoders that generate spectrums) and turn them into wavetable generators for use in Max/MSP or SuperCollider. The software includes a basic pre-trained model and instructions for using the CANNe synthesizer (see Network Modulation Synthesis below). With light changes to a python script, you can use other models as well!
The methodology was presented at CMMR 2021. The code is available on Github.
![]()
The methodology was presented at CMMR 2021. The code is available on Github.

Network Modulation Synthesis
As part of my thesis work, I created compositional algorithms for autoencoder neural networks. The algorithms were implemented in a software package using the CANNe autoencoder (Joseph Colonel et al., DAFx 2018) as the base model.
The network modulation synthesis framework involves building up generative synthesis trees using the autoencoder network and generating multiple channels of related audio by altering each node’s encoding, feedback amount and feedback type. On top of traditional DSP-style feedback, a predictive feedback algorithm can be used, inspired by the Dreaming algorithm for LSTMs (Pfalz et al., ICMC 2018).
This work is being presented at ICMC 2021, check out the paper in the 2020 Selection (or here’s a direct link). You can find the code on Github, and additional audio examples here. And see my Compositions page for three compositions created using these methods!
The network modulation synthesis framework involves building up generative synthesis trees using the autoencoder network and generating multiple channels of related audio by altering each node’s encoding, feedback amount and feedback type. On top of traditional DSP-style feedback, a predictive feedback algorithm can be used, inspired by the Dreaming algorithm for LSTMs (Pfalz et al., ICMC 2018).
This work is being presented at ICMC 2021, check out the paper in the 2020 Selection (or here’s a direct link). You can find the code on Github, and additional audio examples here. And see my Compositions page for three compositions created using these methods!

This command line tool allows you to interpolate (or extrapolate) two audio sources. The algorithm implements a very crude sinusoidal synthesis model, and also uses the very cool Audio Transport algorithm. The GUI and visualizations were created using the Allolib library (special thanks to Karl Yerkes for creating the envelope drawing tool). Useful for sound exploration, composition, or just having hours of fun. The code is available on Github.
![]()

Audio Effects for the OWL Guitar Pedal
As part of a Digital Signal Processing course, I created several implementations of guitar effects for the open source OWL Pedal.
The effects can be found on my author page for Rebel Technology. All effects were created using C++ or gen (a component of Max). Have fun with this effect in particular, which you may find amusing and not particularly useful.
![]()
The effects can be found on my author page for Rebel Technology. All effects were created using C++ or gen (a component of Max). Have fun with this effect in particular, which you may find amusing and not particularly useful.
