Skip to content

Slab 0.0.13

Choose a tag to compare

@nooga nooga released this 13 Oct 17:11
· 78 commits to master since this release
v0.0.13
7f32969
  • Limiter changes keep parallel paths aligned. Snapped lookahead changes
    update compensation before their first block, and the limiter uses its
    reported whole-sample delay consistently at ring boundaries. Machine
    displays read completed DSP snapshots; recording stop retains the final
    in-flight capture block, and preview replacement keeps ownership when
    its retirement queue is full.

  • Playback keeps running through machine and asset edits. Instruments,
    insert chains, rack parts, samples and wavetables are prepared off audio
    and adopted at block boundaries; the callback no longer waits for UI or
    compiler locks. Snapshot storage cannot be overwritten while audio uses
    it. Parallel workers sleep when idle, and live playback uses serial
    rendering when realtime worker admission is unavailable.

  • Raw DSP avoids lazy interpreter thread-local initialization. Audio
    worker slots pass explicitly, and loop enable/bounds publish together.

Known limits: large SMEAR windows can exceed small live-block budgets;
continuously changing lookahead still uses chunk-granular compensation.
Parallel playback still waits for admitted realtime workers. This release
removes control-thread waits, without claiming a universal deadline guarantee.
Insert chains support up to 128 effects. Limiter delay near whole-sample
boundaries can differ by one sample from previous rounding. See
the realtime safety audit
for details and tests.


Apple Silicon, macOS 13 or later. Built from v0.0.13, which is its complete source (GPL-3.0-or-later, see COPYING.md).

Install:

curl -fsSL https://github.com/nooga/slab/releases/latest/download/install.sh | bash

Or with Homebrew: brew install --cask nooga/tap/slab

Or open the DMG and drag Slab to Applications. It is not notarized, so the first launch needs System Settings > Privacy & Security > Open Anyway.