Run a recording studio from a Python script.

Real VST3 amp sims, hardware drum machine samples, factory sampler libraries — driven headlessly from code, rendered to finished multitrack songs. Working examples for macOS, Windows, and Linux.

Two full albums came out the other end — have a listen.

Stems That Sum to the Mix — and the Null Test That Proves It

Exporting stems from a code pipeline that recombine into the exact master — where naive exports go wrong (master-bus fades, reverb returns, normalization), the -87 dBFS proof, and the one-command handoff into a DAW.

July 7, 2026 · 4 min read

Eight Drum Machines, One Beat: Auditioning Kits in Code

A 60-line harness that renders the same groove through eight real drum machines — LinnDrum, Drumtraks, TR-808, and friends — with the actual track's processing, so kit choice becomes an A/B listen instead of a guess.

July 6, 2026 · 4 min read

How I Test Audio Tutorials on Operating Systems I Don't Own

Every code sample on this site runs in CI on clean Ubuntu, Windows, and macOS machines before publishing. Here's the GitHub Actions harness, the two bugs it caught before any reader did, and why 'works on my machine' is the wrong bar for tutorials.

July 5, 2026 · 5 min read

Driving VST3 Plugins Headlessly from Python

Load real VST3 plugins — amp sims, synths, effects — in a Python script with no DAW and no GUI, on macOS, Windows, and Linux. Including how to set plugin state that isn't exposed as a parameter.

July 2, 2026 · 5 min read

Rendering MIDI Through Real Instruments in Python — No DAW, Sample-Accurate

Use FluidSynth and a free soundfont to turn note events into audio from a Python script, with a sample-accurate event loop and one bus per instrument — the foundation of a code-only studio. macOS, Windows, Linux.

July 2, 2026 · 5 min read

The Plugin Won't Load? Run It in Another Process

Host Intel-only plugins on Apple Silicon via a Rosetta subprocess, Windows VSTs on Linux via yabridge, and 32-bit relics anywhere — the process boundary is a compatibility boundary. Plus two hard-won fixes for disk-streaming sample plugins.

July 2, 2026 · 5 min read

Your GarageBand Install Is Hiding Gigabytes of Instruments — Parsing the EXS Format

Reverse-engineering Apple's EXS24 sampler format in 60 lines of Python: chunk structure, zone maps, and cutting perfectly-labeled hits out of GarageBand's factory library for use in your own render pipeline.

July 2, 2026 · 4 min read

A Complete Band in a Python Script

The full architecture: MIDI events per band member, real amp captures per bus, sampled drum machines on the grid, seeded humanization, and one shared convolution room that glues it into a record. python3 generate.py -> finished track.

July 2, 2026 · 5 min read