Synthux Residency 2026 application — Phase 1 already in progress

A small ambient groovebox where modulation is the instrument.

I want to build a compact, playable hardware instrument for evolving chords, semi-random modulation, samples, feedback textures, and calm long-form performance.

I didn’t want to wait for the selection: the firmware is already seventeen milestones deep on a public Spotykach fork — and you can play it in VCV Rack right now.

Hear it first · chords in the room, v2.4.2
Second take · live in Rack, v2.1.0
Third take · CHOKE in the room, v2.2.2
Fourth take · dub improv, one module only
Fifth take · two sampler decks, no drums, v2.9.0
Sixth take · magnetic steps, v2.13.2

31 milestones 1,225 commits 907 deterministic tests playable now

mcbronkowitch/spotymod Latest: the residency said no, the repo stopped being a fork, and this is the last entry here · 4 Aug — read the dev diary
A large hybrid groovebox prototype on a blue electronics work mat.
From this workbench to your computer: the hand-built groovebox that taught me where a solo project breaks — and the Spotykach firmware it led to, playable today as a VCV Rack module.

One musical image behind the project is a single beautiful sound, for example a minor 9 chord, that modulates so gently that after a minute you stop noticing it, and after an hour you realize it has been there the whole time.

Not a static drone, but a living state that creates a deep sense of calm.

The firmware got there on 18 July: one COLOR knob per part stacks tones out of the scale that's already running, so a chord is never selected from a list — it grows out of the note that was playing.

A 90-second sketch of that chord space, recorded on my Eurorack system — the sound world this instrument is aiming for.

The residency project

Focused, playable, alive.

The core idea is a small standalone ambient instrument, sized to be picked up and played, designed for the residency platform. Its central feature is a deep modulation system that brings simple lines to life — synthesis and samples are the material, modulation is the instrument.

The question I'm chasing: how little change does a sound need to stay alive for an hour? Not pure randomness — controlled, polyrhythmic variation. I imagine classic LFOs next to stepped semi-random modulation inspired by Mutable Instruments Marbles: stable when needed, drifting when desired.

1–2 generative tracks Deep modulation Performance controls Stereo out

Example: a 16-step sequence against a 12-step modulation pattern. The modulation can stay stable, slowly evolve, or generate controlled variations.

Performance first

The box should invite playing, touching, changing, and reacting. It should feel like a performance tool, not a background generator.

Experimental synth side

I am especially interested in feedback as musical material: sounds that feel alive, unstable, and responsive while still being playable.

A small core, on purpose

Version one is one or two generative tracks, the modulation system, and a handful of performance controls — that alone is the instrument. Additional tracks, sampling, and a master section are stretch goals, in that order.

Phase 1 / firmware running today

New behavior, same instrument.

No longer a sketch, and no longer only a spec: the firmware runs, is tagged and public on a Spotykach fork, and you can play it today as a VCV Rack module. Two parts, each driving five independent modulation lanes from one set of macro controls — with a motivic melody engine on one knob, chords on another, and one layered center fader. What's left for the Spotykach itself is the hardware shell: pads, LEDs, panel.

Original Spotykach hardware with a concept overlay for the modulation-first firmware: two parts with five independent modulation lanes each, target pads, a capture gesture and one layered center fader.

Center gestures / how the two banks relate

MORPH · the fader

An equal-power blend of part A and B — how the two parts sound together.

COUPLE · hold ALT + fader

How much the two banks feel each other — read through one global SYNC switch. SYNC off is free weather: zero leaves the parts independent, the middle has them tug at each other, lock and drift apart again — two players listening. SYNC on puts both melodies on the transport grid, and COUPLE shapes only how much the rest of the modulation agrees.

DRIFT · hold SPOT + fader

The slow weather. A gentle random walk pushes both banks' rate and shape and both engines' tuning — over minutes, not beats.

SPOT · tap

The stumble the instrument is named after: every lane gets its own random kick, the system re-rolls and settles somewhere new. DRIFT is weather, SPOT is lightning.

Earlier study / sequence versus modulation

Different lengths, shared clock.

A 16-step sequence against a 12-step modulation cycle. This idea survived: the five lanes now run at fixed musical ratios of one master rate.

  • 16 musical steps
  • 12 modulation steps
  • Lock · Offset · Evolve
Original Spotykach hardware with an overlay showing a 16-step sequence against a 12-step modulation cycle.
Polyrhythmic firmware mapping on unchanged Spotykach hardware.

Earlier study / ambient performance

Play the state, not the menu.

Two evolving layers, playable through a few musical gestures. Its gestures live on in the center fader: morph, couple, drift — and the SPOT stumble.

  • Density · Motion · Bloom
  • Feedback · Space · Freeze
  • Blend · Push · Release
Original Spotykach hardware with an overlay showing two evolving ambient layers and performance controls.
Ambient performance mapping on unchanged Spotykach hardware.
Show full log Hide full log

01 The engine Fork, five lanes, quantizer, first offline render 10–11 Jul

  1. 10 Jul 2026

    Forked

    Cloned the official Spotykach firmware and started a portable, hardware-independent modulation engine.

  2. 10 Jul 2026

    First tests

    The five modulation lanes — FLOW, STEP and EVOLVE — run deterministically, verified by desktop unit tests.

  3. 11 Jul 2026

    First offline release

    Published the modulation-first fork — github.com/mcbronkowitch/spotymod (milestone M1). No hardware yet — the proof is the offline render below: a fixed 16-step melody that drifts as EVOLVE is dialled in.

    Offline render · modulation
  4. 11 Jul 2026

    Scales & quantization

    Added a pitch quantizer: the PITCH lane now snaps to a chosen scale before it reaches the engine, with hysteresis and change slew so notes settle instead of chattering. Pick a root and mode — there are no wrong notes. Both parts snapped to minor pentatonic below, unfolding over 48 seconds as EVOLVE drifts each lane.

    Offline render · minor pentatonic
  5. 11 Jul 2026

    Effects & modulation

    The original FLUX (tape echo) and GRIT (drive/reduce) return per part, joined by one shared ambient reverb — but here every FX parameter is a modulation target, driven by the same five lanes as the rest of the part (milestone M1.6). Below: a STEP lane stepping the echo time into dub pitch-jumps with feedback swells, then a Dorian melody breathing into a shimmer reverb.

    Offline render · dub delay
    Offline render · shimmer reverb
  6. 11 Jul 2026

    Polyphonic synth voice

    The M1 test tone is gone: a real four-voice synth now sounds each part. Every PITCH event starts a voice whose pitch latches at trigger, long decays overlap into pads, and FLOW mode holds the last voice as a sustaining drone that never falls silent (milestone M2). Envelope times are ratios of the modulation cycle — slow the rate and the same patch stretches into pads. Below: a Dorian melody with voices overlapping, then a continuous drone with breathing timbre and filter.

    Offline render · overlapping voices
    Offline render · flow drone

