Guitar Effects Processor in ChucK and Processing

A Stanford Music 220a final project by Dave Dolben


Description

For my final project, I decided to make a guitar effects program. It consists of a ChucK server, which takes input from the sound card and passes it through a series of effects. There is also a GUI component, written in Processing, which communicates with the ChucK server over OSC. The GUI has some sliders on it, which control parameters for the effects that are running on the server. There is also an input/output level meter.

As for the actual effects, I implemented Delay, Distortion, Chorus, and a Compressor. The Delay is a pretty simple delay effect with a feedback loop. The parameters that can be modified are delay time, delay feedback gain, and the overall level of the effect. The distortion is implemented by passing the input signal through a gain UGen and a transfer function on the amplitude of the sound. The transfer function is y = x / (1 + abs(x)). The GUI has a slider controlling the gain. The Chorus is simply the ChucK chorus UGen, with sliders to control frequency, depth, and mix level. The compressor is a ChucK Dyno UGen, and the GUI has a checkbox to turn it on and off.

Some pretty neat tones can be achieved by playing around with the parameters. A few interesting settings are shown below. There are also some demo sound files, which are just an electric guitar connected directly to the computer.

Screenshots

"Clean" settings
"Delay" settings
"Chorus" settings
"Fuzz" settings
"Distortion" settings

Demo Video

Demo Video

Files

Audio

Code