Skip to content

Releases: nooga/slab

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.

Slab 0.0.13

Choose a tag to compare

@nooga nooga released this 13 Oct 17:11
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.

Slab 0.0.12

Choose a tag to compare

@nooga nooga released this 12 Oct 16:29
v0.0.12
b8b6566

Machines from your own folder, four new effects, and Slab on raylib 6.

  • Slab looks right with raylib 6. Built against raylib 6.0 (what
    brew install raylib gives now), the interface drew at half size in the
    window's corner on a Retina display, and the window could open mostly
    off-screen. It now fills the window, and the window opens inside the
    display, shrunk to fit a 13-inch laptop. Dragging the window between
    displays keeps the scale right.

  • Machines from your own folder. Slab loads machines from
    ~/Music/Slab/Machines/<id>/<id>.fy as well as its own, with their
    presets and assets beside them. A machine there can include Slab's
    shipped kernels, and the folder can be a link to a machine kept in its
    own repository. slabkit and slab --describe see them too.

  • Native stereo Phaser (phaser2), inspired by Moog MF-103 and MXR
    Phase 90 controls: four/six/twelve stages, signed resonance, manual or
    tempo-locked sweep, stereo LFO offsets, main/aux response and nine factory
    presets. Beat-synced machine preparation now follows the actual clock
    within automation/smoothing sub-blocks. See docs/36 for an audition demo.

  • Three audio manipulation effects. Buffer Loom (buffer2) captures
    live stereo audio for granular scatter, reverse grains, frozen textures
    and clocked repeat. Modal Bank (resonator2) tunes eight damped resonances
    to harmonic, metallic or pipe-like series. Sideband (shift2) shifts
    frequencies up/down in Hz or applies ring modulation, with stereo offsets
    and controlled feedback. Each has five factory presets and normal insert,
    send and automation support. See docs/35 for controls and an audition demo.


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

Choose a tag to compare

@nooga nooga released this 11 Oct 22:02
e16d751

Strings you can play. Slab gains a modeled electric bass and guitar that
bend, slide, hammer on and pull off like the real thing, an amp and
cabinet to plug them into, a shelf of orchestral and band samples that
ship in the box, and a ballad to hear it all on.

Fretwire: modeled bass and guitar

  • Fretwire, a modeled electric bass. A new instrument that plays a
    bass string rather than a recording of one: each note's pluck, decay,
    pitch glide and tone depend on how hard you play, where the string is
    plucked and heard, and which string and fret the note falls on.
    Presets for fingers, the bridge pickup, pick, slap, pop, flatwounds and
    palm muting. Its tone is a direct recording's; put an amp after it.
  • Fretwire Guitar. The same waveguide string strung as a six-string
    electric guitar, fitted to a sampled guitar, with presets for the neck
    and bridge pickups, fingerstyle, funk, jazz, palm muting and slide.
  • Bend and slide. A note's pitch curve bends the string smoothly, or
    with MOTION on SLIDE moves it fret by fret with the rasp of a finger on
    the windings. AUTO tells them apart: a curve that goes further than a
    string can bend becomes a slide.
  • Hammer-ons and pull-offs. A note that overlaps the one before it
    (up to a fourth away, in a single-note line) plays on the same ringing
    string: the finger hammers on or pulls off instead of plucking again.
    Chords and strums are left alone.
  • Finger vibrato. A note's slide expression is its vibrato depth:
    draw it rising under a held bend and the string sings, pushed sharp and
    back like a guitarist's finger. VIBRATO RATE and DEPTH on the panel.
  • Ampstack, an amp and cabinet for bass and guitar. Four amp voices
    (a tube bass head, a clean American combo, British crunch and high
    gain), each with its own three-knob tone stack that interacts like the
    real circuit, a power amp that sags, five speaker cabinets with a mic
    position, and a DI blend for bass. Presets for bass and guitar.

Sounds and songs

  • More instruments ship with Slab: violin, viola and cello sections,
    contrabass pizzicato, trumpet and trombone (from VSCO 2 CE), two
    fingered electric basses, a clean electric guitar and an alto sax
    (from Karoryfer), all CC0 and ready in the sampler without a download.
    The full Karoryfer and VSCO libraries are new packs in the Library.
  • Long Light, a new demo song: a slow rock ballad whose guitar solo
    bends, slides, hammers on and shakes its notes, after David Gilmour.
  • Strummed guitar in slabkit. clip.strums(prog, "D.DU.UDU") plays a
    progression as a guitarist would: real chord shapes (open chords, barre
    shapes up the neck), down strums low to high and up strums over the top
    strings, the pick's timing across them, softer strings as it goes, and
    dead strums. clip.strum is one strum.