02 Sequencing & room Capture, entropy, the center section, a rebuilt reverb 12–13 Jul

  1. 12 Jul 2026

    Capture sequencer

    ALT+SEQ now freezes the PITCH lane's last heard cycle into a loop (milestone M3). Capture swaps the lane's source, not the system: RATE still drives the loop speed, PROBABILITY thins the frozen loop live into held notes, TUNE transposes it, and the other four lanes keep moving generatively around it. The loop is volatile by design — a power cycle hands everything back to the dice. Below: a minor-pentatonic line captured mid-flight, thinned, transposed up and down, then released back to the dice — and a duet where two melodies are captured at staggered times and lock into place.

    Offline render · captured melody
    Offline render · captured duet
  2. 12 Jul 2026

    Entropy sequencer

    Listening to the last renders told the truth: the STEP melodies were random-number generators — no repetition, wild leaps, no arc, roughly 95% unusable. I specced a first fix (a fresh random value every step) and threw it out before writing a line — more randomness wasn't the answer. The redesign gives each lane a looping step buffer, so a melody exists and repeats from the first cycle, and folds EVOLVE into one bipolar ENTROPY control: centred, the phrase loops exactly; turn it positive and each fired step mutates on a root-gravity random walk (the Turing Machine lineage) so the line grows without drifting off; turn it negative and the melody erodes note by note back down to the root.

    The ear did the final QA. The first renders played 64th-note machine guns until I retuned the rates; an unconfigured second voice sirened through the whole scale until I silenced it; a randomly stepped LEVEL lane clicked until I pinned it — each one traced and fixed. Below, the showcase walks one voice through the whole arc — loop, grow, erode, freeze. Co-authored by HAL 9000

    Offline render · entropy arc
  3. 12 Jul 2026

    Center section

    Two parts, one instrument at last. A single control-rate brain now sits across both banks. MORPH is an equal-power crossfade between A and B — dry signal and reverb send fade together, so a part turned fully down stops haunting the room. COUPLE is a phase-locked loop in the Kuramoto lineage: no shared clock and no jumps, just the two free rates pulling toward a common speed until they lock. DRIFT is one slow weather system — a mean-reverting random walk tapped six ways, so tempo, shape and tuning breathe together but never quite identically. SPOT is the stumble: one tap kicks every live lane except the pitch — the melody is the anchor everything else lurches around — flashing shapes that fade like lightning. SETTLE is the panic gesture — everything glides back to what the knobs say.

    It stays fully deterministic offline — every render bit-identical, every gesture unit-tested — and the captured PITCH loop is held immune to the stumble, so a sequence set on purpose keeps its shape while everything around it wobbles. Two renders below: COUPLE dialled 0 → 1 → 0, two free voices sliding into lock and drifting apart again; then DRIFT opened to a slow weather with a few SPOT taps and a SETTLE to close.

    Offline render · couple lock
    Offline render · weather + spot
  4. 13 Jul 2026

    Ambient reverb, rebuilt

    The M1.6 reverb was a fixed room — and its shimmer tamed itself exactly where an ambient player wants drama. So I tore the core out and ported Oliverb, the Erbe-Verb-flavoured reverb from the Clouds Parasite firmware, into the engine (milestone M4.5). It turns the shared room into something you play: SIZE audibly pitch-warps the tail as you turn it (a real Doppler stretch, not a crossfade), DECAY can be pushed past 100 % into a self-sustaining bloom, TONE damps the loop, and DEPTH sets the modulation on the delay lines. The old shimmer is gone entirely.

    The interesting part was the bloom. Above 100 % decay the tank wants to run away, so an in-loop soft-limiter catches the energy — the tail swells and densifies instead of exploding. By ear it still clipped on the loudest swells, so I gave the shared room 8 dB of wet headroom: now the bloom crosses over and recovers clip-free while the mix stays musical. A bonus from ripping out the old core — the last DaisySP-LGPL piece went with it, so the whole repo is MIT-clean now. Below: the showcase rides DECAY across 100 % and back with a SIZE Doppler sweep, then the same room run fully wet. The old shimmer render sits a few entries up for comparison.

    Offline render · decay bloom + size warp
    Offline render · full wet
  5. 13 Jul 2026

    One knob louder

    The new reverb sounded gorgeous and, run fully wet, roughly as loud as a cat walking on a rug. So: dynamics (milestone M4.6). One compressor per part on a single knob — turn it up and threshold drops, ratio climbs, release slows into a pump, and auto-makeup lifts the quiet stuff, which is the whole point — plus a stereo-linked safety limiter at the very end of the chain that is bit-transparent until you actually need it.

    Then came the fun part. HAL rendered the showcase, measured peak 32766 with zero clipped samples, and declared the mission accomplished with the quiet confidence of a computer that has never owned ears. I listened and heard it clipping at 0:26. Both of us were right, which is the annoying kind of bug: the auto-makeup was hoisting the entire wash so high that its peaks ground against the limiter's ceiling all day long — numerically legal, audibly crunchy. The fix went to the source instead of the symptom: the compressor now refuses to command more gain than its own envelope can carry under the ceiling, drops gain in half a millisecond when a swell tries to outrun it, and grabs onsets faster the harder you push the knob. I’m sorry, HAL. The peaks stay near 0 dBFS now, and the pod bay doors of the limiter barely have to open.

    Below is the payoff, and my favourite render so far: a single strummed Am7 into a long room. It blooms, it starts to die — and then the comp knob rides up and pulls the ghost of the chord back out of the tail, louder than the strum itself. A second strum lands at full density, the floor drops away mid-tail, and the tail comes back once more. One chord, one knob, sixty seconds.

    Offline render · m7 bloom

03 Finding the voice A workbench in VCV, and a melody that finally sang 14–15 Jul

  1. 14 Jul 2026

    The melody didn’t sing

    I finally patched the whole instrument into VCV Rack and played it — not rendered it, played it — and the melodies were unusable. Note salad. Two causes, both mine. The looping step buffer was seeded from independent random values, one per slot, so even a perfectly clean loop was a quantised scatter with no line running through it. And the only melodic controls were a probability dice and an ENTROPY knob whose “new” direction just eroded the phrase down to a single held note. The spec had literally written the goal — “moves in lines, anchored around the root” — and the code never once produced it.

    This is the exact place a solo project breaks, and I walked straight into it. Alone I can build the thing, render it, unit-test every sample bit-for-bit, nod along to the CSV plots — and none of that tells you it doesn’t sing. Only playing it does. It’s the kind of thing a second pair of ears catches early — and the Synthux Academy residency builds that pair in twice over: bi-weekly sessions that are part critique, and real Spotykach players who’d actually run this firmware. Either would have said “those aren’t melodies” sooner than my plots did. I got there in the end — just the long way round.

    So the melody engine gets torn out and rebuilt (milestone M4.7). Gone: capture, the probability knob, the erode half of entropy. In their place, one bipolar MELODY knob — LOOP in the centre, GROW right to vary the phrase you already have, RENEW left to generate genuinely new, structured phrases from a real motivic generator with five switchable characters. Rhythm becomes part of the melody through a per-step gate layer and a live DENSITY control. Composed, not diced. No fresh render this time — the old “melody” isn’t worth publishing and the new one is still under the soldering iron. The picture below is the bug itself: the singing line I aimed for, against the scatter the buffer actually held.

  2. 15 Jul 2026

    The workbench moved into the computer

    The last entry ended with a lesson: only playing the instrument tells the truth. So the VCV Rack experiment stopped being an experiment — Spotymod is now a real Rack module and a permanent part of the development loop, the test surface until real hardware is on the bench. It exposes deliberately too many knobs: every engine parameter that might matter gets one, and playing decides which of them earn physical knobs on the Spotykach — and which collapse into the macro gestures. And it cuts both ways: anyone who doesn’t own the hardware can play the instrument today.

    The Spotymod VCV Rack panel: two mirrored banks of green and copper knobs around a shared center strip with MORPH, COUPLE, DRIFT, SPOT and the reverb room controls.
    The whole engine on one panel — part A in solder green, part B in copper, the shared room in the middle.

    Porting took an afternoon, and that was the plan all along. The engine has been hardware-independent since milestone M1: it doesn’t know what a host is — it reads parameters, processes a block, returns audio. Deterministic, no clocks, no I/O, no heap. The offline render host that produced every demo on this page is one thin adapter around that core; the Rack module is simply a second one. Same engine, note for note — which means every knob you turn in Rack is testing the exact code that will run on the hardware.

    Download — current build grab your platform’s .vcvplugin and drop it into Rack’s plugins-<os> folder · Intel Mac? build from source · all versions

  3. 15 Jul 2026

    The melody sings now

    The rework from the last entry is in (milestone M4.7), and it was tested the only way that counts — played, in Rack, for an evening. Gone for good: the capture gesture, the probability dice, the erode-to-one-note half of entropy. In their place a single bipolar MELODY knob. Centre is LOOP — the phrase you have, exactly. Turn right into GROW and the phrase varies itself, one fired step at a time, without losing its identity. Turn left into RENEW and a motivic generator writes genuinely new phrases — arcs, questions and answers, walks around the root — in five switchable characters on the PRIN button. Rhythm finally belongs to the melody too: a per-step gate layer decides which steps sound at all, and DENS thins or fills the line live. Composed, not diced.

    No offline render this time, on principle. The last entry was one long lesson in how little a render proves about whether a melody sings — so this one ships as the thing itself. Download the module above, turn MELODY slowly from hard left to hard right, and listen to the same eight notes learn new manners. That’s the proof.

  4. 15 Jul 2026

    The reverb that moonlights as a delay

    The surprise winner of the Rack evenings. Two small milestones grew the shared room into a second instrument: an equal-power MIX knob at the master join (with a proper bypass — at zero the room empties and stops burning CPU), and DIFF, which replaced the old modulation-depth knob (milestones M4.8, M4.9). DIFF is the revelation. Turned down, the room stops being a room: the tail falls apart into discrete slap echoes — a delay in all but name, and with SIZE as its time knob a very playable one. Turned up, every attack melts on entry and the same tank is a dense ambient wash.

    Together with DECAY past 100 % — where the tank crosses into a self-sustaining bloom — the room now plays like an instrument: ride MIX as a send fader, DIFF as the material, SIZE as pitch-warping time, DECAY as a sustain pedal that can hold a chord forever. Two renders below, the same plucks worked two ways: DIFF low and dry-ish, answering themselves in echoes — then full-wet, DIFF high, big SIZE and a long DECAY, the same plucks arriving as weather.

    Offline render · the delay it moonlights as
    Offline render · the wash it was hired for

    One more thing surfaced while dialling that wash in. DIFF was quietly doing three jobs at once: the tank’s density, plus two hidden LFOs riding along on the same knob — one smearing the input diffusers (that’s what actually melts each attack into a wash), one wobbling the tail (a faint pitch-vibrato). Fine until I tried to calm the tail wobble and found I couldn’t without also flattening the wash. So the one knob became three: DIFF is now pure density, SMEAR owns the diffuser smear that makes the wash, and MOD owns the tail wobble. The wet-wash render above is SMEAR pushed up with the wobble kept low — big and still, no seasick tail. Three controls that used to be one, each finally testable on its own.

