What's Changed
- Detailed Hierarchical Hardware Probing by @Wang-Yue in #460
- Alsa probe improvements by @HEnquist in #465
- Smarter wasapi probing by @HEnquist in #466
- Threaded alsa exit by @HEnquist in #464
- Ws stream by @HEnquist in #457
- Cleanup for 420 by @HEnquist in #468
- Spectrum analyzer by @HEnquist in #470
- Bin is thin wrapper by @HEnquist in #471
- Support playback rate change by @Wang-Yue in #472
- Check if volume filters missed a vol change by @HEnquist in #475
- Lookahead Limiter by @brainrake in #425
- factor out EnginePipeline by @kvc0 in #483
- add rust-cache to ci_test by @kvc0 in #486
- Engine tidying by @kvc0 in #484
- tighten rayon ownership by @kvc0 in #485
- Add RF64 wav writing and patch plain wav header sizes by @HEnquist in #491
- Measure capture rate over rate_measure_interval, not the update interval by @HEnquist in #503
- Fix ASIO ring buffer underruns when driver buffer exceeds chunksize by @HEnquist in #501
- Detect missed volume changes via pause counter instead of a timestamp by @HEnquist in #500
- Websocket protocol: internal tagging by @HEnquist in #493
- Build armv7 in a Debian container instead of with cross by @HEnquist in #506
- Select f32 processing with a compiler flag, and shrink what differs between builds by @HEnquist in #505
- Add LookaheadLimiter processor by @HEnquist in #504
- Enable real-time priority on Linux without D-Bus by @HEnquist in #489
- Use fused multiply-add in biquad where the hardware has it by @HEnquist in #517
- Faster convolution setup and processing by @HEnquist in #518
- Make filter and processor processing infallible by @HEnquist in #519
- Make the loudness shelf frequencies and Q configurable by @HEnquist in #521
- Extend FivePointPeq to a free number of bands, as NPointPeq by @HEnquist in #522
- Run biquads several at a time by @HEnquist in #524
- PipeWire: fix autoconnect_to for sinks, and don't fall back to the default device by @HEnquist in #523
- ASIO: replace the Steinberg SDK with azo by @HEnquist in #511
- Stricter validation of numeric config values by @HEnquist in #526
- Reuse the coefficients read during config validation by @HEnquist in #527
- Add end-to-end test suite with real and dummy devices by @HEnquist in #535
- Regenerate websocket.md by @github-actions[bot] in #537
- Regenerate websocket.md by @github-actions[bot] in #539
- Converge backend behavior and share capture and playback helpers by @HEnquist in #538
- Add an e2e suite for the PipeWire backend by @HEnquist in #541
- Skip the buffer level sample when the estimator lock is busy by @HEnquist in #542
- Request the config sample rate from PipeWire with node.rate by @HEnquist in #543
- Move config types and validation to a camilladsp-schema crate by @HEnquist in #544
- Prepare camilladsp and camilladsp-schema for publishing on crates.io by @HEnquist in #546
New Contributors
- @brainrake made their first contribution in #425
- @kvc0 made their first contribution in #483
- @github-actions[bot] made their first contribution in #537
Full Changelog: v4.1.3...v5.0.0-beta.1