Jivetalking 0.5.0
Highlights ✨
- Terminal UI rebuilt on the Charm v2 suite: gradient VU meter with CIELAB colour interpolation, animated spring-eased peak marker, per-pass progress bar with gradient fill, and a timeline layout that persists throughout processing.
- Completion summary redesigned with indigo done boxes, processing time, and objective quality scoring so you can see at a glance how well each file processed.
- Multiple files now process in parallel automatically - concurrency is derived from the number of input files, no flag needed.
- Analysis mode runs in parallel too, writes full results to log files, and now matches the processing view's layout and styling.
- Loudnorm measurement switched from log capture to stats-file readback, making the normalisation pass more reliable across FFmpeg builds and edge cases.
- Pass 1 hot loop deduplicated its metadata fetches, cutting analysis-phase overhead noticeably on longer recordings.
- Go toolchain updated to 1.26, processor internals simplified, and three correctness issues identified in code review resolved.
Changes since 0.4.1
- refactor(cli): unify help title with shared gradient wordmark (258cfb5)
- chore(tailor): refit and alter (9ddef44)
- refactor(cli): derive worker count from file count instead of flag (d00c9ab)
- chore: update .gif (9f7bb53)
- fix(ui): animate VU meter in Passes 3-4 with per-frame instantaneous levels (0883589)
- feat(ui): collapse peak-marker to single line with superscript dB and arrow glyphs (d1c1dc5)
- feat(ui): enhance done box with processing time row and improved formatting (1daa101)
- refactor(processor): cleanse redundant comments in reader, encoder, frame_processor, and ui (def4a4d)
- refactor: assorted fixes, clean-ups, improvements and performance tuning (#112) (0e38d08)
- docs: correct ProcessAudio doc and remove stale encoder TODOs (0527a2a)
- perf(analyzer): deduplicate ebur128/astats metadata fetches in Pass 1 hot loop (c039a9a)
- refactor: simplify processor internals, remove dead code and redundant types (f8c216a)
- refactor: modernise to Go 1.21+ stdlib generics and slices package (bc5db01)
- fix: resolve three robustness issues identified by cubic review (7f2ed30)
- feat(ui): redesign completion summary with indigo done boxes and objective quality scoring (ae00f41)
- feat(analysis): write analysis reports to log files, show concise confirmations (8fd46a6)
- feat(ui): align analysis mode with processing view layout and styling (71a4bf3)
- feat(ui): animate peak marker with harmonica spring (531a86b)
- refactor(ui): consolidate palette and recolour header and progress bar (7f102df)
- feat(ui): restructure layout, add peak marker glyphs, and persist completion summary (f7c7951)
- feat(ui): redesign time and peak display with timeline and elbow connector (75af67f)
- feat(tui): extend audio level meter floor to -70 dB with sky-blue border and orange peak (295905c)
- feat(ui): add smooth colour gradient to VU meter with CIELAB interpolation (1a5488a)
- feat(ui): polish Pass progress bar with gradient fill and spring easing (10260cc)
- feat(ui): adopt Charm v2 components for TUI primitives (3a587f3)
- refactor(deps): migrate to Charm v2 suite (bubbletea v2.0.7, lipgloss v2.0.3) (45e2b65)
- fix(cli): join analysis pool before reading results on user quit (b46b3e2)
- feat(cli): add parallel analysis via bounded worker pool (3880202)
- test(pool): guard channel waits with timeouts and join p.Run() lifecycle (13a1975)
- fix(cli): ensure worker pool completes shutdown before main exits (846bb7e)
- docs: document worker pool feature and --jobs flag (a4eebba)
- feat(processor): add parallel multi-file processing via bounded worker pool (e089b29)
- refactor(justfile): reorganise test recipes and remove deprecated bench targets (1d7b84b)
- docs(processor): correct Pass 3 loudnorm mechanism and output filename documentation (a76fc58)
- ci(workflows): pass GITHUB_TOKEN to library downloads in test and build jobs (126604e)
- refactor(comments): cleanse codebase and correct stale constant documentation (33bddcb)
- ci(fix): pass GITHUB_TOKEN to library downloads to prevent API limit exceedance (4997ad8)
- docs(processor): clarify loudnorm output format and rate handling in Pass 4 (dec8358)
- refactor(processor): replace log-capture loudnorm with stats-file readback (e39a1dd)
- chore(deps): bump Go to 1.26.3 and update dependencies (a4f2c91)
- chore(deps): bump nixpkgs from
64c08a7to331800d(772d144) - fix(test): copy instead of alias file slice (769dda7)
- refactor(ui): route progress messages by FileIndex instead of CurrentIndex (a18b159)
- refactor(processor): serialize AVFilterGraphFree calls with mutex for loudnorm concurrency safety (f925c2f)
- test(processor): add ebur128 metadata mode concurrency probe (9095f18)
- refactor(processor): remove global DebugLog and thread logger through call chains (21578a6)
- chore(deps): bump the github-actions group across 1 directory with 2 updates (aa63375)
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.