Skip to content

0.4.0 - 2026-10-12

Choose a tag to compare

@github-actions github-actions released this 13 Oct 01:16
10a38e4

Release Notes

Breaking

  • High precision is now a sample type instead of a config option. With the high_precision feature, the new public types DoubleDouble, F128, and F256 can be used as any resampler's sample type, e.g. InterleavedResampler::<F128>. Convert samples in with From<f64>/From<f32> (exact) and out with to_f64().
  • Every stage now runs in the sample type: decimation, edge extrapolation, both FFTs, the spectral taper and phase, overlap-add, and output scaling. Previously only the FFTs ran in the wide type, and the spectrum was rounded to f64 between them, so high-precision output differs slightly from 0.3.1.
  • Removed Config::high_precision, Config::with_high_precision, HighPrecision, and Error::HighPrecisionIncompatibleWithF32.
  • InterleavedResampler, PlanarResampler, and RealtimeResampler are bounded by the new Sample trait instead of num_traits::Float + realfft::FftNum. Every Float + FftNum type implements Sample, so f32 and f64 code is unaffected unless it names the bounds.
  • ardftsrc-rs replaces --high-precision double-double|f128|f256 with --dd, --f128, and --f256, alongside --f32 and --f64. High-precision runs decode and encode in f64.

Added

  • RodioResampler::reset() discards buffered audio and resamples afresh from wherever the inner source is, without seeking it. Use it when the inner source jumps on its own, such as a cleared queue. With fast-start enabled it re-primes at once. try_seek() now calls it after seeking the inner source.

Changed

  • The CPU resampler now reuses per-core FFT scratch buffers instead of allocating them on every chunk.

Documentation

  • PERFORMANCE.md is regenerated. On one core, PRESET_HIGH converts 44.1 kHz → 48 kHz at 662× realtime (was 374×). rubato and PRESET_FAST are now within 3% of each other when upsampling.

Benchmarks

  • The throughput, chunk-time, and rubato benches share one input: 4 minutes of deterministic stereo white noise per input rate, replacing the test_wavs fixtures, which differed in length and channel count between rates.

Install ardftsrc-rs 0.4.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/phayes/ardftsrc-rs/releases/download/v0.4.0/ardftsrc-rs-installer.sh | sh

Install prebuilt binaries via Homebrew

brew install phayes/tap/ardftsrc-rs

Download ardftsrc-rs 0.4.0

File Platform Checksum
ardftsrc-rs-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
ardftsrc-rs-x86_64-apple-darwin.tar.xz Intel macOS checksum
ardftsrc-rs-x86_64-pc-windows-msvc.zip x64 Windows checksum
ardftsrc-rs-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
ardftsrc-rs-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum