Research / Reading research

Osu2MIR: extracting beat-tracking data from osu! charts

Osu2MIR extracts musical beat positions from information in game charts. Understanding how those positions differ from note-input timestamps is central to reading the work. This article follows audio matching, timing segments, selection and validation through the paper and the public file format.

Written and edited by Game Making Notes · Sources reviewed · 5 min read

Article summary

  • Extract musical timing references from tempo points.
  • Explain what the study's 5-second distinction is used to investigate.
  • Distinguish reported findings, original examples and future reproduction work.
An early osu! screen with hit circles and curved sliders, preserved in the official wiki's record of the game's developing editor and player community.

osu! · Early 2007 screenshot preserved in the official wiki

The screenshot shows how music and charts appear in play. The file structure and procedure below explain which data the research extracts.

Image credit: ppy / osu! wiki · Source page ↗ · Original image ↗

Extracting musical beats from game charts

Liu and Donahue's Osu2MIR converts tempo information in game charts into annotations for music beat tracking. This article examines extraction, selection and evaluation using the 2025 paper and public repository. Running the code and reproducing the dataset remain separate tasks.

Notes on screen tell players when to act. The study instead seeks annotations for beats in the music, with downbeats marking the start of each bar. The first question is which chart information supplies those musical references.

Related primary sources: Liu & Donahue · Osu2MIR paper §§1–8 ↗

Match audio files to timing points

The paper describes collecting ranked sets that include Insane difficulty and have at least 200 favorites. In the file format, AudioFilename identifies the corresponding recording, while TimingPoints provides tempo and meter information. HitObjects is a separate section containing gameplay targets.

Our example starts at 1 second, places beats 0.5 seconds apart and groups 4 beats into each bar. Beats occur at 1, 1.5, 2 and 2.5 seconds; the next downbeat falls at 3 seconds. If input targets appear only at 1 and 2 seconds, the remaining musical beats still exist. This illustrates the distinction between a musical annotation and a gameplay target.

Related primary sources: Liu & Donahue · Osu2MIR paper §§1–8 ↗ · osu! · .osu file format ↗

Three different kinds of timing information

Three different kinds of timing information
SourceRepresentationExample
BeatRegular musical pulse1, 1.5, 2, 2.5 s
DownbeatBeginning of a bar1, 3, 5 s
Input targetPlayer actionSelect 1 and 2 s
An early selection screen with Play and Edit, offering entry points to both gameplay and chart creation.

osu! · Early 2007 song-selection screen

The early client's song-selection screen also provides access to the editor. It documents the game; the grid below explains the musical annotations used in the research.

Image credit: official osu! development-history archive · Source page ↗ · Original image ↗

Put beats, downbeats and input targets on separate rows

Put beats, downbeats and input targets on separate rows. An original example starting at 1 second, at 120 BPM in 4/4.

Editorial diagram · An original example starting at 1 second, at 120 BPM in 4/4.

Horizontal axis: music-file time, 1–4.5 seconds; next downbeat at 5 seconds. Rows: beats, downbeats and input targets.

On smaller screens, scroll the diagram horizontally. Enlarge diagram ↗

Values and sequence shown in the diagram
  1. Beats every 0.5 s
  2. Downbeats at 1, 3 and 5 s
  3. Inputs selected only at 1 and 2 s

Separate speed points from tempo points

In the osu! format, an uninherited timing point establishes a new tempo segment. Negative beatLength values in inherited points relate to the slider-speed multiplier. Classify the point types before treating their values as beat intervals.

Record how segment starts, beat lengths and meter are read, then how beats are generated up to the next tempo reference or the song's end. Keep intermediate data: changing the time origin, units, bar phase or recording version changes which musical moments the annotations identify.

Related primary sources: osu! · .osu file format ↗

From file matching to annotation review

From file matching to annotation review. An explanatory pathway based on the paper's problem and the public format. The number and arrangement of stages are an original diagram.

Editorial diagram · An explanatory pathway based on the paper's problem and the public format. The number and arrangement of stages are an original diagram.

Columns: audio matching → point classification → beat expansion → review. Numbers indicate processing order.

On smaller screens, scroll the diagram horizontally. Enlarge diagram ↗

Values and sequence shown in the diagram
  1. Match AudioFilename to the file
  2. Beat interval and meter of uninherited segments
  3. Expand beats and downbeats by segment
  4. Retain evidence for automated comparisons and manual review

Read selection criteria in context

The paper examines single-point material, multiple points separated by at least 5 seconds, and multiple points that include intervals shorter than 5 seconds. This grouping helps investigate material with frequent closely spaced adjustments. The 5-second threshold is a heuristic used in this research.

For production use, inspect segment alignment and musical phase alongside the number of timing points. The checklist below is our proposed processing record. Keep the study's observations separate from acceptance criteria for a new game.

Related primary sources: Liu & Donahue · Osu2MIR paper §§1–8 ↗

Read algorithm agreement alongside manual analysis

The authors compare annotations with madmom-based beat tracking, using F-measure, CMLt and AMLt alongside manual analysis. Interpretation depends on each metric's definition, tolerance and the material selected. Agreement with the algorithm provides one source of evidence when assessing quality.

The paper's figures of 741 annotations and 708 recordings describe that subset, rather than the total collection. We report those figures within their stated scope, without estimating new performance results or the number of manually reviewed samples.

Related primary sources: Liu & Donahue · Osu2MIR paper §§1–8 ↗

Plan the checks needed for reproduction

The public repository supplies identification information for matching recordings. Chart-material rights and audio-use conditions require separate consideration, with file correspondence and hashes checked against permitted source materials. This article did not download or redistribute game recordings or the research dataset.

A reproduction should record the code version, inclusion and exclusion criteria, matched recordings, extracted beats and downbeats, and review results. Building a playable chart adds a further design decision: which musical beats should ask the player to perform which actions?

Related primary sources: Osu2MIR · Public repository ↗

Records for future reproduction

Records for future reproduction
StageRecordQuestion to check
MatchingFile identifier, hash and versionIs it the same recording?
ExtractionPoint types, units and segmentsDoes the beat reference remain continuous?
SelectionInclusion and exclusion reasonsWere the same conditions applied?
EvaluationMetric settings and review evidenceWhat scope do the figures describe?

Sources & scope

Sources reviewed 2026.10.17: paper §§1–8, repository README and the .osu format. Collection and evaluation figures are presented within the paper's reported scope. The grids and processing checklist are original explanations. Code execution, data reproduction and audio redistribution were not performed.

Screenshots and photographs belong to their respective rights holders. They illustrate controls and game features; captions identify the version and provider.

Revision history: 2026-10-17 Expanded cases, calculation examples, diagrams and source explanations. Report an error: Editorial email