Beat This! for Core AI (.aimodel)
Apple Core AI conversion of Beat This!, the beat and downbeat tracker by Francesco Foscarin,
Jan Schlüter and Gerhard Widmer (CPJKU) — Beat This! Accurate Beat Tracking Without DBN
Postprocessing, ISMIR 2024 — checkpoint final0 from
github.com/CPJKU/beat_this (MIT, 20M parameters).
scribe-beat-this-float32.aimodel (79 MB) takes a log-mel spectrogram [1, T, 128] at 50 fps
(22.05 kHz audio) and returns framewise beat and downbeat logits. The front end, the 1500-frame
chunking with 6-frame borders, the minimal peak picker and the tempo/metre fit live in
swift-music-transcriber, which uses this
as the beat tracker for its MIDI grids — the same tracker MuScriptor's own pipeline uses.
Faithfulness
One method (Attention.forward) was re-authored for the Core AI compiler, which rejected the
original einops reshape on a dynamic sequence length; RoPE became a constant matrix. The export
script asserts the re-authored module matches the original before exporting (max |diff| below
1e-3 on random input, 0 in practice). End to end, beats land within one frame of upstream on the
reference clips; resampling (julius versus soxr) is the only step not shared with upstream.
Use
hf download arraypress/scribe-beat-this --local-dir models
scribe model install models/scribe-beat-this-float32.aimodel # picked up automatically as the tracker
Reproduce with uv run Tools/export_beat_this.py in the library repo. macOS 27, Apple silicon.
Licence
MIT, as upstream. Please cite the ISMIR 2024 paper if you use it.