Skip to content

Beat Markers and Beat Grid Export

Onset Engine detects a full beat grid for every track it analyzes - beats, downbeats, tempo and structure. Beat export writes that grid out so you can use it in other tools:

  • Beat markers for your editor - Premiere Pro, DaVinci Resolve and After Effects, so you can cut to the beat by hand on your own timeline.
  • Timing files - a funscript, an Audacity label track and a CSV, for scripting, overlay work, subtitle timing, or your own tooling.

In the AUDIO tab of the asset bin, each track has a ⇩ BEATS button. Click it and choose:

  • Export for - any of Premiere Pro, DaVinci Resolve, After Effects, and Funscript, Audacity labels and CSV.
  • Timeline frame rate - set it to your project’s frame rate. Premiere and Resolve markers sit on whole frames, so a beat lands on the frame nearest to it.
  • Markers on - Every beat, or Bar starts only for one marker per bar.

Click Export. The console shows progress while the song is analyzed; when it finishes, a dialog says how to bring each file into your editor and offers to open the folder. Onset remembers your choices for next time.

Files are written next to the song, suffixed _beats so they never overwrite a file you already have.

Each marker is named by bar and beat, the way music software counts: 12.3 is the third beat of bar 12. Beats before the first bar starts (a pickup) are counted as bar 0.

File → Import and choose the .xml. It opens as a new sequence with the song on the first audio track and a marker on every beat. Edit in that sequence, or copy the song and its markers into your own.

File → Import → Timeline and choose the .xml. It opens as a new timeline with the song and a marker on every beat. Bar starts are the markers named N.1.

Resolve uses the same .xml file as Premiere Pro. In v1.2.1, tick Premiere Pro in the export dialog to get it: the .edl that v1.2.1 writes for DaVinci Resolve doesn’t bring markers in.

Select your song’s layer, then File → Scripts → Run Script File and choose the .jsx. The markers go on that layer, lined up with the song wherever the layer starts. With no layer selected, they go on the composition instead. One Undo removes them all.

Ticking Funscript, Audacity labels and CSV writes all three. They always carry every beat; the Markers on choice applies to the editor markers only.

The beat grid as a metronome pattern - position alternates on each detected beat. Loads into OpenFunscripter, script players, and heatmap tools as a timing reference.

{
"version": "1.0",
"metadata": { "creator": "Onset Engine", "type": "beat-grid" },
"actions": [
{ "at": 511, "pos": 90 },
{ "at": 998, "pos": 10 }
]
}

at is milliseconds; pos is 0–100.

An Audacity label track - tab-separated, one point label per beat. Downbeats are labeled downbeat so bar starts stand out while scrubbing.

0.510839 0.510839 downbeat
0.998458 0.998458 beat

Import via File → Import → Labels.

Plain rows for your own tooling:

time_s,type
0.510839,downbeat
0.998458,beat

Beat export writes timing out. Onset can also read an intensity curve back in and use it to drive an edit - see Energy Curves.

  • Detection runs the same analysis the editor uses, so an exported grid matches what a render would cut to.
  • Everything runs locally; nothing is uploaded.
  • Accuracy depends on the track. Steady percussive material detects cleanly; rubato or beatless material is inherently ambiguous.