How ultraelectronica/br41ndmg works
br41ndmg is a Rust audio-resampling library with a separate command-line application. Its main workflow accepts audio buffers or files, builds a configurable polyphase sinc filter bank, resamples offline or in chunks, and can write WAV output while preserving tags. The CLI adds single-file and batch jobs plus an interactive browser, file-info pane, and spectrogram viewer. The graph reflects documented features, but unsampled implementation details and some internal call paths are omitted where the excerpts do not establish them.
Main entry points: io.rs Audio buffers and I/O · tui.rs Interactive browser · resample_job.rs Resample jobs · filter.rs FIR filter helpers
Components 16
CLI application
- CLI entry
cli/src/main.rs - Resample jobs
cli/src/resample_job.rs - Interactive browser
cli/src/tui.rs - File info viewer
cli/src/viewer.rs - Spectrogram analysis
cli/src/spectrogram.rs
Audio I/O
- Audio buffers and I/O
src/io.rs - Tag preservation
src/tags.rs
Resampling DSP
- Offline and streaming
src/resampler.rs - Polyphase filter bank
src/polyphase.rs
DSP helpers
- FIR filter helpers
src/filter.rs - Sinc kernels
src/sinc.rs - Window functions
src/window.rs - Cutoff validation
src/utils.rs
Other components
- User
- Audio files
- WAV output
Connections 24
- User → CLI entry: invokes
README.md - CLI entry → Interactive browser: launches
cli/src/main.rs - CLI entry → Resample jobs: dispatches jobs
cli/src/main.rs - Interactive browser → Resample jobs: starts processing
cli/src/tui.rs - Interactive browser → Audio buffers and I/O: probes and reads
cli/src/tui.rs - Interactive browser → Tag preservation: reads and writes
cli/src/tui.rs - Interactive browser → Spectrogram analysis: computes
cli/src/tui.rs - Interactive browser → File info viewer: renders view
cli/src/tui.rs - File info viewer → Spectrogram analysis: displays
cli/src/viewer.rs - Resample jobs → Audio buffers and I/O: reads and writes
cli/src/resample_job.rs - Resample jobs → Offline and streaming: resamples buffers
cli/src/resample_job.rs - Resample jobs → Tag preservation: preserves tags
cli/src/resample_job.rs - Audio files → Audio buffers and I/O: supplies input
README.md - Audio buffers and I/O → Offline and streaming: provides resample buffer
README.md - Audio buffers and I/O → WAV output: writes WAV
README.md - Offline and streaming → Polyphase filter bank: uses filter bank
src/resampler.rs - Polyphase filter bank → Sinc kernels: builds coefficients
src/polyphase.rs - Polyphase filter bank → Window functions: applies window
src/polyphase.rs - FIR filter helpers → Sinc kernels: uses kernels
src/filter.rs - FIR filter helpers → Window functions: applies window
src/filter.rs - FIR filter helpers → Cutoff validation: validates cutoff
src/filter.rs - Sinc kernels → Cutoff validation: validates cutoff
src/sinc.rs - Tag preservation → Audio buffers and I/O: integrates WAV tags
src/tags.rs - Audio buffers and I/O → Audio files: decodes input
README.md