Jivetalking 0.4.0
Stability, clarity, and clean foundations 🧹
This release fixes real batch-processing bugs and sharpens the language Jivetalking uses to describe what it measures. The -16 LUFS target and audio quality are unchanged.
The most important fix: adaptive per-file tuning is now properly isolated, so processing a batch of recordings no longer lets one file's settings bleed into the next. Loudnorm capture got hardened too, no double-close, no leaking state between files. Output filenames now carry the correctly rounded LUFS value.
The "silence" detection concept has been renamed room tone throughout the tool, reports, and docs. That's what it actually measures: the quiet ambient sound between speech that profiles your noise floor. Reports now prioritise the elected room-tone candidate and fall back gracefully when scoring thresholds aren't met, rather than promoting rejected candidates.
Under the hood, a significant refactor split the filter configuration into base and effective layers and threaded it cleanly through the pipeline. No change to processing behaviour, but the groundwork is laid for cleaner adaptive processing ahead.
Changes since 0.3.2
- chore(deps): bump nixpkgs from
d233902to64c08a7(512bb58) - refactor(docs): align silence terminology to room tone throughout (37a3bca)
- refactor: rename silence domain language to room tone (ccf32bd)
- fix(processor): round LUFS value in output filenames (1911f4f)
- chore(deps): bump nixpkgs from
da5ad66tod233902(1ae4c71) - chore(deps): bump nixpkgs from
549bd84toda5ad66(06f4ef0) - refactor(processor): remove unused analysis metadata field (9db49c9)
- chore(deps): bump nixpkgs from
62dc67ato549bd84(e04063e) - chore(deps): bump github/codeql-action (fd94f52)
- refactor(processor): use progress update events for callbacks (886f683)
- ci: add Dependabot Nix updates (b634d7b)
- refactor(processor): centralise loudnorm limiter planning (7f804f8)
- refactor(processor): replace flat filter config fields with structs (66dfc58)
- fix(processor): preserve input and output measurement JSON fields (37d41d6)
- refactor(processor): nest spectral metrics under shared model (56fe639)
- fix(processor): isolate loudnorm capture to graph finalisation (0f76324)
- fix(processor): harden temp output publishing and debug log setup (716bed2)
- fix(processor): accept 0.0 dBFS LA-2A peaks (0ba4a1c)
- refactor(processor): split adaptive and reporting helpers (2d910fa)
- docs(processor): update LA-2A FFmpeg example values (ca97f6c)
- docs(processor): align docs with filter config split (b0b1ee4)
- refactor(processor): remove filter config compatibility layer (d2e5fac)
- refactor(processor): thread effective config through pipeline (3ced3a8)
- refactor(processor): split adaptive config and diagnostics (9970666)
- refactor(processor): split base and effective filter config (ee60d77)
- fix(processor): mark loudnorm encoder closed before close attempt (4807af6)
- fix(processor): avoid double closing loudnorm encoder (863af94)
- fix(processor): scope loudnorm capture cleanup (a635fab)
- test(processor): cover adaptive config state isolation (667f61d)
- fix(processor): serialise loudnorm log capture lifecycle (4b9f2e9)
- fix(processor): return effective adaptive config per file (098ddc8)
- fix(processor): isolate adaptive config state per file (b910bcb)
- refactor(processor): clean up audio processing and reporting internals (#79) (9ee01a4)
- docs: update analysis-only function references (91c3c8e)
- refactor(logging): split analysis display sections (4f6235f)
- refactor: consolidate report candidate display helpers (c19f5fb)
- refactor(processor): simplify filter frame handling (be73a77)
- refactor(processor): remove unused silence region duration parameter (f9f1f25)
- refactor: remove unused audio analysis helpers (ebad99d)
- refactor(processor): remove adeclick from pass 2 registry (6321b7b)
- refactor(processor): remove obsolete pass 2 Volumax surface (cb901bd)
- fix(processor): avoid electing rejected silence candidates (be651e4)
- feat(logging): prioritise elected candidates in reports (5b99f07)
- fix(processor): fall back when candidate scores miss thresholds (4bc991d)
Installation
Download the appropriate binary for your platform below, make it executable, and move it to your PATH:
# Linux (amd64)
chmod +x jivetalking-linux-amd64
sudo mv jivetalking-linux-amd64 /usr/local/bin/jivetalking
# macOS (Apple Silicon)
chmod +x jivetalking-darwin-arm64
sudo mv jivetalking-darwin-arm64 /usr/local/bin/jivetalkingChecksums
SHA256 checksums are provided below for verification.