Feature Overview

Built for the way
you work with samples.

Library, analysis, playback, search, waveform, smart collections, organisation — every feature in AudioHaus, organised by what you do with it. Creator power-tools (Create Variation, batch export, DAW integration) are planned for a future update.

Library

Drag a folder. Done.

Drag-folder import

Drop folders into the app, per-folder enable / disable. SQLite FTS5 index survives restarts; only new or changed files re-analysed.

Hot-remount aware

When an external SSD reappears, missing rows restore instantly without re-scan. Missing files marked [MISSING] with right-click relink.

Tags, ratings, notes

Free-form #tag system in the main search bar. Star ratings 1–5 and per-sample notes, filterable by minimum rating.

Playback & transport

Three playback modes. One engine.

Tape Mode

Varispeed — pitch and tempo coupled, like a tape machine.

Stretch Mode

Tempo-only, pitch preserved. Powered by the signalsmith-stretch STFT engine.

Pitch Mode

Pitch-only, tempo preserved. Realtime across the 20-voice pool.

Pitch-lock persistence: lock ON keeps pitch across files, lock OFF resets to 0 on every load.

True-peak normalisation

Target −1 dBFS on load, computed off the message thread. Separate output-monitor and DSP gain (0 to +24 dB).

Reverse, loop, transients

In-place reverse with Sticky / Auto-Reset modes. Loop region per sample. Auto-detected transients with Option-click add / drag / remove; right-click the Trns toggle to set default visibility.

Atomic context swap

Click-preview audition, Spacebar promotes to transport at the audition virtual position. Rapid scrub through 100 dots publishes only the latest — no DSP gap.

Right-click Play: toggle Return to start on stop for cue-style playback.

signalsmith-stretch is an open-source phase-vocoder library by Signalsmith Audio. AudioHaus uses it for all real-time DSP — no third-party licensing required.

Search & discovery

Find by name, sound, or feel.

FTS5 + filters

Full-text + #tag + category buttons + sortable columns. BPM range, duration (<2s, 2–10s, >10s), minimum star-rating.

Match toggle

Set a target BPM and key. Browser narrows to ±5 BPM and exact key; the pitch slider auto-previews the semitone offset on load.

Audition History tab

One-click access to recently auditioned samples, persisted across relaunches. Right-click → Clear History.

Saved-search tabs

Finder-style tabs with hover-only 14×14 close. Snapshot-immutable — live filter mutations never bleed into a captured tab.

Find Similar

Right-click any sample → cosine MFCC distance. Returns ranked neighbours in milliseconds across the whole library.

Reference Match

Drop any audio file onto the window — MFCC analysis runs, nearest-neighbour results open in a dedicated tab.

Galaxy View

Interactive 2-D scatter of one-shots over MFCC space. Vertex-cached image render at ~0.5 ms / frame. Pan, pinch-zoom, click to audition, drag to DAW. Reservoir-sampled to 10k dots on large libraries.

Galaxy Lasso: Shift-drag to rubber-band select multiple dots. Selection syncs back to the browser table.

Galaxy View screenshot — add your own

Background analysis

Every file, analysed off-thread.

BPM detection

Accurate tempo detection from 50–200 BPM, confidence-weighted, with manual override.

Key detection

Musical key analysis into a pitch-class histogram. Reports root and mode, with manual override.

MFCC fingerprint

13-coefficient MFCC, spectral centroid, spectral flatness. Indexed in an HNSW graph for similarity.

Loop vs one-shot

Duration + envelope + filename heuristics classify each file as loop or one-shot.

10-category classifier

Kicks, Snares, Hi-Hats, Cymbals, Perc, Bass, Synth, Vocal, FX, Unknown.

Auto-Tag Review Inbox

Right-click → Auto-Tag All Samples. Iterative approve / reject / skip-all workflow before AI-suggested tags commit to the library.

Waveform & visualisation

RX-style dual-mode renderer.

Metal compute shader. ADR 0009.

Filled envelope

Solid min/max envelope at overview, 8-tap Lanczos a=4 sinc on min and max curves with clamp-padded boundaries.

Sample-line at deep zoom

Signed sample-line polyline bypasses the peak pyramid and feeds raw per-sample audio directly to the shader. Per-sample fidelity restored at deep zoom.

Alpha-blended transition

Envelope and sample-line blended in the spp ∈ [16, 64] window. The visible body stays continuous across zoom transitions.

Stereo layout: L on top, R on bottom with a 4-px white gap. Mono is one full-height lane.

Minimap mirrors main lane

Same dual-mode kernel, RMS-normalised display gain — quiet files no longer render faint.

Playhead & hover-scrub

1-px black playhead with a 3-px α=0.6 white halo. 1-px #A3A3A3 hover-scrub cursor; click to seek.

Scroll & pan: vertical scroll = mouse-anchored zoom; T/R pan; double-click snaps to nearest transient.

