DSPark 1.7.0 expands the header-only framework with production-ready musical
timing, pitch, spectral processing, native file formats, and stronger real-time
contracts.
Musical timing, pitch, and spectral processing
- Added
OnsetDetector,BeatTracker, andLoopFinderfor transient analysis,
tempo/phase tracking, and bounded crossfade-ready loop discovery. - Added
TimeStretchfor independent high-quality duration and pitch control. - Added
PitchCorrectorwith YIN detection, scale-aware quantization, glide,
and formant preservation. - Added
SpectralFreezewith phase-aware advance, reconstruction, and
decorrelation modes. - Added
KeyDetectorand offlineLoudnessNormalizerprocessing under a
true-peak ceiling.
Native formats and hardened I/O
- Added dependency-free native FLAC decoding with
FlacFile. - Added Standard MIDI File reading and writing with
MidiFile. - Hardened WAV, MP3, FLAC, and MIDI parsing against malformed sizes, truncated
data, and invalid metadata without introducing runtime codec dependencies.
Real-time and public API contracts
- Automatic analysis windows now preserve their time span across sample rates,
with resolved sizes exposed for latency accounting. - Audio-thread adoption of staged multi-word state is bounded; a contended
update may be deferred, but the callback never waits for the control thread. - Added
Biquad::setCoeffsNow()for stream-owner, single-threaded, and offline
coefficient updates.BiquadCoeffsand the biquad recursion now use double
precision for all sample types. AudioBufferViewconversions now express const-correctness as constraints,
andAudioProcessornow represents an unambiguous in-place mutable-buffer
processor.- Allocation failures and invalid
prepare()arguments preserve safe, valid
state across the affected processors and buffers.
Validation and distribution
- Package recipes for Conan and vcpkg are pinned to the immutable 1.7.0 source
authority. - CI covers GCC, Clang, MSVC, x64, ARM64, AddressSanitizer,
UndefinedBehaviorSanitizer, float-cast overflow, public header conformance,
installed-header consumption, and concurrent-suite isolation. - Plugin, DSParkLab, documentation, examples, benchmarks, and downstream CMake
package consumers remain part of the release validation surface.
Most 1.6.1 code remains source-compatible. Review the
1.7.0 migration guide
for analysis-window latency, BiquadCoeffs, AudioBufferView, and
AudioProcessor changes.
See the full changelog
or compare v1.6.1...v1.7.0.