ITP Notebook

Timbre Study

April 02, 2021

Music Interaction Design

This week I began to port a JavaScript synthesizer I made a few weeks ago for my Nature of Code class to a Max for Live device. The synthesizer is laid out like an Abacus and involves placing shapes on rods corresponding to the harmonic series. Read more about the original here.

Though the UI is fairly complex, the audio aspect is relatively simple. Each shape represents one oscillator set to a certain frequency (which bar it is on) and a waveform (what kind of shape it is). The horizontal motion corresponds to a vibrato effect and the spin corresponds to a panning effect.

In Max I started by creating multiple oscillators set to the harmonics of the fundamental. The volume, wave type, cutoff frequency, and vibrato depth and rate are all manually adjustable. These parameters will eventually be controlled by the custom UI.

The main synth contains 6 harmonics routed through an ADSR envelope.

screenshot of main synth Screenshot of main synth

Each oscillator contains logic for modulating the pitch (vibrato) as well as a filter and selector to switch between wave types.

screenshot of oscillator logic Screenshot of oscillator logic