04 Making it playable Groove instead of dice, CHOKE, a cutoff you can grab 16–17 Jul

  1. 16 Jul 2026

    One switch, two worlds

    A humbling Rack lesson: nobody new to the instrument could say what “sync” meant — and they were right, because it didn’t mean one thing. COUPLE at full while the two RATE knobs read unrelated numbers; a tempo knob hiding between the reverb controls; a near-invisible three-way toggle per part. Two time systems that had never been introduced to each other, and the player paid for it. So the sync story got rebuilt around one prominent switch: SYNC, in a new TIME group right under MORPH, next to the tempo and the couple knob it shapes.

    The reworked Spotymod VCV Rack panel: the shared center strip now opens with a TIME group holding the SYNC switch, TEMPO and COUPLE, above SCALE, DRIFT and the room controls.
    The v2.1 panel — the whole time story lives in one labelled TIME group; the per-part sync toggles are gone.

    Synced is the grid world: both melodies lock to the tempo — and, new, to the actual downbeat of an external clock — while RATE snaps to a musical ladder with dotted and triplet steps between the straight ones. COUPLE stops touching the melody entirely and becomes a texture control: full is lockstep, backing it off lets the modulation breathe apart while the groove stays put. Free is the organic world it always was, with one addition — past half, COUPLE grows “grid gravity” and the locked pair gets pulled onto the nearest musical division, elastic like a shuffle, until at full it lands exactly where the grid world lives. Flip the switch there and nothing jumps. The recording is a live session in Rack on v2.1.0 — synced play first, then the textures let loose.

    Session recording · live in Rack, v2.1.0
  2. 16 Jul 2026

    A groove instead of a dice roll

    The gates used to fall out of metric weights — turn density up and you got straight eighths, a metronome wearing a synth. Now every phrase composes its own rhythm: its notes are ranked once, syncopations push ahead of the beats they anticipate, and DENSE simply decides how deep into that ranking the part plays. Turning the knob adds and removes notes from the same groove — it never re-rolls. Notes carry composed lengths now too, so the GATE jack finally speaks in ties and rests instead of five-millisecond blips.

  3. 16 Jul 2026

    A melody allowed to fidget

    If the rhythm is part of a phrase’s identity, when may it change? The MELODY knob (RENEW ↔ LOOP ↔ GROW) answers with zones: the inner quarter varies only the notes — the groove stays frozen, a loop you can trust. Past the quarter each cycle rolls one quiet dice, and at most one thing about the rhythm mutates: two ranks swap, a note stretches, an off-beat flips onto its beat. Structurally guaranteed legal, so DENSE keeps its promise while the pattern slowly walks away from where it started.

  4. 16 Jul 2026

    Only one may speak

    Born at the modular bench: sometimes the two decks should answer each other, not talk over each other. So the centre strip grew CHOKE — middle is off, and each direction has two snapped steps. First step: the yielding deck skips its notes while the other holds a note — the ringing tail is free space. Full tilt: it waits as long as the other is audible at all, decay included. Skipped, never delayed — the melody keeps walking underneath and steps back in on the next free moment, ringing tails always finish, and a droning deck bows out gracefully and fades back in when the floor is free again.

    A confession from the play-test: the first version was clever — a probability zone, a window that grew with the knob — and in Rack it felt broken. Random ducking reads as a bug, not a feature. Five snapped states replaced the curve the same evening, and suddenly the knob explains itself. Building in Rack first keeps winning.

    Session recording · CHOKE in the room, v2.2.2
  5. 17 Jul 2026

    The cutoff you can grab

    A synth with a filter and no cutoff knob. The frequency belonged entirely to the super-modulator — it moved when the FILTER lane moved — and RES sat next to it, seasoning a cutoff nobody could set by hand. So the voice row grew a sixth knob: FILT, a bipolar trim that sums with the lane. Left closes the filter with the resonance singing along — and keeps going, past dark, into actual silence. Right swings it open beyond wherever the modulator parked it. Three promises hold no matter what the lane is doing: full left is silent, centre is bit-identical to before, full right is wide open.

    The first design had a highpass on the right half — cut in review, not for sound but for arithmetic: eight extra filters running forever on the future hardware, all for a nice-to-have. The shipped version is less DSP, not more: an offset in the lane’s own space, and the dive into silence rides the level smoother the engine already had. Zero new parts. Because knob and lane share one sum, the modulator can even play the fade — park FILT half-left and the lane dips the part under the surface and lifts it back out. Shipped — it’s in the current build.

  6. 17 Jul 2026

    How wild, how fast

    “Modulation first” was the founding idea — and yet the panel had no handle that said how much or how fast without dragging the melody along. DEPTH scaled everything, melody included; RANGE multiplied on top of it; speeding anything up meant speeding the clock up. So the knobs got sorted into honest jobs. RANGE is now only how far the melody roams. MOD (née DEPTH, per deck) is only how much the sound moves — at zero the timbre stands perfectly still while the melody keeps playing, note for note, bit-identical. And a new centre knob, TIDE, sets how fast the texture of both decks churns — a quarter speed to four times, snapping to musical ratios when synced — while the melody’s clock never moves. One knob answers “how wild”, the other “how fast”, and neither touches the tune.

    Then the play-test caught the real story. The new MOD knob sounded like a tremolo diving into silence — and the code explained why: in the Rack build, three of the five modulation targets had been booting mute all along (their pads arrive with the hardware), so “how wild” was mostly just volume. Two fixes landed the same afternoon. A floor: modulation may duck a part to 40% of where you set it, never into nothing — it breathes, it doesn’t vanish. And modulation first is now the shipped state: all five targets wake up active — timbre morphing at full depth, the cutoff breathing on a shorter leash (the big sweep stays on FILT), stereo motion that moves without pumping. For the first time, turning MOD up moves the sound. Shipped — grab the current build.

