scribe-beat-this / README.md
arraypress's picture
model card
ed1ef2c verified
|
Raw History Blame Contribute Delete
1.85 kB
metadata
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 (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.