Expand description
The bmson format definition.
Order of Processing
When there are coincident events in the same pulse, they are processed in the order below:
If a BpmEvent
and a StopEvent
appear on the same pulse, the current BPM will be changed at first, then scrolling the chart will be stopped for a while depending the changed BPM.
If a Note
and a StopEvent
appear on the same pulse, the sound will be played (or should be hit by a player), then scrolling the chart will be stopped.
Layered Notes
In case that notes (not BGM) from different sound channels exist on the same (key and pulse) position:
- When its length is not equal to each other, yo should treat as an error and warn to a player.
- Otherwise your player may fusion the notes. That means when a player hit the key, two sounds will be played.
Differences from BMS
- BMS can play different sound on the start and end of long note. But bmson does not allow this.
- Transparent color on BGA is not supported. But you can use PNG files having RGBA channels.
Modules
- Finite binary64 definition.
- Pulse definition for bmson format. It represents only beat on the score, so you need to know previous BPMs for finding happening seconds of a note.
Structs
- Event of bar line of the chart.
- BGA data.
- BGA note to display the picture.
- Picture file information.
- Picture id for
Bga
. - Top-level object for bmson format.
- Header metadata of chart.
- BPM change note.
- Sound note to ring a sound file.
- Note sound file and positions to be placed in the chart.
- Scroll stop note.
Enums
- Errors on converting from
Bms
intoBmson
.
Functions
- Default mode hint, beatmania 7 keys.
- Default relative percentage, 100%.
- Default resolution pulses per quarter note in 4/4 measure, 240 pulses.