Lab notes

Bitcrust 1.0.0, three days in

What shipped, what the forums caught, and how AI fits into the workflow.

Bitcrust 1.0.0 went live on the iPad App Store on Wednesday. The macOS build of the same universal-purchase record is still in App Review. Windows and Linux are out on Gumroad. Three days later the bug reports are landing, the Loopy Pro thread has crossed thirty comments, and the next product is already moving. Time for the first lab note.

What’s actually shipping

Bitcrust 1.0.0 is live on the iPad App Store. The macOS half of the same universal-purchase record is still in review at Apple, so for a few more days “buy on iPad, get on Mac” is more aspiration than fact. Windows is on Gumroad. Linux is on Gumroad too, free, always (VST3 + LV2 in the tarball). $1.99 on Apple and Windows when both halves of the Apple record clear. The iPhone UI is deliberately not in 1.0.0; it lands in 1.1.x, because the iPad layout doesn’t compact, full stop. Forcing it would be worse than waiting.

What else is on the bench:

  • presitter: constrained-random patch generator. Not a randomiser. It samples within a space you define, so you don’t get noise. Early and largely unannounced until now.
  • stepbruv: sequencer and performance tool. JUCE for the audio engine, a WebBrowserComponent UI on top, because the alternative was building a generic skinning system, and that wasn’t where I wanted to spend the calendar.
  • ferment: creative processor. Earliest of the four. Concept stable, DSP not yet.

One product gets the spotlight at a time. Bitcrust still has open issues; none of the others matters until those are closed.

What the forums caught

The Loopy Pro thread is the highest-signal feedback channel right now. Within hours of release, the regulars there pinned things I hadn’t seen in weeks of solo testing:

  • AUv3 dropdowns dead in some hosts.
  • Stuck notes under specific MIDI patterns.
  • Oscillator-change-while-note-held producing a brief audio drop instead of a smooth crossfade.
  • Polyphony allocation misbehaving at the voice-stealing edge.
  • UI readability: small type at iPad-Pro density, low contrast in a couple of places.

None of this is fun to read about your own product on day one. All of it is the cost of shipping with a bench of one. The fixes are queued. Some land in 1.0.2/1.0.3. Still not sure about version numbers, sorry. The iPad readability sweep folds into the iPhone work for 1.1.x.

What I want to say to the testers, and especially to Gavinski (who recorded a screen capture with voiceover pointing at exact bars where the DSP fell over): thank you. That’s first-tier bug reporting, and it’s why solo shops can ship at all.

On vibe coding, since people asked

Yes, AI is part of the workflow. It would be a strange thing to deny in 2026, and not particularly interesting to be defensive about. Here is roughly how it fits.

Where AI helps:

  • Build pipelines: CMake config, CI scripts, the App Store packaging dance, code-signing workflows, certificate plumbing.
  • Test infrastructure and screenshot diffing for the JUCE UIs.
  • UI plumbing: parameter binding, ValueTree wiring, layout math.
  • Documentation passes, including this site, including this post, drafted, then rewritten by me, the way an editor passes a draft.
  • Cross-platform glue: things that have to be the same on macOS, Windows, Linux, and iPadOS, but for which the target-specific incantations are tedious.
  • The DSP, too. It helps me sketch filter topologies, derive coefficient updates, port a numerical scheme from paper into C++, and try variants of a saturation curve faster than I would on paper alone. I’d rather just say so.

A few things worth being clear about:

  • The DSP code still gets read line by line before it lands. If I can’t trace the control flow, justify the numerics, and explain the choice, it doesn’t ship. A generated patch is a starting point, not a commit.
  • The model doesn’t decide what sounds good. My ears do. If a block measures clean and sounds wrong, the measurement loses. That call stays with me.
  • Aesthetic decisions live outside this loop. The visual identity, the colour choices, the panel layouts: those are mine and a designer’s, in conversation, not a prompt.

The honest shorthand is “AI-assisted”. It speeds up the notation-bound parts of the work. The taste-bound parts, the listening, deciding what the instrument should sound like, stay where they have always been: in the room, between the speakers, in my ears.

If “vibe coding” means generating code you can’t read and shipping it because it compiled, that’s not what’s happening here. If it means using a tool to draft the ten-thousandth CMake snippet of a career, then sure, that part I’ll own.

What’s next

  • Bitcrust 1.0.2/1.0.3: fixes for the forum-reported items above, currently rolling.
  • Bitcrust 1.1.x: iPhone UI, a separate target, not a responsive squeeze of the iPad design.
  • Public news on the next product when there is something to listen to. Not before.

More notes when there is more to say.