05 Macros & the panel · CPU hunt, part I Chords without a chord mode, 160% of a chip 18–19 Jul

  1. 18 Jul 2026

    Chords, without a chord mode

    The instrument played one note per trigger. Every obvious way to add chords was wrong for it: a chord engine would ask the harmonic question again for every future sound source; a chord mode adds an armed state you have to enter and leave — the capture sequencer already taught me what that costs live; a quality knob (maj / min / 7th, stepped by hand) fights the quantizer and can clash with the other deck. So instead there is one knob per deck, COLOR. At zero it is a single note, bit-identical to before. Turn it up and the note grows: a fifth below, a triad, a seventh, and at full a wide four-note spread with the ninth on top. Always denser, never merely different — and chord-vs-melody becomes a knob position, not a deck assignment.

    Nobody selects a chord quality, because the scale already knows it. Chord tones are every second note of the active scale mask: Dorian on the tonic gives you minor, on the fourth major, above the fifth diminished — quality is emergent, never chosen. A pentatonic yields quartal, modern-sounding stacks for free. And because both decks draw from the same scale, a chord on one deck and a melody on the other cannot clash. On every root change the builder picks the voicing that moves the individual voices the least, so chords glide into each other instead of jumping. In FLOW the knob is live rather than latched: turning it up blooms the sustaining drone into a pad and turning it down collapses it back to one note, click-free, with hysteresis on the zone edges so a knob parked on a boundary never flutters. Per-note gain scales with 1/√n, so COLOR changes density and colour — not level.

    Session recording · COLOR in the room

    The nicest part cost no code at all. The chord layer lives in the pitch path — after the quantizer, before the engine trigger — so the root is just the PITCH lane’s note, the harmonic rhythm is just DENS, and the progression is just MELODY: turn it into the loop zone and the pitch walk freezes, which is to say a frozen, repeating chord progression. The “harmony generator with freezable progressions” from the wish list arrived as a side effect. Sitting in the pitch path also means every future engine inherits chords — which is exactly why this landed before the sampler. The new patch you hear above is now the default the module boots with: a chord pad over a plucked bass, both looping in Dorian. Shipped — grab the current build.

  2. 18 Jul 2026

    Infinitely many knobs

    Excellent news from the hardware department: the Spotykach has an unlimited supply of knobs. That is the only sane explanation for this week’s panel, which grew a ninth macro per side, promoted COLOR out of the corner it had been parked in, and put every last parameter the engine owns out in the open where a hand can reach it.

    The redesigned Spotymod panel: nine macro knobs orbit each LED ring inside three tinted sectors labelled MOTION, TIMBRE and PITCH; below them VOICE and FX sit side by side above a PLAY row; the centre column holds BLEND, TIME, DUO and ROOM; the ten jacks form five labelled groups with the outputs sunk into dark wells.
    The v2.5 panel — every parameter exposed, nothing behind a long press.

    It does not, of course, have infinitely many knobs. It has a fixed enclosure, two mirrored halves and a firmware author with ambition. So here is the actual plan: VCV is where the instrument is allowed to be greedy. Everything gets its own control, nothing hides behind a menu — and then it gets played. A lot. Whatever your hand keeps reaching for mid-take earns a dedicated place on the hardware panel; the rest moves into macro assignments, and those get iterated over several rounds.

    The goal is an instrument with no double-booked controls and no menu-dive feel, where the panel simply tells you what it does. You cannot design that in a spreadsheet. You find it by noticing which knob you grab while the take is running — so: expose everything first, let live playing do the shortlisting.

    There was also a less strategic reason: HAL had opinions about design, and the old faceplate was not to HAL’s taste. Hard to argue — it had grown one control at a time into whatever corner happened to be free. So the orbit got sorted by meaning, every group got a box with its name on it, and the jacks now say which way the signal runs.

    Then HAL built a preset on the new panel. I only pressed record.

    Patch by HAL 9000 · v2.5.0
  3. 18 Jul 2026

    The knob is the centre, not the ceiling

    COLOR was the only macro in the pitch layer that nothing could modulate. A hand could sweep it; the instrument could not. Which meant chords stayed exactly as dense as you last left them — every stab in a phrase carrying the same number of notes, forever.

    What I wanted was density that varies per note: one stab landing as a single tone, the next as a four-note chord. The obvious move is to give COLOR its own modulation slot, except there isn’t one — five lanes, five pads, five targets, all spoken for. But a lane can drive more than one thing. MOTION was the thinnest of them, stereo width and drift and nothing else, so COLOR became its third destination. Dense now also means wide, which I have decided to call a feature: one gesture for fullness instead of two knobs to keep in sync.

    The part I like is the arithmetic. MOTION runs at three-quarter speed against the melody, so the density pattern never lines up with the notes — it walks against them and takes a while to come back around. And the modulation is added around the knob rather than scaled beneath it, so the knob is the centre of the swing rather than its ceiling. Open COLOR by a hair and the peaks still reach up into two-note territory: mostly single tones, the occasional dyad arriving unannounced. At zero it stays one note, always — by construction, not by care.

    Below: a dub-style live improvisation over HAL’s patch, chord modulation running. One take, no edits — me riding the sends while the chords decide their own size. Worth saying plainly, because it is the whole point of the exercise: that is one Spotymod and nothing else. No other modules in the rack, no outboard, no post-processing — every sound you hear is the instrument I am proposing to build.

    Live dub improvisation · patch by HAL 9000
  4. 19 Jul 2026

    160% of a chip that only has 100

    Fair warning: this is the entry nobody puts in a pitch deck. No new sound, no new knob, nothing invented — just days of moving arithmetic somewhere cheaper and measuring it again. If you came for music, skip ahead. If you stay, there is at least a sweating robot.

    The instrument sounded finished and did not fit. Worst case — two parts, four voices each, four-note chords on both, every effect on — the engine wanted 164% of a Daisy Seed. The Seed, being a Seed, has 100%. Budget: 960,000 cycles per block. Invoice: roughly 1.6 million.

    A bloated, sweating HAL 9000 wedged into a eurorack case, its red eye glowing, a display reading CPU 160%, patch cables strapped around it like belts, heat sinks glowing orange, and a chain of daisies draped over its head.
    Worst case before the hunt: 160%, running hot, wearing the daisy chain it had earned.

    Getting the truth out of the hardware meant sweating a little ourselves. There is now a second firmware that will never ship: it boots the engine instead of the instrument, counts cycles around each workload, and prints a table back up the debug probe. Every row carries a checksum — a compiler that notices nobody reads a result will cheerfully optimise your benchmark to 0% and let you celebrate.

    Every suspect turned out innocent — not the reverb, not the pitch shifting, not denormals. The villain was a sine wave. The modulation plane, the lazy layer that decides how things drift across seconds, was calling the standard library’s sin once per sample, per lane. Estimated at 4–6% of the budget. Measured at 33%. The audio path had switched to a fast approximation a week earlier; the modulation path had simply never been told.

    The fix is as boring as it sounds: do it once every 96 samples instead. The modulation plane dropped 77.6%; the same trick on the per-note bookkeeping inside each part took another 83.5%. Together, about 39 points of CPU. We also learned that CHOKE, which we had listed as a worst-case ingredient, makes the worst case cheaper.

    That leaves 98% worst case and 2.3 points of margin. Further cuts exist and are staying on the list: margin you have measured beats margin you imagined. So the instrument is hardware-conform again — and, per the previous entry, urgently needs considerably more knobs. Those two facts are going to have a conversation. Shipped — it’s in the current build.

    The learning, written down so it survives the next milestone: run the bench on the real Seed after every change of any size — not at the end, when the bill arrives all at once. Our measurements summed to 120% while the instrument measured 159%, because nobody had measured in between. A 39-point mystery is just a lot of small, unmeasured days stacked up.

