Development
Writing audio software: DSP algorithms, real-time constraints, and the implementation details that separate code that works from code that works at 96 kHz without dropouts. C++, JUCE, FFT strategy, oversampling, and the performance traps that only show up under load.
17 articlesVolterra Series: The Higher-Order Impulse Responses Behind Nonlinear Audio Modeling
A guitar amp IR captures frequency shaping. It cannot capture harmonic generatio...
Beyond Waveshaping: How Recurrent Neural Networks Learned to Sound Like Vintage Tubes
Static waveshapers have modeled guitar amps since the 1990s. They get the harmon...
The Constant-Q Transform: Why the FFT Fails at Music Analysis
The FFT gives you the same Hz bandwidth at every frequency. Music does not work ...
Poles, Zeros, and the Unit Circle: The Math Your EQ Doesn't Show You
Every EQ band you've ever used is defined by two complex numbers positioned near...
Sample Rate Conversion: The Polyphase Math Behind Plugin Oversampling
Every plugin that does oversampling runs a polyphase filter you never see. Here ...
The Opus Codec: How CELT and SILK Became the Internet's Audio Standard
Opus runs Discord, WebRTC, Wwise, and WhatsApp. It beat a decade of competing co...
Why Distortion Plugins Oversample: The Aliasing Math Behind That Button
When you click "8x oversampling" on a saturation plugin, the plugin runs at 352 ...
DDSP Neural Audio Synthesis - Why Google's Hybrid Approach Changes Everything
Google's DDSP breaks the black-box neural audio model by putting classic oscilla...
Bandlimited Oscillators - How BLEP and PolyBLEP Algorithms Prevent Digital Aliasing
Digital oscillators face a fundamental problem - sharp transitions in square and...
MIDI 2.0: Why 4 Billion Controller Steps Change Everything About Musical Expression
From 128 steps to 4.2 billion. MIDI 2.0's 32-bit controller resolution doesn't j...
Wave Digital Filters - The Hidden Math Behind Analog Modeling Plugins
Why do some tube and transistor emulations sound noticeably more "alive" than ot...
Why Your 24-Bit DAC Actually Outputs One Bit
Open any modern audio DAC chip, ESS Sabre, AKM, Cirrus, the one in your iPhone, ...
BLEP, MinBLEP, PolyBLEP: How Soft Synths Hide Their Aliasing
A naive sawtooth oscillator written in five lines of code aliases like a broken ...
Why Multiband Compressors Use Linkwitz-Riley Crossovers (And Not Butterworth)
Splitting audio into bands with a Butterworth crossover creates a 3 dB bump at t...
The Unit Delay Problem: Why Most Digital Filter Models Were Wrong (And How ZDF Fixed It)
Classic digital models of analog filters had a fundamental flaw, an artificial d...
Partitioned Convolution: The Algorithm That Makes Real-Time Reverb Possible
A two-second impulse response at 48 kHz contains 96,000 samples. Direct time-dom...
Efficient FFT Implementation for Audio Plugins
A comprehensive guide to optimizing Fast Fourier Transforms for realtime audio a...