-
Notifications
You must be signed in to change notification settings - Fork 1
Beatmap Format
kb_z edited this page Oct 13, 2015
·
8 revisions
I've tweaked the format since SIF Train into something more simple.
fields:
- songName: the name of the song, UTF-8 encoded
- songFile: the name of the music file (may or not be present in the soundfiles folder) without extension
- composer: self-explanatory
- lyricist: self-explanatory
- id: required - must be a unique number, It's encouraged to use numbers above 100000 to avoid conflicts with the files from my other repo
- difficultyName: the name of the difficulty
- difficulty: the difficulty rating (in stars)
- attribute: the attribute of the song (0: TUTORIAL, 1:Cute, 2: Cool, 3: Passion, 4: All)
- bpm: the bpm of the song
- duration: the duration of the song (if a soundfile isn't present, this value will indicate the end of the song. I recommend setting this value to the time of the last note + 5 seconds)
fields:
- id: the id of the note, is unique within the song.
- timing: the time at which the note should be hit
- type: the type of the note (1: normal, 2: hold)
- startPos: the spawn position, (1-5) (unused)
- endPos: the end position (1-5) (unused)
- status: the kind of note (0: no-swipe, 1:swipe-left, 2:swipe-right)
- sync: flag which indicates whether two or more notes are played at the same time
- groupId: if notes are swipes, they can be grouped together by the groupId
- nextNoteId: swipes or holds need info on which other note they're linked to for correctly drawing the beams / processing hit/miss
- prevNoteId: back-reference to the previous note in a hold or grouped swipe combo
Sample:
{
"metadata":{
"songName":"TUTORIAL",
"songFile":"song_0",
"composer":"TUTORIAL",
"lyricist":"TUTORIAL",
"id":0,
"difficultyName":"Debut",
"difficulty":0,
"attribute":0,
"bpm":60,
"duration":9.6},
"notes":[
{
"id":1,
"timing":0.6,
"type":1,
"startPos":3,
"endPos":3,
"status":0,
"sync":0,
"groupId":0,
"nextNoteId":0,
"prevNoteId":0
},
{
"id":2,
"timing":1.8,
"type":1,
"startPos":3,
"endPos":3,
"status":0,
"sync":0,
"groupId":0,
"nextNoteId":0,
"prevNoteId":0
},
{
"id":3,
"timing":3.0,
"type":1,
"startPos":3,
"endPos":3,
"status":0,
"sync":0,
"groupId":0,
"nextNoteId":0,
"prevNoteId":0
},
{
"id":4,
"timing":4.2,
"type":1,
"startPos":3,
"endPos":3,
"status":0,
"sync":0,
"groupId":0,
"nextNoteId":0,
"prevNoteId":0
},
{
"id":5,
"timing":5.4,
"type":1,
"startPos":3,
"endPos":3,
"status":0,
"sync":0,
"groupId":0,
"nextNoteId":0,
"prevNoteId":0
},
{
"id":6,
"timing":6.6,
"type":1,
"startPos":3,
"endPos":3,
"status":0,
"sync":0,
"groupId":0,
"nextNoteId":0,
"prevNoteId":0
}]`