crabidy/architecture
Test User 572be04206 Add a server-streamed frequency spectrum visualizer
A row of frequency bars under the track progress, on by default and
toggleable with the client spectrum config option. Because the audio
plays on the server and clients may be remote, the spectrum is produced
server-side, not captured locally: audio-player taps its own output
into a lock-free ring on the audio thread (one store per sample, no
locks), crabidy-server runs a Hann + realfft over 2048 samples at 20fps,
folds it into log-spaced bars, and broadcasts them as a new SpectrumFrame
on the update stream. The task idles when nothing is playing or no
client is listening. The TUI renders block-glyph bars in the now-playing
pane; the web client renders the same bins as CSS bars.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-21 23:14:03 +02:00
..
bookmarks.md Capture library subtrees as bookmarks 2026-07-21 11:11:27 +02:00
capture-deletion.md Delete captures from disk at any depth, behind a confirmation 2026-07-21 20:34:03 +02:00
captures.md Make download captures incremental with skipped tracks and progress 2026-07-21 15:45:04 +02:00
cbd-bundle.md Give cbd its own config file, separate from cbd-tui 2026-07-21 22:57:43 +02:00
client-configs.md Give cbd its own config file, separate from cbd-tui 2026-07-21 22:57:43 +02:00
fs-provider.md Persist queues as fs-provider folders 2026-07-21 10:41:49 +02:00
help-modal.md Add a help modal to cbd-tui behind a declarative binding table 2026-07-20 17:27:12 +02:00
incremental-captures.md Make download captures incremental with skipped tracks and progress 2026-07-21 15:45:04 +02:00
node-editing.md Add rename and delete for modifiable library nodes 2026-07-20 23:34:47 +02:00
overview.md Document the as-built architecture 2026-07-20 10:34:45 +02:00
progressive-queueing.md Queue large collections progressively 2026-07-21 01:08:34 +02:00
queue-persistence.md Capture library subtrees as bookmarks 2026-07-21 11:11:27 +02:00
roles-auth.md Gate the gRPC surface behind basic-auth roles 2026-07-21 20:47:06 +02:00
search.md Add Tidal search as creatable library nodes 2026-07-20 17:58:44 +02:00
spectrum.md Add a server-streamed frequency spectrum visualizer 2026-07-21 23:14:03 +02:00
tui-search.md Add a / search filter to the TUI library and queue panes 2026-07-21 22:54:39 +02:00
web-client.md Add a Leptos web client served by the server 2026-07-21 22:43:06 +02:00
youtube-provider.md Replace the yt-dlp subprocess with the pure-Rust rustypipe client 2026-07-21 17:12:40 +02:00
youtube-rustypipe.md Fetch streams in bounded windows and restore yt-dlp for stream URLs 2026-07-21 18:18:40 +02:00