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.