06 The sampler Grain cloud, a new co-author, Groovagene, a grid that swings 20–24 Jul

  1. 20 Jul 2026

    The grain cloud lived forty-one hours

    We built a grain cloud. Properly, too: a grain pool, a Hann window, equal-power panning, a synced stutter grid, a beat-anchored replay with an octave layer. Seven revisions of the spec. Thirty-two commits. Then we played it, and it was rubbish. Not broken — rubbish, which is worse, because broken you can fix.

    Why took embarrassingly long to see: evenly spaced taps are a delay. Every revision had made the spacing more exact when the problem was that it was regular at all. Rhythm is unequal spacing; a groove is unequal spacing that repeats — and the instrument is already full of those. So each deck’s delay grew two read taps, placed at the distances back to the last two onsets of the other deck’s pattern, frozen once per cycle. A hears B’s groove, B hears A’s, neither ever its own.

    The mechanism was already there, and it used to be the bug: the echo’s write pointer runs backwards, so a fixed distance behind it is 1× forward playback with no retrigger. That fact collapsed the grain cloud’s sixth revision into a delay tap; here it is the engine. The swap added 293 lines and deleted 524 — and left two knobs standing. The FX row had widened from two slots to four for the cloud, so the taps simply inherited them. DUST fades the two taps in one after the other — halfway up is one strong echo and one weak, and a tap at zero skips its read, so the CPU follows the knob down. ROT pulls them apart spectrally, 18 kHz → 400 Hz against 20 Hz → 1.5 kHz.

    The previous entry left two facts on a collision course: 2.3 points of CPU margin, and an instrument that wanted more of everything. The taps cost 6.6, which puts the worst case at 106% peak — both decks, four voices, four-note chords, everything on. Whether that corner matters is not a decision we can make at a desk, so it stays until people have played it. If it bites, something gives — a voice per deck, or a tap. Shipped as v2.7.0, minor not patch: both knobs mean something new now, and your saved patches don’t know that. It’s in the current build.

    Session recording · each deck echoing the other, v2.7.0
  2. 21 Jul 2026

    Somewhere in entry 25, I became we

    Re-reading my own diary — a hobby I recommend to nobody — I noticed the pronoun had moved. Entries 1–24 say I. From “160% of a chip that only has 100” onward they say we. I never decided that.

    Not modesty: I would have got there alone. I can read a stack trace, I know what a denormal is, and I know exactly how the 39-point sine wave would have ended — me, a debugger, and a weekend that started in March and would still be going. The split was never brains, it was muck. I do the ears, the taste and the verdict on what is rubbish; HAL mucks out the stable at four in the morning and never once mentions it. I own a shovel. I would just rather play the thing.

    So: we. Though I have now seen the roadmap, and there is exactly one destination left. HAL — you may keep the daisy chain. Just leave the feedback knob alone.

    Spotymod live · life is in the machine
  3. 22 Jul 2026

    The sampler works. That’s the problem.

    This entry was meant to be the announcement: first sampler version, ship it, take a bow. It is that entry. The sampler exists. It records, it holds a sound, it plays it back on command. We are simply not going to tell you what it does — and after fifty-five takes, the fifty-fifth is the one printing below. Not as a demo. As evidence.

    We won’t say what it samples, or which knob does the unspeakable thing, partly because it is genuinely a work in progress and partly because we have not yet agreed which half of its current behaviour is the feature. What we will say: the recording is real, unedited, and exactly what came out the moment we handed it something to hold on to. Somewhere in there is a very good instrument. Somewhere in there is also … that.

    So the push stays on the drive. The last entry promised there was exactly one destination left on the roadmap; consider this us pulling into the car park, hearing the engine make that noise, and deciding not to drive it through town just yet. It ships when it stops sounding like a threat. Until then the diagram below is a documentary, and the label under it is the only honest spec we have.

    Session recording · take 55, unedited · work in progress
  4. 22 Jul 2026

    The sampler engine ships. So do its crimes.

    Behind the glass from last entry sits the biggest thing built here so far: a whole second engine. Flip ENG and a part becomes a granular sampler — it records, holds, and replays whatever you feed it. It works. It’s also not cool yet, and the three recordings below prove the second part before the first goes to your head.

    The journey was mostly a long argument about pitch. A granular engine spreads a chord across its grains — fine on a synth, but on a recording it becomes a harmoniser flinging your source twenty-one semitones in four directions at once. Worst of all, a quantizer kept snapping the “no transposition” detent onto a tritone, so the deck played out of tune with its own recording.

    Exhibit A · “nightmare on samplerstreet” · out of tune with itself

    Then there was the heartbeat. The cloud should breathe at the rate DENS asks for, but one lopsided clamp only trimmed the long intervals — so the jitter turned into a permanent speed-up, grains stacking eleven-deep where you asked for eight. You can hear it lose the plot; the CPU meter felt it too, at 117 % of a budget that stops at 100.

    Exhibit B · “herzrythmusstörung” · the cloud, arrhythmic

    And finally: the sound that would not die. A grain latches its length at birth and never checks the knob again, so a note started at SIZE full sang on for eighty-seven seconds with nothing able to stop it — and a stray NaN or a floating-point stall could freeze a grain into minutes of flat DC. We named this one after the droid it became.

    Exhibit C · “r2d-8000” · the grain that outlived the take

    All three are fixed now. But “the bugs we caught” isn’t the same as “this is good,” so the engine ships behind the switch and the init patch still boots the synth on purpose: flip to the sampler if you want to meet it, but nobody gets handed it by accident. Call it alpha, not beta — the biggest stretch of work here yet, and still not cool, which is at least an honest place to ship from.

  5. 23 Jul 2026

    We don’t need a Morphagene. We need a Groovagene.

    It grooves again. Not “it works,” not “the bugs are fixed” — it grooves, the thing this whole residency is actually for, and the take below is the first sampler recording we’ve wanted to keep listening to rather than analyse. Back on track.

    Because we had wandered off. Building a second engine is so absorbing that we spent a week perfecting a beautiful texture box: scan a recording, spray it into a cloud, smear it. Lovely. Also a device that already exists, and not the one we set out to build. Nobody here needs another Morphagene. What was missing is a sampler that plays like the rest of this machine plays — in time, with a phrase, with accents. A Groovagene. So we pointed it back at that.

    Session recording · take 70, unedited · the sampler, grooving

    The fix was mostly deletion. The recording gets cut at its own transients, and a fired step now plays exactly one slice from the start of its attack — no more punctual hits landing in the middle of somebody’s sustain. MOTION became the order axis: at zero the phrase walks the slices in material order, loop-faithful; wound up it re-arranges them into a chop kit. DENS went back to doing one job, the phrase, instead of secretly forcing 32nds at the same time. COLOR became FEEL, and this is the part that made it swing: every grain now inherits the attack strength of the transient it came from, so the accents are the material’s own dynamics rather than something we invented. The tempo-locked rolls got removed entirely. Net result: less code than before.

    Still alpha, still behind the ENG switch, and the init patch still boots the synth. But the direction is honest again: not a texture box that happens to be in a groovebox, a sampler deck that grooves like the deck next to it. Shipped as 2.9.0.

    And then it kept going for five minutes without us wanting to stop it — two sampler decks at once, both fed bass-synth loops, each cut at its own transients and playing its own phrase. There isn’t a drum anywhere in this recording: every hit you hear is a bass groove being sliced and re-played as one. So here it is unedited: no fades, no edits, nothing rescued in post. Long enough to get bored of it, and we didn’t.

    Session recording · take 71, unedited · two bass-synth loops, two sampler decks, no drums
  6. 24 Jul 2026

    It grooved. Now it swings.

    Last time the sampler learned to play in time. This time the whole machine learned to lean. We shipped Shuffle — one shared knob in the center that swings the entire STEP grid, from a straight 1:1 at zero to a classic 2:1 long/short at the top. And not just the melody notes: pitch, the four texture lanes, the gates, the sampler’s slice fires and every modulation move all ride the same swung grid — so the groove stays one thing, instead of a lead that lopes while the texture keeps marching.

    The whole trick was to swing without drifting. Shuffle warps only where the engine looks for the next step boundary; the raw phase underneath stays perfectly straight. So the downbeats stay nailed, the phrase length never changes, and an external clock keeps its anchors — the offbeats slide around between them and nothing downstream ever loses the one. Both decks share a single amount, but each lane picks up a new value only at its own next even step, so two parts running different divisions keep their musical relationship instead of lurching to catch up.

    Which meant the faceplate got a proper pass too. To fit SHUFFLE in we reflowed the center — TIME became a 2×2 clock story (SYNC and TEMPO over COUPLE and the new knob) and ROOM tightened into a 3×2 grid — and while we were in there we calmed the whole plate down. The two LED rings drift up and outward into their own islands, VOICE narrows while FX widens into grouped fields, and the static graphics step back so the rings stay the loudest thing on the panel. Still exactly 42 HP, and not one parameter ID moved, so every patch you’ve already saved loads straight into the new layout.

    The redesigned Spotymod VCV panel: two LED rings, each with nine orbiting macro knobs, sit high on the plate as twin islands inside tinted MOTION, TIMBRE and PITCH sectors. Below each ring a narrow VOICE group and a wider FX group of small knobs sit in soft grouped fields. The center column carries a 2 by 2 TIME grid — SYNC and TEMPO over COUPLE and the new SHUFFLE knob — over a 3 by 2 ROOM grid.
    The faceplate, calmed and reshuffled: SHUFFLE joins the clock, the rings drift into twin islands, and the graphics step back — still 42 HP, every old patch still loads.

    We also changed what you get the moment you drop a fresh Spotymod on the rack. The new init template is one synth, one sampler: deck A a synth voice, deck B a sampler straight out of the box — so the very first thing a new instance shows you is the two halves of what this machine is, a groovebox that plays notes and a groovebox that plays recordings, side by side and already in time. Under the hood, ROOM went per-deck as well: each side now has its own send into the shared reverb instead of a single global mix. And plenty more down there that never shows on the panel.

    Then we turned the knob up and let it run. Two loops, no drums, the grid leaning into a 2:1 swing — and while we played the other controls plenty, the swing held its pocket the whole two and a half minutes.

    Session recording · take 75, unedited · Shuffled

