Module bms_rs::bmson

source ·
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

Enums

Functions