Added
10-Band Graphic Equalizer
- Full 10-band graphic EQ implemented entirely in the Rust audio engine using biquad peak filters (31 Hz – 16 kHz). Gains adjustable ±12 dB per band.
- EQ is processed in the audio pipeline via
EqSource<S>— a customrodio::Sourcewrapper that applies cascaded biquad filters in real-time. - Filter coefficients update smoothly on every 1024-sample block without audio interruption.
- Seek support:
EqSource::try_seek()implemented — filter state is reset on seek to prevent clicks/artefacts. This also fixes waveform seek, which had silently broken when the EQ was introduced (rodio returnedSeekError::NotSupportedwithout the impl). - 10 built-in presets: Flat, Bass Boost, Treble Boost, Rock, Pop, Jazz, Classical, Electronic, Vocal, Acoustic.
- Custom presets: save, name, and delete your own presets.
- EQ state persisted via
psysonic-eqlocalStorage key (gains, enabled, active preset, custom presets). - New
audio_set_eqTauri command; settings synced to Rust on startup viaeqStore.syncToRust().
Connection Indicator
- LED indicator in the header bar (green = connected, red = disconnected, pulsing = checking). Sits between the search bar and the Now Playing dropdown.
- Shows server name and LAN/WAN status next to the LED.
- Offline overlay: when the server is unreachable, a full-content-area overlay appears with a retry button.
useConnectionStatushook pings the active server periodically and exposesstatus,isRetrying,retry,isLan, andserverName.
Now Playing Page
- New
/now-playingroute andNowPlayingPagecomponent — accessible from the sidebar.
Fixed
Waveform Seek (Player Bar)
- Drag out of canvas no longer breaks seeking:
mousemoveandmouseupevents are now registered onwindow(not the canvas element), so dragging fast across other elements still updates playback position correctly. - Stale closure fix:
trackIdandseekfunction are kept in refs so the window-level handlers always see the current values.
Changed
App Icon
- New app icon (
public/logo-psysonic.png) across all platforms — Login page, Sidebar, Settings About section, README header, and all generated Tauri platform icons (Windows ICO, macOS ICNS, Linux PNGs, Android, iOS).