--- license: mit tags: - beat-tracking - downbeat-tracking - core-ai - aimodel - apple-silicon - macos library_name: swift-music-transcriber --- # 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](https://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](https://github.com/arraypress/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 ```sh 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.