Selection: tints background #E5E5E5, waveform colour unchanged; right-click selection → Invert Selection.

Clip indicator

Clipping shown as 3-px envelope-edge thickening + 1-px black tick above the lane. Grayscale only.

Smart Collections

Basket. Crates. Pack Builder.

Export Basket

Right-click any sample → Add to Basket. Count in the header. Basket appears as a dedicated tab.

Crates

Save any basket snapshot as a named Crate. Crates appear as persistent browser tabs with drag-reorder persistence.

Pack Builder

Right-click Basket → Build Pack. Export to a named folder with a manifest.txt (filename, BPM, key, duration) in one step.

Variation & AI generation Coming soon

Endless fresh variations.

Planned for a future update — not included in the current v1.0 release.

Create Variation

Select a sample → dialog (Amount 1–10, Count 1/2/4/8, optional style prompt) → fresh variants render locally on your Mac. No cloud, no upload.

Stacks (Shuffler)

Layer up to 16 slots into a looped stack. In Sync mode every loop and one-shot is driven by one shared master clock, so the whole stack phase-locks to a single downbeat — shuffle slots to audition fresh combinations on the grid.

Auto Variation Prompt

If the prompt is empty, the dialog composes one from the source (filename + category + loop/one-shot + BPM + key + tags). Editable before generation.

Helper process: persistent Python child at os.nice(15) idle priority, stdio JSON contract.

Bracket rendering

Lower amounts keep variants close to the source for subtle alternates. Higher amounts push further for wilder, more transformed results — you choose how far to go.

FIFO queue + single Cancel

Multiple Create Variation clicks queue serially with snapshots captured at click time. One Cancel aborts everything cleanly.

Atomic publish: helper writes <file>.tmp then os.replace() to canonical only after the WAV is fully flushed and exceeds 1024 bytes. UI never lists a half-written render.

Variation Lineage

Database records VariationSet + VariationMember (source identity, settings, timestamp). Right-click → Show Variations resolves through lineage even after rename / move.

Model & device controls

Pick the variation engine and choose the compute device (MPS / GPU / CPU), alongside the Amount / Count / Prompt controls. Planned for a future update — not in the current release.

DAW integration

Drag, Spot, or Batch — no plug-in build.

Avid PTSL gRPC bridge

Outbound only, no auto-launch. Explicit Connect / Test / Disconnect in Settings. Bridge State Panel shows Not Connected / Connected / Session Ready / Error.

Spot Raw: right-click waveform → renders one contiguous clip (selection or whole file, with current pitch / gain) to Pro Tools — To Selected Track or To New Track.

Spot Slices: right-click waveform → renders per-transient slices, preserving the active Transient Edit Set.

Transport Sync: Off / PTSL / MIDI MMC. MIDI MMC creates a virtual AudioHaus Sync output (outbound only); destroyed on mode switch or app quit.

Drag-to-DAW & Export

  • Drag-to-DAW renders a temp WAV with current pitch / gain / selection applied before the drag begins
  • Export bit depth (16 / 24 / 32-bit float), sample rate (44.1 / 48 / 96 / 192 kHz), mono / stereo
  • Multi-file drag, multi-select batch ops, Batch Export dialog with summary and best-effort cancel
  • Transport Sync mode in Settings: Off / PTSL / MIDI MMC (virtual AudioHaus Sync output, outbound only)
  • Stale temp-drag WAVs cleaned at next launch if older than one hour, and on app quit

Library health

Library Doctor.

Hybrid scanner

Metadata first, file reads only when needed. Surfaces exact duplicates, near-duplicates (MFCC similarity), missing files, corrupt audio, silent files, clipped files, and suspicious BPM / key / category analysis. ADR 0008, PRD 07.

Per-finding actions

Reveal in Finder, Audition, Load, Relink, Remove DB entry, Move to Trash (OS Trash, reversible), Ignore for session. No auto-cleanup — every action requires explicit confirmation.

Settings & keyboard

Click-to-capture shortcuts.

Shortcuts dialog

PRD 03. Click-to-capture remapping with duplicate detection, conflict display, and reset-to-defaults. App-focus-only dispatch, no system hotkeys.

Pitch & gain nudge: shortcuts exist but ship unassigned by default — bind your own in the dialog.

Theme & layout

White (default) / Dark theme, sidebar width, always-on-top, default export folder, export bit-depth / sample-rate / channels, auto-gain target dB.

Sidebar: drag-reorder Folders and Collections; order persists across launches.

Offline licensing

RSA-2048 offline activation. Trial is a 300-sample library cap; Personal unlocks an unlimited library. Paste your emailed XXXXX-XXXXX-XXXXX serial once — validated locally by signature, no network call, nothing transmitted.

Start free, no time limit.

No credit card required. Free up to 300 samples — unlock an unlimited library with Personal.