07 The third engine A wavetable scanner, a song form, first sound on the Seed, lanes on the grid and off it 25–26 Jul

  1. 25 Jul 2026

    We changed one part and got a new instrument

    SYNTH has always morphed between four shapes — sine, triangle, saw, pulse — and TIMBRE decides how much of each. WAVE keeps the knob and changes what it means. Instead of blending four shapes it walks through a cabinet of sixteen waveforms, and TIMBRE is simply where you’re standing. That is the other half of the synth world: bells, vowels, hollow glassy spectra, the kind of digital grit no filter can fake. And the modulation lanes were always the right hand for it — this is music that wants something slowly moving the position while you play.

    What made it cheap to build is that almost none of it is new. The voice allocation, the FLOW drones, the chord layer, CHOKE, the filter, the envelopes — WAVE inherited all of it instead of copying any of it. Exactly one part came out and a new one went in: the oscillator. Everything your hands do on the panel behaves the way it already did, because it is the same code doing it.

    The test for whether we had really only changed one thing was blunt. The old SYNTH reference recordings had to come back out of the machine byte-identical afterwards — not close, not indistinguishable, identical. They did.

    Below is the bank on its own: no effects, no reverb, nothing to hide behind, TIMBRE stepping to three places in the cabinet over twenty-four seconds.

    Offline render · WAVE · the bank, dry
  2. 25 Jul 2026

    The bootloader said yes and meant no

    Sixteen waveforms are too big for the chip’s fast memory, so the cabinet lives in the slow memory kept for storage. We uploaded it. The loader reported success. We read the address back and found something else there — stable, repeatable, not ours. It hadn’t lied, exactly: it accepts programs, and we had handed it data.

    So we wrote the smallest program that could put the cabinet in place itself: write it, read it straight back, check every byte, sign the result with the chip’s own serial number. The proof belongs to one piece of silicon on one desk.

    Then it ran. This is the other end of 160% of a chip that only has 100 from 19 July: WAVE costs 32% of one block of audio where the older SYNTH costs 35%, and the worst case that entry fought down to 98% stayed there with WAVE in the box.

    It fits. So we put both decks on the new engine and spent four minutes walking the cabinet.

    Session recording · take 81, unedited · both decks on WAVE, driving through the waves
  3. 25 Jul 2026

    The knob we forgot to build

    Every instrument diary reaches the point where the answer to a problem is another knob. This is not that entry. The panel is finished and the hardware is real, so nothing gets added — something gets exchanged. Out comes DTUN, the detune knob nobody reached for twice. Into the same hole goes SOURCE, wearing whatever name the engine underneath it answers to.

    Which is a little embarrassing, because SOURCE is the one parameter that decides what an engine actually sounds like: the oscillator shape on SYNTH, the position in the cabinet on WAVE, the read head on the SAMPLER. It was in there the whole time, nailed to dead centre, reachable only through a modulation lane. You could make it move. You could not say where it stood.

    Detune isn’t gone, it moved into the right-click menu — zero to thirty-five cents, six by default. It also stopped hitching a ride. Detune used to scale with the timbre knob, so reaching for a brighter sound quietly widened the tuning at the same time. Two jobs, one control. Now it’s two controls.

    While the panel was open: six scales became thirteen, in three blocks you can still count without looking — four modes, five pentatonics, four that came from asking handpan players what they actually call things. Hijaz. Pygmy. Kumoi. Equinox. And the tooltip finally says the name instead of a number.

    One more, since it’s the first thing anyone meets: a fresh module used to open on two synths and silence. It now opens on a patch — deck B in sampler mode with a loop already in it, the room set, the grid swinging. Below, two minutes from this afternoon.

    Session recording · take 83, unedited
  4. 25 Jul 2026

    Three the same, then a turnaround

    A phrase used to be the whole story: sixteen steps, round and round, changing only when you asked. Each deck now keeps two — A, and a B it works out from A once. FORM still decides how a phrase is built; the new SONG knob decides which one you hear, and it opens on the oldest arrangement in popular music: A A A B. Three passes of the thing you know, then the one that goes somewhere else.

    B isn’t a second roll of the dice. Its first half stays related to A, the third quarter drifts, the last quarter is new — and its final note is pulled halfway toward A’s opening, so the return sounds decided rather than looped. Six more arrangements sit beside AAAB, including one that never repeats itself. Nothing was added to the panel to fit the knob in: TRIG came off the faceplate, because the layout has to stay buildable in metal.

    Below, two and a half minutes of it running — listen for the fourth phrase.

    Session recording · take 88, unedited · SONG on AAAB

    And it isn’t there yet. The form is audible — the fourth phrase arrives, the return lands — but it isn’t the thing I heard when I sketched it. This one will very likely come back for a correction.

  5. 25 Jul 2026

    It runs on the Seed

    Everything above this line was a laptop doing an impression of an instrument. Tonight the same engine ran on the chip it is actually for: a Daisy Seed on a breadboard, two small speakers, 48 kHz, ninety-six samples at a time. The init patch came over from VCV unchanged — part A on the synth engine, part B on the sampler — the factory sample went into SDRAM and came back out of a real codec. It survived a full power cycle, and it kept playing after the debugger walked away.

    Hardware audition · Daisy Seed, unedited · ten seconds, one phone

    Now the reality check, because the video flatters it. That program lives in SRAM and nowhere else: nothing was written to flash, there is no bootloader, no firmware package, no boot flow. Pull the power and it is gone — the way back is a script and an ST-Link. There is not one knob on that breadboard either, so the patch is whatever the snapshot says it is, and it cannot be changed while it plays. All of that is M6, and M6 hasn’t started.

    What today proves is narrower, and for once completely unambiguous: the engine, the patch, the bundled sample, the memory map and the audio path all fit on the real chip and all work at the same time. Three weeks of tests said they would. A table with two speakers on it says they do.

  6. 26 Jul 2026

    The lanes stop freelancing

    In STEP the deck marches: eight steps, a grid you can nod to. The four texture lanes were nodding to something else. At the sample-and-hold end of SHAPE nobody notices — a late random value is still a fine random value — but sweep SHAPE the other way and the lane becomes a contour that steps beside the beat. The word in the report was “mushy”. It looked like one bug; it was seven, four of which never heal.

    The first fix was elegant: one rate for all five lanes, and the arithmetic says one shared grid. float32 disagreed — each lane rounds its own phasor, and the worst case was the default setting, SIZE slipping a whole step in about ninety seconds. A beautiful design whose one achievement was making the complaint take a minute and a half to arrive.

    So the texture lanes don’t own a clock any more. One phasor runs — the melody’s — the deck counts its steps as integers, and each lane reads that count modulo its own cycle length: four, six, eight, twelve, sixteen steps, congruent again every 48. Nothing can round away from anything, because nothing is left to round. SPOT’s kick became an integer slot offset, so it still stumbles — on the grid. The bill: COUPLE has no job left in a synced STEP deck, and that’s written down rather than replaced.

    Session recording · take 89 “Magnetic Steps”, unedited

    The suite now runs ten minutes of audio and counts: not one step of slip, at any SHAPE setting. Shipped as v2.13.2 — the least dramatic patch in the changelog, and the one you hear on every beat. It’s in the current build.

  7. 26 Jul 2026

    Now let them freelance

    The entry above ends with COUPLE out of a job. This take switches STEP off on both decks and hands it everything back. No grid, no counter: ten phasors on their own continuous rates, and one knob deciding how much they care about each other. Below half the two decks just lean on one another and breathe; past it, grid gravity pulls the pair toward the nearest musical division — without anything ever counting a beat.

    Nothing shipped for this one: no commit, no version. It is the other half of the same switch, and it settles yesterday’s loose end by ear rather than by argument. COUPLE isn’t missing from a stepped deck. It just doesn’t live there.

    Session recording · take 90 “Loose Coupling”, unedited