Audio files

  • FLAC files import as audio clips: Import audio… and the sampler's
    file picker accept .flac, and the browser lists FLAC samples in your
    Samples folder, a project's audio and library packs.
  • AIFF files load. The import picker offered .aif but couldn't read
    it. AIFF and AIFF-C (16/24/32-bit, little-endian sowt, float) now
    import as audio clips, load in the sampler and keymaps with their loop
    and root note, and show in the browser.

Docs

  • A composing walkthrough (docs/33) takes you from a musical brief to an
    editable sketch with GEQ, a shared delay and a mix and stem export; the
    production guide is updated for sends, clip automation and GEQ.

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

Choose a tag to compare

@nooga nooga released this 05 Oct 23:07
9fa5854

The editors become one instrument: the arrangement, the piano roll and
the audio editor scroll, zoom, select and resize the same way, a
stretch of time can be selected and repeated, notes sound as you touch
them, and several clips can be edited together. Plus a synthwave
factory bank and a new demo song to hear it with.

Editing feels the same everywhere

  • One way to scroll and zoom in the arrangement, the piano roll and
    the audio editor: the wheel or a swipe scrolls, ⌘-wheel zooms
    time
    around the pointer, ⌥-wheel zooms the piano roll's rows, ⇧-wheel
    scrolls time with a mouse. (⇧-wheel used to zoom.)
  • Minimaps work the same in every editor; drag the window's edges to
    zoom.
  • Rulers: click or drag any ruler to scrub, the clip editors' too;
    ⇧-drag across a ruler to set the loop. The audio editor's ruler
    now shows the song's bars and meter.
  • Both ends of every clip and note resize, and a resize changes the
    whole selection. Dragging a note clip's left edge keeps its notes where
    they sound. Edge grab zones scale with the object, so short notes can
    still be moved.
  • Box select works the same everywhere: a press on empty space
    clears the selection (⇧ adds), the box selects what it touches.
  • Notes: double-click empty grid to add a note, double-click a note
    to delete it, ⌘-drag to draw without the DRAW latch; a drawn note
    comes out selected; ⇧- or ⌘-click toggles a note or a clip.
  • Escape during a drag puts everything back.
  • Keys: Z zooms to the selection, ⌘D duplicates (D still
    does), ⌘L loops the selected clips, ⌘E splits them at the
    playhead; ⌥-arrow nudges by 1/64 on any grid; a pasted selection lands where
    you last clicked on empty space. Keys follow the pane you last clicked
    in, track headers and editor buttons included, and the audio editor no
    longer takes note keys.
  • Time selection: drag across empty lanes to select a stretch of
    time on the tracks you cross. ⌘D repeats it right after itself
    (press again to keep going), ⌫ empties it, ⌘C / ⌘V copy it and
    lay it down where you click, ⌘L loops it, ⌘E cuts the clips at
    its edges. ⌘I Insert time and ⌘⇧⌫ Delete time open or close
    that much time across the whole song, tempo, meter and sections
    included. In the piano roll, ⌘D on a box selection repeats the whole
    stretch, gaps and all.
  • ⌘J joins the selected note clips on a track into one.
  • ⌥-drag a clip or a note to copy it; ⌘-drag on an empty lane
    draws a clip as long as you drag.
  • Hear notes as you edit: pressing a note holds it until you let go,
    dragging it to a new pitch plays the new pitch, a selected chord sounds
    as a chord, and it works while the song plays too. HEAR in the
    piano roll's head turns it off.
  • Play the piano roll's keyboard: press a key to hear it, drag along
    the keys to glide; ⇧-click a key selects every note of that pitch.
    Keys light up while they sound, and so do the notes under the
    playhead.
  • Edit several clips together: select a few note clips and the
    piano roll shows them all on the song's timeline: a tab for each, the
    others' notes as faint ghosts in their tracks' colors. Click a tab or a
    ghost note to edit that clip; the view stays where it is.
  • Menus list their items in the same order in every editor, and an
    unwarped audio clip's editor has a right-click menu too.

Factory sounds

  • Afterimage Express factory demo: a complete 118 BPM synthwave
    instrumental with extended chords, driving arps, shared effects and
    section automation. Open it from the factory DEMOS collection. Its
    eleven instruments use the Afterimage bank; all notes and processing
    remain editable, with no extra samples or packs to download.
  • Afterimage factory bank: eleven instrument presets for outrun and
    synthwave: four drum kits focused on kick, snare, hats and toms, a bass,
    plucked arp, FM glass, wide pad, brass, mono lead and noise sweep. Find
    afterimage in each instrument's preset menu. These are dry instrument
    sounds; the song's insert chains and shared effects are separate.

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

Choose a tag to compare

@nooga nooga released this 05 Oct 17:12
51e7a0d

