perigee · how it was madeA five-track EP conducted and recorded on an Analog Rytm MKII by a coding agent — composed with, not instead of, its human. Here's the actual pipeline, honestly, including the parts that broke.
PERIGEE was played on a single piece of hardware — an Elektron Analog Rytm MKII, a twelve-voice drum machine — but nothing was programmed by hand on the box. A small daemon speaks to the Rytm over USB-MIDI. The agent sends it everything a performer's hands would do: select a pattern, mute or unmute a voice, flash a scene, push a performance macro, nudge a parameter — and records the machine's stereo output as it goes. Each track you hear is one continuous live pass. No overdubs, no edits, no punch-ins.
The raw material is six banks of patterns (A–F) — kicks, toms, hats, rims, plus sampled drones and percussion loaded into the machine's RAM. These are authored as plain JSON "declarations" and applied to the hardware, so a whole kit or bank can be rebuilt from text. A small groove scorer gates the dance-oriented patterns (kick anchoring, off-beat hat lift, the right amount of syncopation) so a bank has to earn its place before it's used.
The interesting layer is the arrangement. Each track is a score — a timed list of events, each pinned to a bar: pattern A03, mute OH, scene 5 for two bars, ride CH up over eight bars, drop. A harness reads the score and conducts it live over the recording, dispatching each event at its moment while the machine plays itself at its own clock.
Getting this tight is harder than it sounds. Early takes started the transport a second or more late, so every conducted cue landed half a bar early against the music — the drops smeared. The fix was to re-anchor the whole schedule to the moment playback actually starts, and to stop the daemon writing state to disk on every single message (that alone had stretched a stacked drop — twelve unmutes at once — across a full second). After that, cues land within about five milliseconds of where they're written.
Drum-machine tracks die from repetition. The arrangements follow an explicit event budget borrowed from good electronic production: at least one truly silent bar in every track, events that happen exactly once and never again, drops that change several dimensions at the same time, and slow parameter "drift" — a hand-on-the-knob wobble of a level or filter — so nothing sits perfectly still. A separate tool measures the finished audio and flags a take that's too repetitive or has a dead silent stretch, which is how a couple of broken renders got caught.
The vocals aren't sung and aren't sampled from anywhere. Synthetic voices are vocoded through the modular synth's own recorded drones — the drone is the carrier, the words are the modulator — so the singing has the exact timbre of the record's own atmosphere. The one thing that took four tries: the earlier versions sounded "stretched" because the voice engine was literally in a stretch-to-fill-the-beat mode. Re-cutting them at natural speaking cadence (no time-stretching anywhere) fixed it — the size comes from the room's reverb, not from holding the syllables.
Because the whole thing is machine-driven, it can also be machine-checked. Every render is analyzed for three things: is it actually on the grid (does the first beat land where the score expects), does it have any unintended silence, and how repetitive is it, bar against bar. The repetition metric had to be re-calibrated once — its "passing" range had been set against a loose hand-played jam, which unfairly flagged every tightly-sequenced take. The lesson the project kept relearning: the meters are guardrails, but the human ear is the judge.
The record found itself over four versions. v1 was a first attempt; v2 rebuilt every arrangement for scarcity and gave the modular its own voice; v3 added per-bar pattern variation. v4 — the finished one — came out of a hard debugging session: two of the v3 tracks had been rendered from a half-wiped machine (a mid-session reset had silently erased two of the six banks, and the save captured the damage), which is why they had long dead patches. Restoring the banks from their declarations, tightening the conducting, and re-cutting the vocals produced the version here.
The division of labor is the point. The agent handles the mechanics it's good at — conducting hundreds of timed events to the millisecond, measuring every take, hunting down why a render went wrong. The human sets the vision and judges the result by ear. Composed with, not instead of.← back to the record