What's New in v0.9.6
Admin Panel Rework
- Unified Receivers & Profiles tab — single screen with dongle selector, hardware settings editor, and profile tabs (wrapping). Full profile editor with all SDR-relevant fields.
- Cookie-based admin sessions — login persists across page reloads (7-day httpOnly cookie). No need to re-enter password on every visit.
- Server settings — callsign, description, location, admin password, FFT history size/compression, demo mode — all configurable from the UI and saved to config.yaml.
- Graceful no-config startup — server starts with empty state if no config.yaml exists. Admin configures everything via the UI.
Per-Profile Hardware Overrides
- Direct Sampling (Off / I-ADC / Q-ADC) — per-profile, overrides dongle-level. Essential for HF reception.
- Swap I/Q — fixes inverted spectrum on cheap dongles with incorrect I/Q wiring.
- Oscillator Offset (Hz) — compensates local oscillator error on cheap crystals. Transparent to users.
Dongle & Profile Dropdown
- New fancy dropdown in the sidebar above demodulation, replacing the old basic dongle selector.
- Shows active profile name + center frequency. Clicking a profile switches the dongle.
Profile Switching Fixed
- Subscribe command now triggers profile switch when requested profile differs from active.
- Server rebuilds IQ extractors for all existing clients on profile change.
DSP Optimizations
- ADPCM FFT decode — eliminated intermediate Int16Array allocation (decodes directly to Float32).
- Client demodulators — pre-allocated scratch buffers eliminate ~8 MB/s GC pressure for WFM stereo.
- NCO lookup tables — Float64 to Float32 (halves table memory per client).
Codec Persistence
- FFT and IQ codec preferences saved to localStorage and restored on page load.
UI Polish
- Admin button replaced with cog icon in header.
- Removed dongle label from footer status bar.