Software-defined declarative synthesizer live-coding in a jupyter notebook
summary
Live Rust code runs in Jupyter via evcxr and a custom library CAW (Combinatorial Audio Workstation) builds synthesizer modules as Functional Reactive Programming (FRP) signals sampled per frame (not per audio sample) so cells can be partially re-evaluated without dropping audio. Examples show a 200 Hz sine, pulse-width and FM-style modulation, arithmetic mixing, band/pass and low-pass filtering, a compressor, envelope attack/release driven by a clock, drum primitives and live knobs plus a stereo-oscillographic visualization of the output.
AI-written summary · about
chapters (15)
- 0:00Live-coding intro in Jupyter
- 1:02Basic setup and signals
- 2:29Building waveforms
- 3:57Modulating signals
- 5:46Mixers and signal combos
- 6:57Beat patterns with saw waves
- 7:45Filters for sound shaping
- 8:35Band-pass and low-pass filters
- 10:46Resonance and filter behavior
- 11:30Compression for dynamics
- 12:54Envelopes automation
- 14:17Sequencing with clocks
- 15:49Drum sounds and automation
- 17:16Song sequence programming
- 19:11Q&A
related talks
03mBuild a Synthesizer with Python
31mLive audio synthesis with Synchrotron
37mHow to code music?
37mRhythm 'n Rust: Building a Synthesizer from A to Z in Rust
47mProgramming In Time - Live Coding for Creative Performances
17mLive Coding Performance
10m"The Concert Programmer"
29mGenerate buzz with realtime FM audio synthesis
