Skip to content

v0.4.0

Latest

Choose a tag to compare

@laurenceyoon laurenceyoon released this 27 Oct 20:03
6d73fb7

New score followers, a method registry, and a standardized evaluation output. Not backwards compatible with 0.3.

Added

  • Korzeniowski particle filter for audio and MIDI (method="pfkorz"), and the OLTW variants arzt_tempo and arzt_multi_fold.
  • register_method() and a YAML method registry for custom score followers.
  • SPARC smoothness in evaluate_alignment(), using configurable onset-wise windows and last-position hold resampling. Compare smoothness only within the same input type (audio or MIDI).
  • Python 3.13 and NumPy 2 support.

Changed

  • method="pf" (ParticleFilter) is removed; use method="pfkorz".
  • alignment_path rows are now (performance time in seconds, score position in beats), the reverse of 0.3.
  • Custom followers now receive observations through __call__(observation, perf_time) instead of a single (observation, perf_time) tuple.
  • evaluate_alignment() returns flat fields (mean_b, median_b, std_b, accuracy_<tolerance>b, skewness, kurtosis, smoothness).
  • Removed millisecond-based alignment metrics (in_seconds, TOLERANCES_IN_MILLISECONDS, ms_tolerances) and the return_details option on evaluate_alignment().
  • Latency keys are renamed from f_avg_latency and i_avg_latency to feature_latency_ms and inference_latency_ms.

Fixed

  • Corrected CQT/STFT magnitude features, non-4/4 chord durations, MIDI onset timestamps, and grace-note tempo initialization.
  • Included bundled example assets in distribution wheels.

What's Changed

Full Changelog: v0.3.0...v0.4.0