Expand description
rlx-core — the shared, source-agnostic brain of Ritmolux.
Takes PCM frames in (it never knows whether they came from loopback capture or foobar2000), runs DSP (spectrum, onset/beat), and renders scenes via wgpu. See ADR-0001 for the architecture and the layering rules in CLAUDE.md: no audio-source or platform types in this crate, ever.
Re-exports§
pub use wgpu;
Modules§
- audio
- Source-agnostic sample intake: format validation plus a lock-free SPSC ring buffer.
- diag
- Runtime diagnostics: rolling frame-time statistics, core-tracked GPU-byte accounting, and the flags that gate the on-screen overlay (Plan 0011).
- dsp
- Deterministic analysis of the PCM stream: windowed FFT spectrum plus an
onset envelope and beat flag, delivered once per hop as an
AnalysisFrame. - milk
- The MilkDrop runtime: compiled EEL2 programs, the machine that executes them, and the driver that turns their output into warp-mesh parameters (ADR-0113).
- preset
- The preset layer — ADR-0002 layers 1-2: TOML data binding built-in system parameters to a pure expression language over the audio analysis.
- render
- The render seam: take an
AnalysisFrame, drive the active preset’s system, draw one frame. - signal
- Pure, deterministic PCM signal synthesis for the capture / visual-QA path
(Plan 0013). These generate synthetic signals by math over a sample clock —
they are not an audio source (no WASAPI, no file, no OS), so they live
in the source-agnostic core and can be fed straight through the real
Analyzerto exercise the actual DSP.