Bitcrust 1.1.0: 64 presets, less than half the CPU
64 new factory presets, an engine that does the same work in well under half the time, and a new macOS minimum.
Bitcrust 1.1.0 is out. Mac and iPad are live on the App Store, and the macOS, Windows and Linux builds are on Gumroad.
Two headline changes: a lot more presets, and a lot less CPU. Plus one housekeeping change you should read if you’re still on Big Sur.
64 new factory presets
The factory library goes from 115 to 179. The new batch is spread across every group (8 basses, 4 chord memories, 6 drum kits, 8 FX and textures, 6 keys, 8 leads, 8 pads, 6 plucks, 10 sequenced) and each one shows off something specific: glide and legato, unison, hard sync, ring mod, poly aftertouch, the mod wheel, all three LFOs at once, sequencer probability and slide, and FX-rack reordering.
Every one of them carries a new New tag, so if you want to hear just the new ones, click the New chip in the preset browser. The tag moves to the next batch in the next release; these ones keep their other tags.
Less than half the CPU
This is the change I’m happiest about, and you won’t hear it. That’s the point.
Bitcrust emulates the SID’s clocking: each voice runs three chips, and each chip ticks through roughly 20 of the SID’s cycles per output sample. The old code did the full work on every one of those cycles, including computing the waveform, even though the resampler only keeps the last one. At full polyphony that’s 36 chips doing about 35M cycles of busywork a second, which was a third of a CPU core before a single effect ran.
The chip now only does per-cycle what actually has to be per-cycle. Phase and noise advance in one step between samples, the envelope catches up when a sample is picked up, and the waveform is computed once per sample instead of twenty times. Separately, the engine had been looking up its parameters by name on the audio thread, per voice, every block: about a thousand string lookups and memory allocations per block at full polyphony. It now resolves them once at startup.
Numbers, on an M-series Mac:
- 36 chips at 48 kHz (full polyphony, Vintage mode): 35% of a core down to 10%.
- Rendering every factory preset with 6-note chords at 128-sample buffers: 33.2 seconds down to 14.6.
Smaller buffers gain more, which matters on iPad, where AUv3 hosts like to run small.
The part I cared about most: output is bit-identical. Not “sounds the same”, identical down to the last bit. The old per-cycle code is still in there as a reference, and a test drives both with random register traffic (gate toggles, rate changes, every waveform combination, sync, ring mod) and compares every sample. On top of that, every deterministic factory preset renders to the same hash before and after. If your 1.0 project sounded a certain way, it still does.
Honest caveat: Modern oscillator mode gains less. Its anti-alias filter has to run at the SID’s clock rate, so that part can’t be skipped. It’s faster than 1.0, just not by as much as Vintage.
macOS 12 is the new minimum
1.1.0 needs macOS 12 (Monterey) or later. The current Xcode, which Apple requires for App Store submissions, can’t build for anything older, and I’d rather ship one minimum everywhere than keep a separate toolchain alive for Big Sur. If you’re on Big Sur, 1.0.9 keeps working; it just won’t update.
iPad is unaffected, and 1.1.0 runs on iPadOS 27.
Which Mac version to get
Same as before, now written down in one place:
- Mac App Store: the Standalone app, plus the iPad version (Standalone and AUv3) as a Universal Purchase. No AU or VST3 on the Mac, because the Mac App Store doesn’t distribute plugin formats.
- Gumroad: AU, VST3 and Standalone, signed and notarized. Get this one if you want bitcrust inside a Mac DAW.
Both are the same synth and the same 1.1.0.
Under the hood
The effects rack (drive, bitcrusher, delay, chorus, reverb, compressor, limiter) moved into the shared library the other Anode Labs plugins build on, and the framework underneath went from JUCE 8.0.6 to 8.0.15. Neither changes anything you can hear; the same bit-identical checks cover both.
More notes when there is more to say.