8000 Releases · nooga/slab · GitHub
[go: up one dir, main page]

Skip to content

Releases

Slab 0.0.23

Choose a tag to compare

@nooga nooga released this 04 Nov 19:55
v0.0.23
472e5b4
  • Notes don't get stuck. A note no longer hangs when you edit a clip
    while it plays (deleting, adding, moving, retuning or shortening notes
    under the playhead), when the arpeggiator is switched on or off, added or
    removed mid-note, when a key is held through a stop, when the editor
    moves to another track while a key sounds, or in a rack lane playing
    two keys. A seek or a loop ends the arpeggiator's notes too.
  • Stopped, a note rings out. A note played with the transport stopped
    sounds until its tail has died away, instead of cutting off three
    seconds after the key went up, and a track that sends to a bus (a send
    reverb, a group) is heard through it. Something that never dies away
    (a drone) fades out after 30 seconds and doesn't come back on the next
    play.

Apple Silicon, macOS 13 or later. Built from v0.0.23, 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.

Slab 0.0.22

Choose a tag to compare

@nooga nooga released this 02 Nov 19:40
v0.0.22
8e9529b
  • CONVO, a convolution reverb. Play a track through a recorded or made
    space: an impulse response, any WAV. It ships with a synthetic stereo
    hall and a bowed cymbal that every note swells through, and takes
    PREDELAY, LO CUT, HI CUT, WIDTH, LEVEL and MIX. Effect machines can ask
    for an impulse response of their own (docs/49).

  • Unison can be a wall. The UNI panel has a WALL switch. On, a stack
    gets louder as voices are added (about +6 dB at 5) instead of staying at
    one voice's level, and its voices spread across the stereo field in
    pitch order, so the channels beat apart and the stack sounds wider.
    Off by default; existing projects sound the same.

  • Menus scroll. A menu or submenu taller than the window (a bank of
    128 presets) scrolls with the wheel, the arrow keys and PgUp/PgDn, with ▴ and ▾
    marking more rows; the rows per menu went from 72 to 256.

  • Ambika. A new instrument after Mutable Instruments' six-voice polysynth,
    ported from its firmware: two digital oscillators with 38 shapes (the CZ
    family, FM, vowel, 16 wavetables), a mixer with sync, ring, xor, fold and
    bit cross-modulation, a sub-oscillator or transient, noise, fuzz and a
    sample-rate crusher, then a four-pole filter, three envelopes, four LFOs
    and the 14-slot modulation matrix with four modifiers. Values are the
    hardware's. It ships with ten presets of ours and the 358 programs of the
    unit's golden card. The SVF board's band- and high-pass and tempo-synced
    LFOs are not in yet (docs/48).


Apple Silicon, macOS 13 or later. Built from v0.0.22, 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.

Slab 0.0.21

Choose a tag to compare

@nooga nooga released this 02 Nov 17:41
v0.0.21
c22998e
  • MP3 export. The Export sheet's FORMAT has MP3 at 128, 192, 256 or 320
    kb/s (44.1 or 48 kHz), with title, artist, album, year and BPM tags, for
    the mix and for stems. From the command line, --render out.mp3 --kbps 192.
    It's built in: nothing to install.
  • Exports, bounces and freezes no longer freeze the window. Starting one
    while Slab is still analyzing audio used to block everything until the
    analysis finished; now the window keeps drawing ("Analyzing sources…") and
    the export starts by itself. A render that stops advancing is reported in
    the status line and in slab.log, and quitting no longer waits forever for
    it: the project is saved for recovery and Slab exits a 10BC8 fter five seconds. A
    failed export setup can no longer leave the Export sheet busy for good.
    slab.log now also records the GPU, the display's scale, and a note when
    the window stops drawing, for reports of freezes and misdrawn screens.

Apple Silicon, macOS 13 or later. Built from v0.0.21, 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.

Slab 0.0.20

Choose a tag to compare

