Synthnotes is a repository of information on computer music programming, designed to support the UCSD music course MUS177/MUS267. This course covers basic synthesis algorithms, and typically an applied development environment. Currently, this environment is either the STM32F4/7 Discovery boards using the STM32CubeIDE or the JUCE plugin SDK. Material on this site will be updated every year, as the course is taught.
This online material has been developed by Tom Erbe and Jacob Sundstrom with the generous funding of the UC Innovative Teaching and Learning Initiative.
INDEX
STM32F4 (ARM Cortex M4) embedded audio
- STM32CubeIDE: Setup and first program (blink LED)
- Making sound with STM32F4 and 16-bit CODEC
- Adding the USB MIDI host and polyphony
PD Externals
JUCE Framework
Synthesis
Oscillators
- Introduction
- Calculating Phase: The Phasor
- Simple Ramp and Sawtooth Oscillators
- Simple Square and Triangle Oscillators
- Table Lookup Oscillator
- Interpolation
- Complex Sine Calculation
- Harmonic Oscillators through Additive Synthesis
Amplitude and Envelopes
- Amplitude: Introduction
- Clipping
- Envelope Following (Amplitude Detection)
- Compression
- Tremolo and Autopan
- ADSR Envelopes
Filters
- Simple One Pole and Band Pass Filters
- First Order Allpass Filter
- Lowpass and Highpass Derived from Allpass Filter
- Phase Shifter Derived from Cascaded Allpass Filters
- Four Pole Resonant Filter
- Second Order Allpass Filter
- Bandpass and Bandreject Derived from Allpass Filter
- More Filters….
Distortion
Modulation
Delay
- Introduction: Single Echo Delay
- Fractional Delay With Smoothed Time Control
- Delay With Feedback
- Delay Applications