Workshop Journal · Chapter 05
Macros & the panel · CPU hunt, part I
Chords without a chord mode, 160% of a chip
18–19 Jul
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.
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.
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.
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.
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.
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.

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.