What is a Beatmap?¶
A Beatmap in osu! is a description of song, including metadata like title and
artist as well as the locations of all of the circles, sliders, and
spinners. Osu! stores this information in .osu
files. The .osu
format is
a text format like an .ini
file with extensions for encoding the
time-series of hit objects.
In slider, the Beatmap
object represents a beatmap and
exposes the information from the .osu
file.
Hit Objects¶
A hit object is the generic term for a circle, slider, or spinner. These are the things you click in osu!. A hit object is composed of the (x, y, time) position in the map and the type. For some types of objects, there is some extra information.
The (x, y) bounds for all hit objects are [0, 512] by [0, 384]. All hit objects fall within these bounds regardless of your resolution or window size.
Sliders¶
For sliders, the (x, y, time) coordinate is for the start of the slider. The curve is encoded as a curve type, one of Linear, Bezier, Perfect, or Catmull, and the control points. The control points are a sequence of (x, y) coordinates which are interpreted by the curve type to define the shape of the slider. Control points may fall outside of the [0, 512] by [0, 384] bounds because they don’t actually appear on your screen explicitly.
Spinners¶
In addition to (x, y, time), spinners must encode the duration.