Releases: linuxmatters/jive-visualiser
Release list
Jivefire 0.4.1
Changes since 0.4.0
- chore(justfile): add release tasks (a9a0a30)
- chore(deps): bump nixpkgs from
a799d3eto9ae611a(f5f3121) - deps(deps): bump the gomod group with 2 updates (15ef190)
- doc: update README to match --episode implementation (fad8a18)
- feat(cli): make --episode flag optional (350bfe8)
- test(encoder): drop redundant AVAudioFifo benchmarks (c095a71)
- refactor(encoder): swap AudioFIFO from Go sync.Pool to AVAudioFifo (e09c6e2)
- refactor(audio): migrate from gofft to FFmpeg av_tx RDFT (4eb5b5a)
- chore: update ffmpeg-statigo to v8.1.1.2 (2ebe6ca)
Installation
Download the appropriate binary for your platform below, make it executable, and move it to your PATH:
# Linux (amd64)
chmod +x jivefire-linux-amd64
sudo mv jivefire-linux-amd64 /usr/local/bin/jivefire
# macOS (Apple Silicon)
chmod +x jivefire-darwin-arm64
sudo mv jivefire-darwin-arm64 /usr/local/bin/jivefireChecksums
SHA256 checksums are provided below for verification.
Jivefire 0.4.0
Highlights ✨
- Spring visualiser dynamics are now the default. Spectrum bars snap instantly to new peaks then spring back using harmonica physics, with an amplitude gain for a fuller, livelier look. No flag needed.
- Rebuilt TUI on Charm v2. The entire progress and summary display has been reworked: fixed-width metric boxes, a live file-size gauge, encoder-name readout, and time/speed/audio figures rendered with proper Unicode glyphs. Dynamic range is now shown in dB.
- Audio resampling migrated to libswresample. Mono-to-stereo conversion now uses FFmpeg's own downmix coefficients and correctly drains the decoder at end-of-stream, eliminating subtle sample-count mismatches in the final seconds.
- A/V sync drift corrected. A longstanding offset between audio and video timestamps has been fixed; output MP4s should now stay in lock-step from start to finish.
- Meaningfully faster encoding. Per-frame heap allocations and goroutine churn in the hot path have been eliminated, and shared YUV conversion primitives are now centralised in an internal package, reducing redundant work per frame.
- Stability and race-condition fixes throughout. Preview-frame rendering is now double-buffered (no more concurrent-access panics under load), the encoder worker pool cleans up correctly on initialisation failure, and a data race on asset warnings at startup has been resolved.
Changes since 0.3.3
- fix(ui): double-buffer preview frames to eliminate concurrent access (4666c28)
- chore: update .gif (5942348)
- fix(ui): eliminate data race on preview frame buffer (2e08e92)
- ui: display time, speed, and audio metrics with proper Unicode glyphs (2d4f623)
- refactor(audio): migrate to libswresample for sample conversion (53d8e5d)
- refactor: eliminate comment clutter and improve doc clarity (34f464e)
- chore(deps): bump nixpkgs from
64c08a7toa799d3e(dd266b7) - fix(audio,ui,cli): guard against zero sample rate and eliminate assetWarnings race (73c7922)
- fix(encoder): defer worker pool cleanup on initialization failure (5383c94)
- fix(audio,encoder,cli): correct A/V sync drift, surface asset warnings, and eliminate encoder allocations (01e1b3e)
- refactor: consolidate duplicated code and eliminate redundant operations (e29dd17)
- perf: eliminate heap allocations and goroutine spawning in per-frame hot paths (f98c428)
- fix(audio): duplicate mono samples for stereo channel encoding (ea22ab6)
- refactor: replace custom unsafe helpers with Go standard library utilities (97a3b2b)
- refactor: consolidate bar rendering loops and remove unused UI state (97e5e1f)
- refactor(ui): remove redundant timing fields and extract borderless table (407483a)
- chore: update gif (9836cbf)
- refactor(ui): make blockClamp generic to accept block array length (691a2b7)
- style(ui): remove "Video Preview" and "Live Visualisation" labels (8f2b358)
- refactor(ui): consolidate encoder, duration, and size metrics into finished pass 2 box (8756a31)
- feat(ui): add encoder name display and refactor frame-source layout (12aba78)
- feat(ui): add file size gauge and improve spectrum tracking (0bbf17f)
- refactor(ui): simplify progress labels and remove audio profile rendering (f711f11)
- feat(ui): refactor progress and summary display with fixed-width boxes and metrics (f55be8f)
- feat(renderer): make harmonica spring peak-hold bar dynamics the default (4c503a5)
- feat(ui): add harmonica spring gain for spectrum bar amplitude scaling (2c0f0ca)
- refactor(ui): extract progress bar construction into newProgressBar helper (a12f196)
- feat(ui): refactor progress UI with spectrum springs and modular rendering (ae9ef52)
- docs(agents): document Charm v2 TUI suite and API gotchas (c162367)
- fix(ci): exempt x/sync and go-runewidth from licence check (52097d9)
- build(deps): upgrade charm TUI suite to v2 and fix imports (74f4e56)
- fix(audio): drain decoder at end of stream (5a18c07)
- fix(audio): reject unsupported channel counts (908bc21)
- docs: update architecture to reflect yuv extraction and reader refactoring (0b7400c)
- style(audio): silence gosec G115 false positives in reader (9749286)
- fix(ui): display dynamic range in decibels (17aba13)
- refactor(cli): source CLI colours from the shared theme (5950c58)
- refactor(audio): share the buffer-fill loop between read helpers (308b972)
- refactor(encoder): dispatch frame writes on the input pixel format (fa0de4c)
- test(encoder): benchmark the production YUV path (6cd20a1)
- refactor(audio): drop unused totalFrames from ProgressCallback (ef6f1a8)
- refactor(audio): drop unused Metadata fields (290f23c)
- refactor(audio): type sampleDecoder with named sample formats (d56bde1)
- refactor(renderer): bundle title and episode into PodcastMeta (06c90b7)
- refactor(ui): let the encoder report hardware mode (29a5709)
- refactor(audio): drop single-implementor decoder indirection (f6757bb)
- refactor(audio): name sample formats instead of magic integers (eaac74f)
- refactor(cmd): group runPass2 encoding parameters into a struct (39b5081)
- refactor(encoder): extract shared YUV primitives into internal/yuv (f7a8d3d)
- refactor(encoder): read frame size from the FIFO instead of recomputing (cb92f9f)
- refactor(encoder): pass channel count to AVChannelLayoutDefault directly (9664d1f)
- refactor(encoder): derive AudioFIFO length from the buffer (a79bd5f)
- refactor(cmd): remove redundant ctx no-op assignment (e2b8693)
- refactor(cmd): drop unreachable multi-channel label branch (d6b8aff)
- refactor(audio): remove unused NumChannels from decoder (0238485)
- refactor(audio): drop unused SeekToSample method (62c471b)
- refactor(encoder): source hwaccel probe dimensions from config (9766fac)
- refactor(config): derive Framerate from FPS (5679b1b)
- refactor(config): model overridable colours as a value type (4911f9b)
- refactor(audio): extract shared raw-magnitude FFT binning (a6c7510)
- refactor(cmd): pass title and episode as parameters (da323cd)
- refactor: replace hand-rolled stdlib implementations with standard library (195a1c5)
Installation
Download the appropriate binary for your platform below, make it executable, and move it to your PATH:
# Linux (amd64)
chmod +x jivefire-linux-amd64
sudo mv jivefire-linux-amd64 /usr/local/bin/jivefire
# macOS (Apple Silicon)
chmod +x jivefire-darwin-arm64
sudo mv jivefire-darwin-arm64 /usr/local/bin/jivefireChecksums
SHA256 checksums are provided below for verification.
Jivefire 0.3.3
Changes since 0.3.2
- chore(tailor): refit and alter (a87fb8b)
- docs: improve comments across codebase (2fb4435)
- chore(deps): bump Go from 1.26.1 to 1.26.3 and sync dependencies (0db8840)
- docs(claude): reference AGENTS.md (ccd1602)
- ci: expose GITHUB_TOKEN to ffmpeg-statigo library downloads (7bfe76f)
- chore: update ffmpeg-statigo to v8.1.1.1 (585620c)
- chore(deps): bump nixpkgs from
2991645to64c08a7(951e30a) - chore(deps): bump the github-actions group across 1 directory with 2 updates (#42) (8471c11)
- chore(deps): bump nixpkgs from
549bd84to2991645(37f9ec1) - deps(deps): bump golang.org/x/image in the gomod group (#40) (54478fc)
- deps(deps): bump golang.org/x/image in the gomod group (#38) (e838326)
- chore(deps): bump nixpkgs from
b40629eto549bd84(3d2e093) - chore(deps): bump github/codeql-action (#36) (ef73ad2)
- ci: add Dependabot Nix updates (af62707)
- chore(deps): bump the github-actions group across 1 directory with 4 updates (#34) (07c9cf7)
- deps(deps): bump golang.org/x/image in the gomod group (#33) (3fe1002)
- deps(deps): bump github.com/alecthomas/kong in the gomod group (#32) (8176b9f)
- chore(deps): bump github/codeql-action (#30) (86bcf73)
Installation
Download the appropriate binary for your platform below, make it executable, and move it to your PATH:
# Linux (amd64)
chmod +x jivefire-linux-amd64
sudo mv jivefire-linux-amd64 /usr/local/bin/jivefire
# macOS (Apple Silicon)
chmod +x jivefire-darwin-arm64
sudo mv jivefire-darwin-arm64 /usr/local/bin/jivefireChecksums
SHA256 checksums are provided below for verification.
Jivefire 0.3.2
Changes since 0.3.1
- refactor: code smells remediation across audio and ui packages (9bba424)
- deps(deps): bump golang.org/x/image in the gomod group (#28) (efcef49)
- fix(audio): zero-fill FFT buffer tail after partial frame read (89c3be3)
- refactor(audio): optimize ReadNextFrame to eliminate per-frame allocations (68154fc)
- refactor: extract three DRY helpers to eliminate duplication (d6e198b)
- refactor(renderer): extract duplicated image loading and text measurement (c866ac0)
- refactor(audio): extract common FFmpeg context initialization (0e8e14c)
- refactor(audio): consolidate duplicated buffer read loops (9ecf322)
- refactor: remove 14 instances of dead code across codebase (009cd9c)
- refactor(stdlib): use cmplx.Abs for complex magnitude calculations (f234ee2)
- refactor(stdlib): replace unsafe.Pointer float32 conversions with math stdlib (85b3e0e)
- chore(deps): bump the github-actions group across 1 directory with 2 updates (#26) (2b35200)
- deps(deps): bump golang.org/x/image in the gomod group (#25) (c1a8796)
- ci(fix): add actionlint problem matcher for GitHub Actions (b347f3c)
- ci: consolidate CI/CD workflows into unified builder pipeline (bfea46a)
- refactor: apply linting fixes across codebase (b393f04)
- feat: fit tailor community help files (6e8b1fa)
- chore: update to Go 1.26.1 (31d45bb)
- build(deps): bump actions/upload-artifact from 6 to 7 (8dcc605)
- build(deps): bump github.com/charmbracelet/bubbles from 0.21.0 to 0.21.1 (6fa478a)
- build(deps): bump github.com/alecthomas/kong from 1.13.0 to 1.14.0 (1a2801f)
- build(deps): bump golang.org/x/image from 0.34.0 to 0.35.0 (dbebc89)
Installation
Download the appropriate binary for your platform below, make it executable, and move it to your PATH:
# Linux (amd64)
chmod +x jivefire-linux-amd64
sudo mv jivefire-linux-amd64 /usr/local/bin/jivefire
# macOS (Apple Silicon)
chmod +x jivefire-darwin-arm64
sudo mv jivefire-darwin-arm64 /usr/local/bin/jivefireChecksums
SHA256 checksums are provided below for verification.
Jivefire 0.3.1
Changes since 0.3.0
- chore: update ffmpeg-statigo to v8.0.1.3 (09b329a)
- chore: update nixpkgs lockfile (d170624)
- docs: move copilot instructions to AGENTS.md (5555215)
- build(deps): bump golang.org/x/image from 0.33.0 to 0.34.0 (4d2c1be)
- build(deps): bump actions/upload-artifact from 5 to 6 (163ee5f)
Installation
Download the appropriate binary for your platform below, make it executable, and move it to your PATH:
# Linux (amd64)
chmod +x jivefire-linux-amd64
sudo mv jivefire-linux-amd64 /usr/local/bin/jivefire
# macOS (Apple Silicon)
chmod +x jivefire-darwin-arm64
sudo mv jivefire-darwin-arm64 /usr/local/bin/jivefireChecksums
SHA256 checksums are provided below for verification.
Jivefire 0.3.0
Changes since 0.2.0
- docs: update ARCHITECTURE.md with improved colourspace conversion details (359b605)
- perf(encoder): optimise NV12 conversion with even/odd row separation (05f046d)
- perf(encoder): add direct RGBA→YUV420P conversion for software path (0d1e9f6)
- perf(audio): pre-compute Hanning window coefficients in FFT processor (00aa59a)
- perf(encoder): add sync.Pool for AudioFIFO slice allocation (bdf1f80)
- perf(audio): remove redundant FFT buffer copy in analyzer (588ece7)
- perf(render): pre-allocate buffers in hot render loop (96e7e87)
- test(config): add RuntimeConfig nil field handling validation (995478a)
- test(audio): add Hanning window coefficient validation (db9f01d)
- test(encoder): add AudioFIFO edge case and stress tests (3bec5e9)
- test(config): add hex colour parsing and runtime config tests (547b908)
- test(audio): add frequency rearrangement symmetry tests (14c62a7)
- test(audio): add FFT correctness unit tests for frequency binning (9774b81)
- refactor(encoder): add checkFFmpeg helper for consistent error handling (06f41f9)
- refactor(config): extract CAVA sensitivity magic numbers to constants (0a005cb)
- refactor(encoder): remove stale writeFrameVulkan comment block (5c248db)
- docs(encoder): document VideoToolbox rate control limitations (897ce35)
- refactor(cli): consolidate fire theme colours into shared module (3ce34c8)
- refactor(encoder): remove unused testHardwareAvailable function (f47fa10)
- refactor(ui): remove unused progress bar rendering functions (9108530)
- refactor(encoder): remove unused audio processing functions (db9eed3)
- fix(encoder): correct VideoToolbox hardware frames context setup (1750b65)
- docs(readme): document GPU acceleration support (9eb4a31)
- fix(ui): add VA-API to GPU pipeline label detection (cb2d853)
- refactor(encoder): extract pixel format setup into configurePixelFormat method (89e7a2c)
- refactor(encoder): use setupTestHWFramesContext for QSV probe (e35b347)
- refactor(config): extract CAVA gravity formula constants (d34c81a)
- refactor(encoder): define encoderSpec type for priority lists (92627ad)
- refactor(encoder): remove dead DetectNVENC function (27bd755)
- refactor(encoder): extract setupTestHWFramesContext helper (41d7269)
- refactor(encoder): extract suppressHWProbeLogging helper (f8c4334)
- feat: add VA-API hardware encoder support (94fe40f)
- perf(encoder): optimize hardware encoder settings for low latency (5f6d19e)
- perf(renderer): improve timing measurements and UI progress updates (477e12a)
- feat(ui): improve terminal UI with alt screen buffer (38e712b)
- fix(ui): correct progress bar calculation showing ~80% at completion (c881572)
- feat(encoder): add hardware encoder probe and improve encoder detection (bb36a6c)
- perf(encoder): refactor colour space conversion with 2% speedup (60547bd)
- feat(encoder): prepare QSV support infrastructure (bcc95f1)
- feat(bench): auto-detect available video encoders (94dffc6)
- feat(encoder): add Vulkan (h264_vulkan) hardware acceleration (6136216)
- feat(encoder): add automatic NVENC hardware acceleration (a9c1366)
- docs: polish readme wording and update build instructions (add0c86)
Installation
Download the appropriate binary for your platform below, make it executable, and move it to your PATH:
# Linux (amd64)
chmod +x jivefire-linux-amd64
sudo mv jivefire-linux-amd64 /usr/local/bin/jivefire
# macOS (Apple Silicon)
chmod +x jivefire-darwin-arm64
sudo mv jivefire-darwin-arm64 /usr/local/bin/jivefireChecksums
SHA256 checksums are provided below for verification.
Jivefire 0.2.0
Changes since 0.1.2
- chore: update flake.lock (9d29a34)
- refactor(justfile): improve justfile organization and update ffmpeg-statigo handling (880ef9b)
- deps: update ffmpeg-statigo to v8.0.1.0 (370b75c)
- style(ui): implement fire theme with improved visualizations (da33ed7)
- refactor(ui): unify bubbletea TUI for both analysis and rendering phases (2b57fd1)
- docs: update project overview (5c1e241)
- perf(ui): improve rendering performance and add thumbnail timing (9b3ec37)
- refactor(audio): standardize on FFmpeg-based audio decoding (39cb477)
- refactor(audio): migrate to sample-based audio encoding (7b6ffeb)
- feat(encoder): add direct audio sample input mode (9929d57)
- refactor: move ffmpeg-statigo submodule from vendor/ to third_party/ (72bbab3)
- feat(audio): implement shared audio buffer for multi-consumer access (ed9c7c4)
- feat(audio): implement FFmpeg-based audio decoder (b3f66c6)
- docs(benchmark): add performance benchmarks for RGB→YUV conversion (f6399b7)
- chore: enhance ffmpeg-statigo submodule management (53c404a)
- feat(customization): add support for custom colors and images (#5) (30a18bf)
- build(deps): bump golang.org/x/image from 0.32.0 to 0.33.0 (9a9446e)
- build(deps): bump github.com/alecthomas/kong from 1.12.1 to 1.13.0 (e872d69)
- feat: migrate from ffmpeg-go to ffmpeg-statigo (1597a44)
Installation
Download the appropriate binary for your platform below, make it executable, and move it to your PATH:
# Linux (amd64)
chmod +x jivefire-linux-amd64
sudo mv jivefire-linux-amd64 /usr/local/bin/jivefire
# macOS (Apple Silicon)
chmod +x jivefire-darwin-arm64
sudo mv jivefire-darwin-arm64 /usr/local/bin/jivefireChecksums
SHA256 checksums are provided below for verification.
jivefire 0.1.2
Changes since 0.1.1
- feat(encoder): improve video quality by adjusting CRF value (c812334)
- perf(renderer): replace alpha blending with intensity-based gradients (8db1c95)
- refactor(ci): restructure release workflow into separate jobs (51d46a2)
Installation
Download the appropriate binary for your platform below, make it executable, and move it to your PATH:
# Linux (amd64)
chmod +x jivefire-linux-amd64
sudo mv jivefire-linux-amd64 /usr/local/bin/jivefire
# macOS (Apple Silicon)
chmod +x jivefire-darwin-arm64
sudo mv jivefire-darwin-arm64 /usr/local/bin/jivefireChecksums
SHA256 checksums are provided below for verification.
Jivefire 0.1.1
Changes since 0.1.0
- feat(config): centralize appearance constants and add thumbnail styling (55251aa)
- docs: reorganize feature list and add thumbnail generator (18efe59)
- style(ui): refine text formatting and labeling in UI components (74f0674)
- perf(timing): add comprehensive execution time tracking (08bd5eb)
- perf(renderer): pre-render framing line pixel pattern for better performance (9c24c5c)
- feat(ui): add audio flush progress tracking and feedback (16d0f31)
- feat(encoder): implement interleaved audio encoding to eliminate final processing stall (14157c7)
- improve: enhance UI with real file size and audio processing status (314aa1d)
- feat(encoder): configure video codec with animation-optimized settings (b58c8e7)
- perf(ui): remove mirrored spectrum displays (a41c732)
- feat(renderer): add thumbnail generation for videos (3511f7f)
- docs: clarify documentation reference in ARCHITECTURE.md (537c576)
- feat(renderer): add bold font and thumbnail assets (d8fc1b8)
- feat: add install command to justfile (f21abdc)
- refactor(workflow): consolidate release jobs into single matrix job (8c14ab4)
Installation
Download the appropriate binary for your platform below, make it executable, and move it to your PATH:
# Linux (amd64)
chmod +x jivefire-linux-amd64
sudo mv jivefire-linux-amd64 /usr/local/bin/jivefire
# macOS (Apple Silicon)
chmod +x jivefire-darwin-arm64
sudo mv jivefire-darwin-arm64 /usr/local/bin/jivefireChecksums
SHA256 checksums are provided below for verification.
Jivefire 0.1.0
Initial Release
- feat(renderer): add framing lines and improve text positioning (b0d64d5)
- fix: update tests to use current function signatures and test data (0bbbcf0)
- ci: add github workflow for automated releases (f2a9d10)
- docs: enhance README with expanded project description and features (2f77cb5)
- docs(architecture): replace implementation plan with concise overview (e6bdf47)
- chore(deps): update dependency from gonum to gofft (3674390)
- ci: build with CGO (6388fe2)
- style: blue the default background (ed7a772)
- test: update test data with distinct titles and episode numbers (83b68a6)
- fix(audio): improve handling of partial audio frames and end-of-file conditions (f128415)
- feat(audio): add support for configurable audio channels in MP4 output (34cc1bb)
- feat(ui): add no-preview mode for improved batch processing (264cb45)
- feat(audio): switch from gonum/fourier to argusdusty/gofft for FFT processing (9ae5e04)
- feat(audio): extend frequency analysis to full Nyquist spectrum (3dc1eb9)
- fix(audio): handle multi-channel audio correctly in WAV decoder (7584264)
- fix(audio): correct flac and mp3 decoder alignment issues (a885807)
- feat(audio): add FLAC audio decoding support (3f56245)
- feat(test): update test commands with podcast audio support (eb19880)
- feat(audio): add MP3 audio file format support (ca43612)
- perf(renderer): optimize bar drawing using 4-way symmetry (8cf0eb1)
- perf(renderer): optimize bar rendering with vertical symmetry (a601014)
- perf(ui): reduce UI delay times and shorten demo recording (29567e8)
- feat(docs): add demo GIF to README and VHS recording setup (bdc1be9)
- build(deps): bump gonum.org/v1/gonum from 0.14.0 to 0.16.0 (4250f3a)
- ci: optimize GitHub Actions workflow execution (9510a37)
- chore: relicense project from MIT to GPLv3 (cc58865)
- build(deps): bump actions/upload-artifact from 4 to 5 (8e8e073)
- build(deps): bump actions/setup-go from 5 to 6 (059de4a)
- build(deps): bump actions/checkout from 4 to 5 (39d31ff)
- ci: improve build workflow with native CGO support (bb75e41)
- feat(dependabot): add gomod support for dependency updates (018279d)
- ci: add GitHub workflow for cross-platform builds (fd70ee9)
- feat(assets): embed background and font assets (ed598e7)
- feat(ui): add episode number and title customization (6e53689)
- refactor: remove snapshot functionality (b25a666)
- feat(cli): enhance command-line interface with styled output (ca1cf67)
- fix(renderer): correct regression in gradient scaling (f662eea)
- feat(ui): enhance video encoding UI with codec information (7e8a9d2)
- perf(ui): optimize video preview rendering and reduce frame sampling (43ac098)
- feat(ui): implement RGB color preview rendering (f55c79c)
- perf(preview): implement pixel averaging for improved downsampling quality (5835fbd)
- feat(ui): add video preview to pass 2 processing screen (88058b4)
- feat(ui): implement bubbletea TUI for video rendering pass (741f9ce)
- feat(ui): add bubbletea UI for audio analysis pass (00ac1f5)
- docs: add UI/UX enhancement proposal for Bubbletea implementation (cd718f2)
- fix(renderer): remove pre-rendered text overlay field (9d74ec1)
- perf(renderer): optimize bar pixel writing for better memory access patterns (19f0356)
- perf(memory): optimize buffer usage to eliminate per-frame allocations (1c28457)
- refactor: remove outdated TODOs and cleanup comments (7697df6)
- refactor(renderer): simplify frame rendering implementation (cf92031)
- perf(renderer): optimize frame rendering for improved performance (86ba041)
- refactor: simplify RGB to YUV conversion implementation (c8f8a50)
- refactor(renderer): replace custom bilinear scaling with golang.org/x/image/draw (48c21a7)
- perf(encoder): optimize RGB to YUV conversion for better performance (af6aaca)
- perf(encoder): add optimized RGB to YUV conversion methods (cfab1db)
- feat(audio): add stereo input support with automatic downmixing (fb69b57)
- docs: add technical documentation for audio FIFO implementation (94f64f0)
- feat(audio): add input format validation for audio decoder (3995131)
- feat(encoder): integrate direct audio processing into video generation pipeline (edb5df1)
- docs: add ffmpeg-go evaluation and implementation docs (e39d902)
- feat(encoder): implement audio processing in video encoder (0870a33)
- refactor(video): replace direct FFmpeg pipe with encoder abstraction (ea157ad)
- feat(encoder): add FFmpeg video encoding implementation (e6f60e6)
- docs: add 2-pass implementation plan for memory optimization (527a1fb)
- fix(audio): implement sliding buffer for FFT processing (b0141a3)
- feat(video): implement two-pass streaming approach for audio visualization (e08af80)
- feat(audio): add baseScale parameter to BinFFT function (44f58d9)
- feat(audio): add audio analysis system for dynamic visualization (feb5100)
- feat(audio): add streaming WAV reader implementation (c099057)
- docs: replace checkmarks with hyphens in feature list (737816a)
- ci: add dependabot configuration for github actions (ab85354)
- feat(project): establish new project identity and structure (b498d70)
- feat(cli): add version flag support (a65bee1)
- rename: rebrand from "Audio Visualizer (Go)" to "Jivefire" (cbc64d8)
- feat(cli): consolidate snapshot flags into single parameter (35e1186)
- feat(build): add justfile for simplified build commands (9ad1212)
- refactor(project): reorganize codebase into idiomatic Go project structure (7b4527e)
- refactor(audio): replace hard clipping with soft knee compression for visualizer (c861fee)
- feat(visualization): improve audio spectrum analyzer and sensitivity handling (b172717)
- refactor(visualization): improve audio visualizer appearance and layout (921a2c6)
- refactor(visualizer): implement alpha gradient effect for audio bars (38d7467)
- feat(ui): add episode number display in visualization (5bbc64d)
- feat(ui): add text rendering capability to audio visualizer (fc3e185)
- feat(image): implement bilinear interpolation for background scaling (28fbdc9)
- feat(ui): add background image support to visualizer (c7e9d39)
- feat(visualizer): implement CAVA-style audio visualization algorithm (ee377e9)
- feat(visualizer): improve audio visualization responsiveness and clarity (89cef0c)
- feat(visualization): add maximum bar height limitation (a215b41)
- feat(visualization): implement center-out frequency rearrangement (d57f3a7)
- style: increase spacing between visualizer bars (372b764)
- feat(visualizer): add snapshot mode for faster testing (0d7e862)
- feat: implement audio visualization smoothing (a0ccf7b)
- feat: initial commit (c1e10de)
Installation
Download the appropriate binary for your platform below, make it executable, and move it to your PATH:
# Linux (amd64)
chmod +x jivefire-linux-amd64
sudo mv jivefire-linux-amd64 /usr/local/bin/jivefire
# macOS (Apple Silicon)
chmod +x jivefire-darwin-arm64
sudo mv jivefire-darwin-arm64 /usr/local/bin/jivefireChecksums
SHA256 checksums are provided below for verification.