@nooga nooga released this 02 Nov 13:00
v0.0.20
9679a22
  • Updates from GitHub. Slab checks for a newer release when it starts and
    turns the SLAB logo into an UPDATE offer. In Slab.app, UPDATE downloads the
    release, checks it and swaps it in on a restart; Homebrew installs get EXIT &
    UPGRADE, which quits, runs brew upgrade and reopens Slab. SKIP passes on a
    version, a switch turns the check off, and About has an UPDATES button to
    check now. (Updates are offered from 0.0.20 on: earlier versions can't check.)

Apple Silicon, macOS 13 or later. Built from v0.0.20, 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.

Slab 0.0.19

Choose a tag to compare

@nooga nooga released this 01 Nov 17:17
v0.0.19
9e6dcf7
  • Drum lanes you can read. On a kit the piano roll's key column widens to
    fit the lane names, and the key button cycles ALL KEYS, KIT KEYS and CLIP
    KEYS, which shows only the lanes the clip has notes on, top aligned. Kits
    open on KIT KEYS.

  • Clips show their notes at a readable size. A clip on a track draws its
    notes over its own pitch range instead of a fixed one, so low notes no
    longer squash into a line.

  • Metronome. CLICK on the transport bar clicks on every beat while
    playing, with a slider for its level. It follows the meter, including odd
    and changing ones: the downbeat and each group start are accented. It is
    heard live only: never in bounces or renders, and not through master effects.

  • A tidier transport bar. AUTO moved into the input menu (the caret beside
    REC, which lights red while automation recording is armed). KEYS and LEARN
    are single buttons that open into their controls only when on. On a narrow
    window the bar gives up the stats, then the master meter's width, the song
    length and those buttons, in that order, instead of cutting off its right end.


Apple Silicon, macOS 13 or later. Built from v0.0.19, 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.

Slab 0.0.18

Choose a tag to compare

@nooga nooga released this 01 Nov 14:25
v0.0.18
a794af5
  • Song length and a time readout. The transport bar shows the song's
    length in minutes and seconds next to the position (tempo changes and
    ramps counted, up to the END marker or else the last clip). Click the
    position to switch it between bar.beat.sub and minutes:seconds.
  • Overlapping clips are marked, and ⌘T trims them. Where a clip lies
    over another on a track, a hatched strip along its foot shows the stretch
    it covers. ⌘T (or "Trim overlaps" in the clip menu) cuts the clips on the
    tracks you have selected so none overlap: the one on top keeps its
    stretch, and a clip lying wholly under another goes.
  • Velocity stems of a chord are separate. In the piano roll's velocity
    lane the notes of a chord used to sit on one line, and only the topmost
    could be grabbed (anywhere along its whole length). Now they fan out side
    by side where there is room, and where there is not, the lowest draws in
    front; a click picks the stem whose cap is nearest the pointer, and only
    the stem itself is a target.
  • Box select scrolls. Drag a box on the tracks or in the piano roll to
    the edge of the view and it scrolls along (faster the
    further out), so you can select past what is on screen.
  • Pinch to zoom. On a trackpad, pinching zooms time around the pointer
    in the arrangement, the piano roll and the audio editor; ⌥-pinch sizes
    the piano roll's rows.

Apple Silicon, macOS 13 or later. Built from v0.0.18, 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.

Slab 0.0.17

Choose a tag to compare

@nooga nooga released this 01 Nov 13:09
v0.0.17
9f7601c
  • Your work survives a crash. Slab saves a recovery copy of the project
    every 30 seconds while it has unsaved changes, the untitled project
    included, and restores it at the next start (docs/46).
  • Logs and crash reports. Slab keeps ~/Library/Logs/Slab/slab.log and
    writes a crash-*.txt with a backtrace when it crashes; send that folder
    with a bug report (docs/46).
  • Undo and redo are fast. They used to rebuild every machine in the
    project and could stall for seconds; now only the tracks an edit touched
    are rebuilt, and your track and clip selection stays.
  • Moving several clips keeps their layout. A selection dragged to other
    tracks shifts as a whole (it stops at the first or last track instead of
    squashing), and a ghost of each clip shows where it will land. Box-selecting
    on the tracks also selects the automation points inside the box, and
    selected points move together with clips or with each other, across lanes.
  • The machine menu is A to Z with marks. "+" and the replace menu list
    every machine alphabetically, racks included, with a mark for instruments,
    effects and presets (and the arpeggiator).

Apple Silicon, macOS 13 or later. Built from v0.0.17, 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.

Slab 0.0.16

Choose a tag to compare

@nooga nooga released this 31 Oct 23:04
v0.0.16
a513b2a
  • An arpeggiator, in a new note slot. Every instrument track can take
    a note machine ahead of its instrument: "+" in the machine bay, then
    ARPEGGIATOR. Nine modes, rates from 1/4 to 1/32 with dotted and triplet
    values, 1 to 4 octaves, gate, swing, humanize, accent, latch and a
    16-step rest/note/accent/tie pattern. It arpeggiates clips, KEYS and a
    MIDI keyboard, locked to the song's beat, and is saved in the project
    (docs/45).
  • MIDI keyboards and pads. Plug in a MIDI device and it plays the
    selected track at its own velocity, and REC records it into a clip,
    with or without KEYS on. LEARN on the transport bar binds a knob to the
    control you last touched, a pad to PLAY/STOP, STOP, REC, LOOP, track
    or knob-page steps, or a knob to one of the eight knob slots, which
    drive the selected instrument's controls a page at a time. An Akai MPK
    mini 3 works out of the box (docs/44).
  • A loudness stage for the master. The FX Rack has a new master-loud
    preset: glue compression, a diode clip that rounds off the peaks, and a
    limiter, behind four macros. LOUD drives the clip and the limiter
    together, so the mix gets denser instead of just hotter: on neon_tide it
    takes -13 LUFS to -11 at the default, -9 at 0.8 and -8 at full, with the
    peak-to-average gap falling from 15 dB to 11. GLUE, CLIP and CEIL
    trim it. Put it last on the master.
  • The machine menu shows every machine again. The "+" and replace
    menus stopped at 40 rows, so FX Rack, Rack and the newest effects (the
    harsh pack) were cut off the end. The cap is 72, and "+" on the master
    lists effects only. Dropping an effect or rack preset from the browser
    onto the machine bay while the master is selected now lands on the
    master chain, not the first track. In the mixer, dropping a preset on a
    strip (a track, a bus or the master) loads it there.

Apple Silicon, macOS 13 or later. Built from v0.0.16, 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.

Slab 0.0.15

Choose a tag to compare

@nooga nooga released this 22 Oct 13:34
v0.0.15
c98582d
  • The SM-24 Mono has a patch panel. Its new PATCH page holds four
    cords. Drag a jack from the dock onto a ringed knob (LPF CUT, HPF CUT,
    PW, VCO2 PITCH, LVL, MG FREQ), or pick SRC and DEST on a cord row. The
    jacks are FENV, AENV and AENV inverted, MG, MG PUL, S&H, NOISE, KBD, VEL,
    PRESS, VCO1, VCO2 and VCA OUT. The cords run at audio rate, so VCO2 can
    FM the cutoff and the output can feed back into the filter. A patch
    with no cords sounds exactly as before. Five new patches show it off
    (patch-*), with the demo songs/ms20_patch_bay.py.

  • Squelch 33, an acid bassline synth. A new mono machine built on the
    HOT/WET filter the SM-24 Mono used to have: one SAW or SQR oscillator,
    CUT, RES, ENV MOD, DECAY, ACCENT and SLIDE. Loud notes (the ! in a
    slabkit seq) are accented: louder, brighter, and a run of them climbs
    higher with RES up. Overlapping notes slide. Presets: classic-squelch,
    square-bounce, wet-scream, round-line; demo songs/squelch_acid.py.

  • SM-24 Mono sounds like an MS-20. Its LPF MODE gains K35 and
    OTA, the early and late MS-20 filters. Bass stays full at any PEAK,
    the peak sits on CUT, and both the HPF and LPF resonate up to
    self-oscillation. K35 is the default: grittier and lopsided when driven.
    OTA is cleaner and sings. HOT and WET are still there for the acid
    sound. New presets: k35-scream, k35-round-bass, ota-singing-lead.
    A new SM-24 starts from a re-voiced init patch; saved songs and presets
    keep their mode and sound as before.

  • A harsh effects pack (docs/43).

    • Octaver gives one and two octaves down the way analog divider
      pedals do, with a GLITCH knob to make it chatter, plus an
      Octavia-style octave-up fuzz.
    • Wobble is a filter or wah swept by a synced LFO, a 16-step
      sequence, the playing's envelope (auto-wah) or a pedal, and doubles
      as a tremolo or gate.
    • Folder is an anti-aliased wavefolder.
    • Grinder stacks ten distortion curves up to four deep, from a
      rounded overdrive to a dead zone, with sizzle, bass-driven flux and
      phase distortion.
  • Harsh rigs. Twelve FX Racks under harsh/, among them Wobble
    Oktaver, the distortion-chorus-distortion Sandwich, Octavia Portal,
    Kodiak (big, gnarly bass), Cross Bass (Justice-style) and Four Slot.
    songs/kodiak_club.py is a demo built from them.

  • OTT and Supercharge. Multi's RATIO now reaches 100 and its UP 4:1,
    with an OTT preset; Char has a Supercharge preset.

  • Chorus can choke. FEEDBACK, WET HP and INVERT go past the Juno:
    inverted at half mix, it hollows out a distorted bass for a second
    distortion to bring back. Existing chorus settings sound the same.

  • Building from source needs Zig 0.17. 0.16 no longer builds Slab,
    and 0.17 no longer fails on the build script (#3).

  • Rigs. Rack and FX Rack sit under a RACKS heading in the machine
    picker, with factory rigs in their preset menus: Fretwire Clean Rig and
    Crunch Rig, Bass DI + Amp, and Parallel Squash (an FX Rack). A rig
    opens folded to its named macro knobs; the fold button shows the lanes.
    The old split and layer racks are rewritten as lanes.

  • Group into a rack. Shift-click devices in the bay to select a run,
    then ⌘G moves them into a new Rack (or FX Rack) with their settings and
    automation; ⌘⇧G on a one-lane rack takes them back out. ⌘G still groups
    tracks when no devices are selected.

  • Rack panel. KEY, VEL and CHAIN tabs edit each lane's zones as bars,
    inserts reorder by dragging their title strip, MAP outlines every
    control it can map, and turning a mapped control by hand moves its
    macro.

  • Automate inside a rack. Controls of the machines in a rack's lanes
    now get automation lanes, named with the machine (AMP2 GAIN), and
    they keep working when lanes or inserts move. Files write them as
    paths such as fx1/2.1:amp-gain (docs/22).

  • slabkit builds racks. rack(), .lane(), .macro() and .map()
    make racks in Python, song.track("Bass", "rack", "bass-di-amp") loads
    a rig, and slab --describe lists Rack and FX Rack with their macros.
    songs/rack_rigs.py is a demo.

  • Rack macros. Racks and FX Racks get eight macro knobs (rk-m1…rk-m8)
    and a CHAIN control that automate like any knob. MAP, then click a
    control inside the open lane (or a lane's LV or PN), puts it on the
    picked macro; each mapping has a MIN and MAX in the control's own units
    and an optional formula such as x^2 or x * (1 - m4). A macro can
    drive a rack nested inside. Mapped controls light their automation LED
    and follow the macro smoothly, and macros save with the rack's presets.

  • Headless renders play Racks. slab --render and --stems rendered
    a track with a Rack on it as silence; they now load it as the app does.

  • Rack lanes take effects, and there's an FX Rack. Each lane of a Rack
    now holds a chain: its instrument and up to 16 inserts, shown beside the
    lane list the way the bay shows a track's, each with its own preset
    menu, bypass, replace and remove, and + to add one. The new FX Rack goes in an effect slot and runs its
    lanes in parallel on the track's signal; an empty lane is the dry path.
    Lanes get SOLO, racks fit inside racks three deep, and a lane with a
    latent insert no longer smears against the others: the rack lines them
    up and reports the latency. Old racks open and sound as before
    (docs/42).

  • Hammerwork Grand, a physically modeled piano. Felt hammers strike up
    to three detuned strings per key, which ring into a soundboard through
    a moving bridge. Velocity changes the tone the way a real hammer does,
    bass and treble keep their own inharmonicity and decay, and the
    unisons give the piano's two-stage decay. PEDAL lifts the dampers on
    held notes too. Six presets. See docs/41.

  • Skinwork Kit, a physically modeled drum kit. Kick, snare with
    rattling wires, side stick, three toms, closed, pedal and open hats,
    crash, ride and ride bell on the GM drum map. Toms and kick drop in
    pitch when hit hard, cymbals bloom into a wash, and a closed hat chokes
    an open one. Five presets. See docs/41.

  • Fretwire gets pickups, wiring and bodies. The bass and guitar have
    a second page. Choose the neck pickup, the bridge pickup, both, or both
    out of phase. Pick single coil, P-90, humbucker or split coil, and set
    how close the magnets sit. Real tone and volume pots roll the tone into
    the mids and clean up an amp's drive. The strings now share a body,
    SOLID, SEMI, HOLLOW or ACOUSTIC, that colors their decay and can be
    miked (AIR). There is also an under-saddle piezo, and open strings that
    ring in sympathy. New presets include twin-humbucker, p90-crunch,
    semi-hollow, out-of-phase and acoustic guitars, and jazz-both, p-bass,
    hollow and acoustic basses. Saved bass and guitar parts now sound
    slightly different on the default solid body's dead spots; set COUPLE
    to 0 for the old sound. See docs/41.

  • Separate STOP and PLAY. Pressing STOP again while stopped returns
    to the loop's start, or to the song's start with the loop off.

  • Musical typing. Turn on KEYS in the transport bar to play the
    selected track from the computer keyboard. PIANO is one chromatic row.
    GRID is four rows in fourths like a Push, in key when a scale is set.
    CHORD plays in-key chords on the bottom row under a melody on the rows
    above it. With KEYS on, REC records what you play into the open clip
    or a new one, layering pass after pass on a loop (docs/40).

  • Octaves and scale in the piano roll. A pressed key lights the same
    note faintly in every octave on the keys and the grid. In DRAW mode a
    ghost shows the note a click would add, with outlines in its other
    octaves. A picked scale now marks its keys with a stripe (solid on the
    root), greys the keys outside it, and tints its rows in the track's
    color.

  • New Project no longer crashes while a reverb rings. Starting a new
    project, or opening one, while the old project's master effects were
    still sounding could crash Slab.

  • Juniper-8, a Roland Jupiter-8. Eight voices of two VCOs with
    exponential cross mod, VCO-2 synced to VCO-1, and PWM on both pulses. A
    6 dB HPF feeds the IR3109 filter, with 24 dB and its thinner 12 dB tap.
    Two envelopes with key follow and an inverting ENV-1, and one LFO
    shared by every voice, with delay. It ships with all 64 of Roland's
    factory patches, read off the original patch sheets. See docs/39.

  • C-Beam 80 ships every CS-80 factory preset. All 22 of Yamaha's
    presets as their Channel I + II pairings (STRING 3/4, CLAVICHORD, ORGAN,
    GUITAR and FUNKY 1-4 are new), and the Owner's Manual's ten programming
    examples, clarinet to timpani, under manual/. The presets it shipped
    with read the charts about 13 % low; they now match them.

  • Verb's rooms and halls can turn dense right away. A new DENSITY
    switch sets VELVET, which scatters every echo inside the reverb's loop
    [a velvet feedback matrix, Schlecht and Habets 2020]. A hall with no
    input diffusion becomes a smooth wash about three times sooner (64 ms
    instead of 190), with no flutter and DECAY still accurate. New presets
    velvet-hall and velvet-room. CLASSIC, the default, sounds exactly
    as before.


Apple Silicon, macOS 13 or later. Built from v0.0.15, 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.

Slab 0.0.14

Choose a tag to compare

@nooga nooga released this 15 Oct 02:30
v0.0.14
6d616d0

Thanks to Lost Robot, the author of septabee, for pointing out the
audio-thread inefficiencies that this release fixes.

  • C-Beam 80, a Yamaha CS-80. Eight notes of two complete voices each.
    Each voice has a linear-in-Hz VCO, an HPF and an LPF that don't
    self-oscillate, and the IL/AL filter envelope behind CS-80 brass. Velocity
    is a fading initial-touch accent. Per-note pressure opens the filter,
    raises the level and brings in vibrato on the pressed notes only. The
    sub oscillator, ring modulator, BBD chorus/tremolo, keyboard scaling,
    constant-rate portamento and sustain are global, as on the original.
    It ships with Yamaha's factory pairings from the Owner's Manual charts
    and four sounds of ours. See docs/38.

  • Choose the audio buffer size. The audio menu next to record lists
    64 to 1024 frames with their latency; 64 is 1.3 ms. The choice is
    remembered.

  • Notes played at idle sound at once. A key pressed after the app
    had been quiet could wait up to 50 ms before reaching the engine.

  • Recorded takes land in time. Placement now uses the latency the
    audio device reports each way, plus how long the input actually
    waited, instead of a two-buffer guess. With AirPods as the output,
    takes used to land about 150 ms late.

  • Record from any input, mono or stereo. Right-click a track's R to
    pick its input: In 1, In 2, … or a stereo pair. Before, every input
    of an interface was mixed into one, 6 dB down and with the other
    inputs' noise. The choice is saved with the project.

  • Recording holds up when things go wrong. Audio the disk couldn't
    keep up with becomes silence instead of shifting the rest of the take
    earlier; seeking or stopping ends the take where it still lines up; a
    loop pauses for the take. Unplugging a device, a sample-rate change
    from another app, or the system audio service restarting now reopens
    the device instead of leaving it silent.

  • The Sampler no longer aliases when you play high. Clean playback
    now band-limits the sample to the speed it is read at, using octave
    copies made when the sample loads, so playing a sample an octave or
    more above its root, or a 96 kHz file, no longer folds whistles and
    grit back into the mix.

  • No more Sampler clicks on retrigger, choke or voice steal. Its
    envelope now picks up from wherever it is, a choked hi-hat fades
    instead of cutting, and a note that takes over a sounding voice fades
    the old one out.

  • The Limiter no longer clips transients. It now holds the gain
    reduction a peak needs across the whole lookahead and ramps into it, so
    a drum hit or a single-sample spike over the ceiling is turned down
    smoothly instead of being clipped. Latency is unchanged.

  • Machines use about 20% less CPU. The fy compiler computes repeated
    expressions once, addresses state fields directly and writes them as
    soon as they are final. Output is bit-identical.

  • The Extract pack finds uv when Slab is opened from Finder. Its
    download said uv was missing unless Slab was started from a terminal; it
    now looks in Homebrew's, ~/.local/bin and ~/.cargo/bin too.

  • Starting a pack download can no longer crash Slab. Clicking Download
    or Import sometimes quit the app as the import began.

  • Stop lets tails ring. Stopping releases the notes and lets reverbs
    and delays ring out instead of cutting everything with a click; press
    play again and the tails carry on.

  • No clicks from edits while playing. Mute, solo, track enable and
    insert bypass fade over a few milliseconds. Adding, removing,
    reordering or replacing instruments and inserts fades the old chain
    out and the new one in, and a new instrument picks up held notes.
    Bypassing a lookahead or oversampled effect keeps its latency, so the
    rest of the mix no longer jumps in time; any latency change crossfades.
    Audio clips fade at cut edges and around seeks and loop wraps.

  • 5 ms less latency. Audio reaches the output one block sooner on
    every path.

  • About 6% less CPU for the same audio: peak scans run on vectors and
    are shared between inserts, compensation delays copy in bulk, and
    machines no longer copy their control tables every block.

  • A blown-up machine can no longer reach your speakers. A track whose
    signal turns NaN or infinite (an unstable filter, a division by zero)
    is silenced for that block and its machines reset, so the fault cannot
    spread into buses, sends or the master. The output stage never passes
    a non-finite sample, in any clip mode; the hard clip used to turn one
    into full-scale DC. Exports write silence there too.

  • No more stuck notes from mute, solo or odd notes. A track that is
    unmuted, un-soloed or re-enabled starts clean and picks up the notes
    sounding at that moment. Notes past a trimmed clip end, zero-length
    notes and notes shorter than a sample no longer hang.

  • Smooth faders. Dragging a track or master fader ramps per sample
    instead of stepping each block.

  • Tempo-synced effects on the master follow the song. A synced
    phaser on the master used to restart every block (a buzz); auditioning
    while stopped now runs synced LFOs too.

  • Audio devices recover. If the input stalls or is unplugged while a
    track is armed, playback keeps running with silent input instead of
    freezing. A device that fails to open is retried about once a second.

  • Adding tracks no longer races playback. Slicing to a sampler,
    extracting notes, chords or drums, placing stems and placing bounces
    insert tracks with the device stopped, as adding and moving tracks
    already did.

  • Parallel rendering follows the output device. When macOS switches
    the default output (headphones, AirPods), playback renders serially
    until the render workers have joined the new device's workgroup. After
    a bounce, freeze or export they re-request realtime scheduling. Arming
    a track during a freeze or export no longer restarts the device.
    If workers keep the audio thread waiting for two blocks in a row,
    playback renders serially until they have been re-admitted.

  • Fewer first-use stalls. Clip stretchers and the duplex capture
    buffer are allocated and touched before audio uses them.


Apple Silicon, macOS 13 or later. Built from v0.0.14, 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.

0