ReactBeat Devlog
Built reactbeat into a full local Python TUI music visualizer. The app now opens with a Textual start screen where users
can browse folders or reopen recent audio files, then plays local audio while rendering beat-reactive braille graphics.
Implemented the core audio pipeline: WAV/FLAC/OGG loading through soundfile, callback-driven playback through
sounddevice, playback-position tracking, and a manual NumPy FFT analyzer for bass, broadband energy, intensity, and
onset detection. MP3 and external media tools were intentionally avoided to keep the app self-contained.
Built the rendering stack from scratch: a custom Unicode braille packer, Rich style spans per cell, and multiple
simulation-driven visuals rather than FFT bars. The current modes are:
- particles: vectorized particle motion with structured spawning and beat forces
- fluid: coarse Stable Fluids-style density/velocity simulation
- waves: damped 2D ripple simulation added as a third mode
Added five runtime themes: ember, aurora, voltage, prism, and ghost. Styles can be cycled during playback, and modes
cycle with m.
Improved the TUI flow: single command launch with python -m src.cli, folder picker support, recent files, visible
controls/status bar, direct audio-file launch, folder launch, diagnostics, smoke tests, and audio metadata checks. Mouse
interaction was experimented with, but removed after it caused lag and didn’t improve the experience enough.
Added project docs and validation: README.md, PRD.md, ROADMAP.md, a cross-platform python -m scripts.check command, unit
tests for core systems, smoke renders for all modes, and PyInstaller/Linux packaging notes. The latest verification
passed with:
python -m scripts.check
python -m compileall src tests scripts
Comments 0
No comments yet. Be the first!
Sign in to join the conversation.