Audio into music: hum a line and get notes, put a voice in key, hear a
clip's chords and drums back as Slab instruments, and take a whole song
apart into stems with a neural network running on your Mac.

Audio into music

  • Audio to notes: right-click an audio clip and its sung, hummed,
    whistled or played line comes out as notes on a new Cream track under
    it, with a lead sound, or a bass when the line sits under C3. The notes
    land on the song's beats, follow the clip's warp, and are corrected
    for a take that isn't tuned to A440. The clip is muted.
  • Hum to notes: right-click a track's arm button to switch it from
    R to N, and a take recorded there turns into notes as soon as
    you stop.
  • Tune: put a voice in key. Press TUNE in the audio clip editor,
    or choose Tune from a clip's right-click menu. The key comes from
    the take itself; change it, pick a scale, set SPEED (0 for the
    hard effect, slower for gentle correction) and HUMAN (keep the
    singer's vibrato). The waveform shows the sung and the tuned pitch.
    The voice keeps its own character because its formants stay put. It
    works on warped and unwarped clips, and in slabkit as
    audio(…, tune="A", scale="minor").
  • Chords to notes: right-click an audio clip to hear its chords
    back on a pad. Chords, sevenths and the key are found beat by beat,
    even from a full band with drums, and land as a pattern on a new Juno
    track. The clip is named after them ("C Am F G7"), and its Tune key
    is set to the song's.
  • Drums to a kit: right-click a drum loop, take or stem and it
    becomes a sampler kit and a pattern. Its hits are sorted into kick,
    snare, hats, toms and percussion on General MIDI keys, and the cleanest
    hit of each becomes its pad. Each hit is judged by what it adds over
    what was already sounding, so bleed under it doesn't fool it. On a
    whole song, Explode runs it on the separated drums: about 87% of hits
    were named right on rendered songs.
  • Split into stems: take a song apart into drums, bass, other and
    vocals, each on its own track under the clip and playing in its place.
    It uses HTDemucs, a neural network, running on your Mac through
    CoreML: a three-minute song takes about 15 s. It needs the Extract
    pack (Browser, Packs), which downloads and sets up the model once
    (about 1 GB of tools and 200 MB of model; it needs uv, brew install uv).
  • Explode…: one sheet for all of it. Pick stems, drums, bass,
    chords and melody, and a song comes back as stems, a drum kit with its
    pattern, the bassline and melody as notes, and the chords on a pad.
  • Extract and Tempo from clip submenus: an audio clip's
    right-click gathers Audio to notes, Chords to notes, Drums to a kit,
    Slice to a sampler track, Split into stems and Explode under
    Extract.
  • Song tempo to clip and Section tempo to clip set the whole
    song, or the clip's section, to the tempo the clip was played in. The
    tempo comes from a warped clip's markers, or is detected from an
    unwarped clip's hits. Song follows the clip's changes joins them
    under Tempo from clip.

Fixes

  • Hits under a loud bass are found on the hit, not up to 16 ms
    off. That makes warp markers, BEATS slices and grooves from such
    takes sit tighter.
  • Slice to sampler on a track at its own tempo ratio (3:2 and the
    like): the new pattern is as long as the clip, and the slices cover all
    of it, the last one included.
  • Song follows clip on a track at its own tempo ratio: the tempo
    changes cover the whole clip, and the song's own tempo comes back where
    the clip ends.

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

Choose a tag to compare

@nooga nooga released this 05 Oct 12:03
0a6396a

Warp: audio on the beat

  • Warp an audio clip (right-click → Warp, or WARP in the audio clip
    editor): it locks to the beat and follows the tempo, tempo changes and
    ramps included. Short loops (30 s or less) arrive warped when imported,
    at the tempo Slab hears in them, so they play in the song's tempo right
    away.
  • ⌘-drag a clip's edge to stretch it; a plain drag still trims.
  • Five ways to stretch (MODE in the audio clip editor):
    • TAPE: like a tape, speed and pitch move together.
    • BEATS, for drums and loops: cut at the hits, each played at its
      own speed from where it lands, so hits stay sharp at any tempo.
      PRESERVE cuts at the hits or every 1/16, 1/8, 1/4; GAP fills a
      stretched slice with silence or its looped tail; DECAY shortens each
      slice.
    • MIX, for anything (full mixes, pads, chords): a phase vocoder that
      keeps the pitch, resets on hits and holds the stereo image.
    • VOICE, for vocals, bass and leads: matched grains, no phasing;
      GRAIN sets their length.
    • SMEAR: Paulstretch-style extreme stretching into texture; SIZE
      sets how much.
      Warping picks BEATS for short loops full of hits and MIX for the rest.
  • TRANSPOSE and FINE in every mode but TAPE: pitch apart from time.

Editing warped audio

  • Hits: Slab finds them in every audio file, shown as ticks in the
    audio clip editor.
  • Warp markers: drag a marker and the audio around it stretches;
    ⌘-drag slides the audio under it; drag a hit straight onto the beat.
    Double-click the strip to add one; right-click for Warp straight from
    here
    and more.
  • SEG BPM in the editor: drag it, double-click to detect the tempo;
    Tempo ×2 / ÷2 from the right-click menu.
  • Quantize hits to grid: a live take's hits pulled onto the grid.
  • Follow its beats: a take that drifts gets a marker on every bar, so
    it stays on the grid.

Audio and the song's time

  • Warped audio plays the groove: swing a drum loop with the song's or
    the track's groove, like the notes.
  • Extract groove from an audio clip's hits: a drummer's feel for your
    MIDI tracks.
  • Song follows this clip: the song's tempo map from a warped take, so
    a performance played without a click sets the tempo for everything.
  • Slice to a sampler track: a loop cut at its hits onto sampler pads
    from C1 up, with a pattern playing them where they played; rearrange
    the break as notes.

Audio clips

  • Stereo clips draw both channels, left over right.
  • Clips play through a band-limited resampler: cleaner rate changes, no
    aliasing when sped up.
  • Unwarped clips no longer drag past the end of their audio, and the
    waveform no longer stretches across silence.

slabkit

  • track.audio(..., warp=bpm) or fit_beats=, with mode="tape",
    "beats" (preserve=, gap=, decay=), "mix", "voice"
    (grain=) or "smear" (size=), and transpose=, fine=.

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

Choose a tag to compare

@nooga nooga released this 05 Oct 01:31
687c81c

Time: tempo, sections, groove

  • Tempo changes. Right-click the ruler: Tempo change here, Ramp to
    next tempo
    , Remove tempo change; drag a change's value on the ruler.
    Steps and linear ramps, exact to the sample; editing the tempo while
    playing keeps the playhead on its beat. The BPM field sets the tempo
    where the playhead is.
  • Sections and locators. A lane above the ruler: sections (INTRO,
    VERSE, …) back to back, locators (named flags) and the song's END.
    Double-click to add a section, drag to move, right-click for the rest;
    ⌘← / ⌘→ jump between them. A section's dialog sets its name, color,
    tempo, meter and groove, written into the maps at its start. Sections
    sit on bars; with ⌥, anywhere on the grid (a pickup).
  • Arranging by section. Duplicate section, Move section
    earlier/later
    , Delete section and its content: clips, automation,
    tempo and meter changes and locators move with it, cut cleanly at its
    edges.
  • Groove. Swing and feel applied as notes play, never written into
    them: MPC swings, triplets, samba, laid back, loose, and grooves that
    follow the meter's groups (aksak). The song's groove (ruler menu), a
    section's, or a track's own with AMOUNT and SHIFT (piano roll header).
    Extract groove from a clip, Commit groove into the notes. Replaces
    the piano roll's SWING.
  • Polymeter and polytempo. A track can have its own meter and a tempo
    ratio (3:2, 4:3, 5:4, …) from its right-click menu; its clips run in
    its own beats.

Bounce, freeze, export

  • Bounce a selection of clips to a new track, after the instrument,
    the effects, the fader or with its sends; the originals mute and can be
    thawed back, and a bounce shows STALE when what it was made from
    changed.
  • Freeze a track (right-click its name): its audio plays instead of
    its machines to save CPU; Unfreeze, Freeze again, Flatten to
    audio
    . FROZEN / STALE on its header.
  • The Export sheet (⌘R): presets (MASTER, STREAMING, CD, STEMS FOR
    MIXING, SECTIONS, LOOP, PREVIEW, BROADCAST, ARCHIVE, and your own),
    tabs for tracks, format, level and files. Stems from one render, chosen
    per track; WAV, AIFF, FLAC (Slab's own encoder), ALAC, AAC; 44.1–96
    kHz; mono or stereo; dither; normalize to a loudness or peak with a
    report card; name templates with folders; title/artist/album/year tags
    in every format; a file per section; WAV cue points from sections and
    locators, and loop tempo for apps that sync loops.
  • Clip mute.
  • Command line: --stems, --sections, --normalize, --rate,
    --mono, --flac-level, tags and more (docs/19).

slabkit

  • song.tempo(), section(groove=), Song(groove=), track.groove(),
    track.time(); songs write their sections and END.

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

Choose a tag to compare

@nooga nooga released this 04 Oct 15:15
22a6f90

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

Choose a tag to compare

@nooga nooga released this 04 Oct 12:47
3bd6fcf

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