Performance
- The two cascaded Butterworth sections of each Linkwitz-Riley side now share a single coefficient set instead of storing duplicates - smaller filter state and one coefficient block per side in the processing loop
Other
- Cutoff bounds (10-1000 Hz, 1.0-24.0 kHz) are defined once and shared by the settings clamp and the config-dialog slider ranges, so the UI and backend limits can never drift apart
- No sound changes versus v0.2.2 - the filter response is bit-identical
Full Changelog: v0.2.2...v0.2.3