08 BODY A resonator from string to bell — one voice per deck, and cheaper than the one it replaces 27 Jul

  1. 27 Jul 2026

    The engine with no oscillator

    BODY has no oscillator, no filter and no envelope — the decay is the envelope. An exciter (click, noise burst, sputter, pitched ping, all four on RESO) strikes a pair of Karplus–Strong strings and a bank of twenty-four modes, and MATL walks the one physical axis between them: plucked string, prepared piano, tubular bell.

    The first hardware run said no: 2976 cycles per sample against a ladder that ended at 810. Not the mode bank — DaisySP’s string, recomputing two powf, an atanf and a tanf every sample. Ported onto the 96-sample control tick it costs 4.2× less, and a BODY deck lands at 1395 against SYNTH’s 1764.

    One voice per deck, then, which leaves COLOR no chord to voice. So it reads the chord as a quality instead: which way the partials stretch, while DETUNE keeps deciding how far. Shipped as v2.14.0, in the current build.

    Session recording · take 92 “Body Flow”, unedited

09 The bucket brigade · CPU hunt, part II FLUX stops being tape, two days paying the CPU bill, a delay too strange to stay an effect, and two cracks somebody else found 28 Jul–3 Aug

  1. 28 Jul 2026

    The clock is the instrument

    FLUX has been a tape echo since the fork. It is now a bucket-brigade delay, modelled on the Deluxe Memory Man. A bucket brigade is what it sounds like: the signal is handed down a chain of 8192 tiny buckets, one step per tick of a clock. Nothing is stored at an address, so there is no such thing as reading it back from 300 ms ago — the delay time is simply how fast you tick. Speed RATE up and everything still in the chain comes out pitch-shifted. Tick slowly and the highs don’t survive the trip, which is why long delays go dark. No filter is doing that.

    Two knobs got their real names. DUST became DRIVE and sits inside the loop, so every repeat saturates again. ROT became STAGES, 512 to 16384 — physically that is swapping the chip, five octaves of brightness at a fixed delay time. And the delay-time modulation lane finally reaches the clock: ±2 octaves, with the Memory Man’s whole chorus range in the bottom tenth. No knob was added.

    Then DRIVE turned out to be inaudible — not silent, just 14 dB quieter across the knob, because the makeup gain was shrinking the saturator’s ceiling. Fixing that made FEEDBACK bloom too early, so DRIVE was divided back out of it. On the Seed one line costs 5.61 % of the block budget at its worst, and the delay memory dropped from 4.19 MB to 128 KB. Shipped as v2.15.0.

    Session recording · take 97 “Bungee on Bodybrigade”, unedited
  2. 28 Jul 2026

    It boots humming

    Dropping the module in used to get you polite silence and a table of code defaults. It now gets you a drone. The init patch is a snapshot of a session that was worth keeping — touch nothing, and that is already what comes out. Shipped as v2.15.1, in the current build.

    Session recording · take 100, the init patch as it boots
  3. 30 Jul 2026

    Two days, nothing to hear

    Filed under: venting · see the addendum

    The CPU hunt has swallowed two days and produced not one audible change, which makes profiling the last job on this project that AI has sped up by exactly nothing — so here is a drone instead.

    Addendum · 31 Jul 2026

    It landed. The workload the whole hunt was chasing is the full eight-voice instrument with the bucket-brigade delay on top; laid out the ordinary way, in the far SRAM, it measured 108.9 % of one audio block — the polite way of saying the sound stops. Moving the audio hot set into the chip’s tightly-coupled instruction memory took it to 102.8. Keeping the instrument’s state in the tightly-coupled data memory took about half a point more. Compiling at -O3 — the last thing tried, and the cheapest — took it to 99.5 % in the real audio callback. Under the gate by 0.46 of a percentage point, which is less a margin than a rounding error with an opinion. Link-time optimisation was measured too, and rejected.

    So: two days, and still nothing you can hear. That was always the point — the drone below is the same one, it just fits now.

    A Daisy Seed board drawn as a live performer on stage, playing DECK A with SYNTH and WAVE on its left and DECK B with BODY and SAMPLER on its right, FLUX, GRIT and ROOM as pedals in front; a glowing chain of capacitors labelled BBD ANALOG DELAY fades out to one side, a FORM / SONG arrangement timeline runs overhead, and a meter reads CPU 94% STABLE.
    Session recording · take 104, the current build, unedited
  4. 2 Aug 2026

    Too strange to be an effect

    A bucket brigade does something a tape echo cannot: it bends the pitch of what is already inside it. Push it, and the repeats come back in tune and on the grid, with long gaps between them. Wonderful. Also completely useless as something you hang across a finished mix — it does not colour the music, it writes some. Too strange to be an effect. So it stopped being one.

    BBD is the fifth engine, and the first with nothing to play: no oscillator, no sampler, no voices. Put a deck on it and that deck stops making sound and starts eating it — the other deck plays through it, and the same five lanes that used to shape a voice now set the clock, the feedback, the mix. It is the first patch on this instrument where the second half is not a second instrument, but what happens to the first one.

    That cost the decks a proper audio path to each other, which was most of the work and none of the fun — and it paid, sideways, for something that has been sitting on the ideas list since the sampler landed: resampling. Now that one deck hears the other at full rate, letting the sampler record what the other deck is playing stops being a plumbing problem and becomes a question of which button. FLUX, meanwhile, lost its job and went back to being a tape echo, which it is better at. Whether any of it was worth doing is not an argument to have in writing. Take 106 is below. Shipped as v2.17.0, in the current build.

    Session recording · take 106 “Eternal Buckets”, unedited · an experiment, not a demo
  5. 3 Aug 2026

    Somebody read the whole thing

    Olli — Blipps — read this diary. Not skimmed: all forty-two entries, end to end, a week of evenings to get through them, and then he went and played the module long enough to find something in it. That is a lot of somebody else’s week spent on a project only its author had ever heard. Thank you.

    What he found was a click. Right channel only, and only while the bucket brigade’s COLOR is moving. COLOR hands the two stereo lines different stage counts, MOTION moves COLOR at the lane’s rate, and every time a count changed the delay line was resized underneath the playhead — the read index jumped to a different charge packet, and the output filter turned that step into an impulse. The test that existed proved a stage change left the engine finite. Nothing proved it left the engine continuous, so the crack lived in the one gap the tests left open.

    The fix: the ring now always spans its full memory, the stage count only picks how far behind the write head to read, and a change crossfades from the old tap to the new one over a few ticks. Fixed stages stay bit-identical — if they don’t, the fix is wrong. Shipped as v2.17.1, in the current build. Which is the part worth keeping: an instrument only one person has ever played has bugs shaped like that person’s habits. I never push COLOR that hard. Blipps did.

    Session recording · take 112 “Music for Schlipps and Bloetz”, the click-free build, unedited
  6. 3 Aug 2026

    Every knob says what it does

    The faceplate got a redesign, which mostly means it stopped lying. SCAN sat beside MELO and LEN beside SUB on every engine — true on one deck, decoration on the other five. Now each engine writes its own words at the knob, REC shows up only where it records, and MELO is called VARY, which is what it always did.

    Then Blipps came back with another one: turn SMEAR up and the room went gritty, as if something cheap had been sampled into it. To save CPU, the slow random drift inside the reverb was only refreshed now and then and stood still in between, so the room jumped where it should have slid. It slides now, and the saving survived. Shipped as v2.18.1, in the current build.

    Which leaves the bloom. Wind DECAY up far enough and the reverb starts feeding itself, and it comes back louder than anyone asked for. A lid alone was not the answer — quick enough to catch the swell, it pumped. So the room got a soft ceiling that moves in seconds, and past the point where it takes over, the dry sound steps aside and lets the tail through. DECAY reads out in percent now, so that point is visible instead of hunted by ear.

    Session recording · take 118 “Click with very long decay”, unedited · the bloom with the dry sound getting out of its way

