51.0.0 • Published 1 year ago

bms v51.0.0

Weekly downloads
12
License
MIT
Repository
github
Last release
1 year ago

A Be-Music Source file-format parser. It is made primarily for usage in Bemuse.

Usage

Documentation has been lacking. For now, please see issue 26 for preliminary usage notes.

BMS Parsing Stages

BMS will be parsed in three stages:

  1. Use bms.Reader to turn a Buffer with BMS file content into a String.
  2. Use bms.Compiler to compile the String into a BMSChart.
    • Syntax-level processing is done here, such as:
      • #RANDOM
      • #SETRANDOM
      • #SWITCH
    • Results in three primary data structures:
      • headers contains all BMS headers
      • objects contains all BMS objects on the timeline.
      • timeSignature contains the time signature information.
        • also allows converting from measure+fraction to beat
  3. BMSChart contains all information needed to further process the song. These modules can then be used to extract information from BMSChart.
    • SongInfo allows looking up title, subtitle, artist, maker, and genre.
      • Implicit/multiplex subtitles taken into account here.
    • Timing allows conversion from beat to seconds.
      • BPM, BPM changes, STOP objects, and STP commands taken into account here.
    • Positioning allows conversion from beat to in-game position.
    • Notes parses the notechart, resulting in in-game notes.
      • Channel mapping is taken into consideration here.
      • Normal notes and long notes taken into account here.
      • Also emits list of notes to autoplay.

Other Utility Classes

  • Speedcore allows calculation of position and velocity over a linear graph.
51.0.0

1 year ago

50.1.1

2 years ago

50.1.0

2 years ago

50.0.1

3 years ago

49.1.2

3 years ago

49.0.0

3 years ago

45.1.0

5 years ago

44.2.0

5 years ago

44.1.1

5 years ago

3.1.0-2

6 years ago

3.1.0-1

6 years ago

3.0.0

6 years ago

3.0.0-2

6 years ago

3.0.0-1

6 years ago

2.1.0-beta.1

6 years ago

2.0.0

9 years ago

2.0.0-beta.3

9 years ago

2.0.0-beta.2

9 years ago

2.0.0-beta.1

9 years ago

0.12.0

9 years ago

0.11.1

9 years ago

0.11.0

9 years ago

0.10.0

9 years ago

0.9.0

9 years ago

0.8.0

9 years ago

0.7.2

9 years ago

0.7.1

9 years ago

0.7.0

9 years ago

0.6.0

9 years ago

0.5.0

9 years ago

0.4.0

9 years ago

0.3.1

9 years ago

0.2.1

9 years ago

0.2.0

9 years ago