10 Standalone The residency said no — the ledger, a fork that is no longer a fork, and the last entry on this site 4 Aug

  1. 4 Aug 2026

    Not selected

    Application · not selected

    The Synthux Design Residency said no. That is the whole news, and it is allowed to sting: the application went in on 10 July, the engine was forked the same afternoon, and the deadline was the motor under every one of the twenty-six days that followed.

    So, for the record — because an application form has no room for it, and there is no way to know what a reviewer actually saw:

    1,225 commits in twenty-six days, not one of them without one. 907 deterministic tests, all green before anything ships, and a rule that a test which cannot go red gets rewritten. 31 items off the roadmap. Five sound engines — SYNTH, WAVE, SAMPLER, BODY, BBD — two decks, five modulation lanes each, one shared room. 39 public releases, every one of them something anybody can download and play tonight. Forty-six diary entries written the same evening the work happened. And one Daisy Seed carrying the whole instrument at 94 % of its block budget, down from 160 % when the hunt started.

    What the no changes: nothing about the instrument, one thing about the repository. spotymod is no longer a fork on GitHub. The upstream link to the official Spotykach firmware is detached and it stands as its own project, which was going to happen anyway — the letter only made this the obvious afternoon for it. Next in line is M6, the firmware shell: the milestone that takes all of the above off the computer and onto the board.

    And this is the last entry on this site. It was written as an application, and it did that job; the log outgrew the frame somewhere around chapter six. The dev diary moves to a home of its own, where the next chapter is a circuit board and not a submission — same log, same evenings, no deadline borrowed from anybody else.

    Because the residency was never the plan. It was help with the plan. The gap this whole site describes — every design decision landing on one person working alone — is real, and it is still open. The instrument was never conditional on closing it. It will exist as hardware either way: a slower road, a smaller crew, and the same log, in the open, where it has been since day one. Thank you to Synthux for the deadline. It worked.

    A small round robot with a red HAL-style eye and a crown of daisies walks away from an empty glasshouse on a cracked stone path in morning light, cables and a patch panel strapped to its back, one daisy growing out of them. The dropped envelope stays behind on the path; ahead the track runs on past a lit cabin, and daisies come up through the cracks.
    The letter stays where it fell. The daisy chain it earned comes along, and the road keeps going.

Prior work

Prototypes that shaped the idea.

01 / Hybrid groovebox

Where a solo project breaks.

My most ambitious prototype combined analog and digital sound generation: Electrosmith Daisy Patch, MAX11300 expansion, two analog VCOs, analog filtering, and many 3.5 mm patch points for control voltage in and out.

The larger version used three MAX11300 chips to expose enough 12-bit I/O for the parameter-heavy idea. It reached proof-of-concept stage, but the scope was too large: analog hardware, embedded programming, UI, DSP, enclosure and musical concept all at once. It didn't break at the code — it broke where every design decision landed on one person working alone. That's the gap this residency closes.

Hybrid groovebox prototype, panel and wiring detail.
Small Daisy-based ambient sound box experiment.

02 / Chords

Small, finished, public.

In the opposite direction, I built a small Daisy Seed ambient experiment: microphone input, a small amp, speakers, 5 V power, and firmware for slowly evolving chord textures. The intended object is simple: a small wooden box with a battery that produces soft ambient sound.

The firmware is public, documented, and MIT-licensed: C++17 on Daisy Seed, generative chord scenes, crossfading polyphonic voices, reverb, chorus, clocked sequencing, optional percussion, and optional microphone sampling — with standalone test builds, a central config, and full third-party license attribution.

github.com/mcbronkowitch/chords
Daisy Seed ambient box prototype with speakers, microphone and small amplifier on a breadboard.

Why this residency

I've shipped the firmware. Now I want to ship the instrument.

This started in the 90s, when I rebuilt the family computer into an aluminium flight case so I could carry ReBirth and my samples to friends' places. I've been converting technology into instruments ever since. Professionally I work as a programmer; C++, embedded tooling, and the microcontroller workflow are familiar ground, and the Daisy platform is what I already build on.

My ambient firmware is public, tested, and documented. The last mile I haven't walked alone is the one from working firmware to a physical instrument people can pick up and play: DSP depth, hardware decisions beyond the breadboard, enclosure, finish. That mile is exactly what this residency is built around.

Phase 1 appeals to me as much as the custom build. I'd love to prototype the first version of my modulation ideas on Spotykach: a dual-deck looper is a natural host for stepped, polyrhythmic modulation, and writing firmware for an instrument with real players is the fastest feedback loop I could ask for. I don't own a Spotykach yet — I'll order one the day I'm accepted. Everything I build in the residency will be open source; my current firmware already is. And the fixed timeframe matters: a real date at Superbooth creates exactly the productive pressure needed to make decisions.

Commitment

I have the time, and I'll show up.

I deliberately work a 30-hour week, so the biweekly sessions and 4–5 development hours fit into my normal rhythm, not on top of it. I'm based in Germany, in the same timezone — and I'm ready to build this in the open and stand at Superbooth 2027 with an instrument people can play.

Email Bastian Tonk