diff --git a/schema.json b/schema.json index 95247a8..91e9c9b 100644 --- a/schema.json +++ b/schema.json @@ -11,6 +11,7 @@ "metadata": { "description": "Contains information that applies to the whole set of charts", "type": "object", + "additionalProperties": false, "properties": { "title": { "description": "The title of the song", @@ -28,14 +29,6 @@ "description": "Path to the album cover, relative to the memon file", "type": "string" }, - "BPM": { - "description": "Song tempo in Beats per Minute", - "$ref": "#/$defs/strictlyPositiveDecimal" - }, - "offset": { - "description": "In seconds, opposite of the time position of the first beat in the music file", - "$ref": "#/$defs/decimal" - }, "preview": { "description": "Describes the part of the music file that's to be played on loop when previewing this song", "oneOf": [{ @@ -59,24 +52,31 @@ } ] } - }, - "required": ["title", "artist", "BPM", "offset"] + } + }, + "timing": { + "description": "default timing, applies by default to every chart in the file", + "$ref": "#/$defs/timingObject" }, "data": { - "description": "Charts with difficulty names used as keys", + "description": "Mapping that associates difficulty names to charts", "type": "object", "additionalProperties": { "description": "A chart", "type": "object", "properties": { "level": { - "description": "Level rating of the chart, typically goes from 0 to 10 in jubeat", - "type": "integer" + "description": "Level rating of the chart, typically goes from 1 to 10.9 in jubeat", + "$ref": "#/$defs/positiveDecimal" }, "resolution": { - "description": "Tempo resolution, number of \"ticks\" in a beat", + "description": "Number of ticks in a beat for the notes", "type": "integer", - "exclusiveMinimum": 0 + "minimum": 1 + }, + "timing": { + "description": "Chart-specific timing to be used instead of the default timing info", + "$ref": "#/$defs/timingObject" }, "notes": { "description": "The array of notes", @@ -92,28 +92,12 @@ "maximum": 15 }, "t": { - "description": "Note time", - "oneOf": [{ - "description": "Time measured in \"ticks\" as specified with the resolution", - "type": "integer", - "minimum": 0 - }, - { - "$ref": "#/$defs/timeFraction" - } - ] + "description": "Note time, either in ticks or as a standalone fraction", + "$ref": "#/$defs/timeInBeats" }, "l": { - "description": "Long note duration", - "oneOf": [{ - "description": "Long Note Lenght in ticks", - "type": "integer", - "minimum": 1 - }, - { - "$ref": "#/$defs/nonZeroTimeFraction" - } - ] + "description": "Long note duration, either in ticks or as a standalone fraction", + "$ref": "#/$defs/nonZeroTimeInBeats" }, "p": { "description": "Tail starting position, relative to note position, counting from 0 to 11 clockwise and expanding out starting one square above the note", @@ -131,14 +115,38 @@ } } }, - "required": ["level", "resolution", "notes"] + "required": ["notes"] } } }, - "required": ["version", "metadata", "data"], + "required": ["version", "data"], "$defs": { - "timeFraction": { - "description": "Time represented as a fraction", + "timeInBeats": { + "description": "Time measured as a fraction of beats, either in ticks or as a standalone fraction", + "oneOf": [ + { + "type": "integer", + "minimum": 0 + }, + { + "$ref": "#/$defs/positiveTimeFraction" + } + ] + }, + "nonZeroTimeInBeats": { + "description": "Strictly positive time measured as a fraction of beats, either in ticks or as a standalone fraction", + "oneOf": [ + { + "type": "integer", + "minimum": 1 + }, + { + "$ref": "#/$defs/strictlyPositiveTimeFraction" + } + ] + }, + "positiveTimeFraction": { + "description": "Time in beats represented as a fraction", "type": "array", "minItems": 3, "maxItems": 3, @@ -159,10 +167,10 @@ } ] }, - "nonZeroTimeFraction": { - "description": "Non-zero time represented as a fraction", + "strictlyPositiveTimeFraction": { + "description": "Non-zero time in beats represented as a fraction", "allOf": [{ - "$ref": "#/$defs/timeFraction" + "$ref": "#/$defs/positiveTimeFraction" }, { "not": { @@ -190,7 +198,7 @@ ] }, "positiveDecimal": { - "description": "a decimal number as either a number literal or a string", + "description": "a positive decimal number as either a number literal or a string", "oneOf": [{ "type": "number" }, @@ -204,13 +212,47 @@ "description": "a strictly positive decimal number as either a number literal or a string", "oneOf": [{ "type": "number", - "exclusiveMinimum": 0 + "minimum": 1 }, { "type": "string", "pattern": "^(0\\.\\d*[1-9]\\d*|\\d*[1-9]\\d*(\\.\\d+)?)$" } ] + }, + "timingObject": { + "type": "object", + "properties": { + "offset": { + "description": "In seconds, time at which the first beat occurs in the music file", + "$ref": "#/$defs/decimal" + }, + "resolution": { + "description": "Number of ticks in a beat for the bpm events", + "type": "integer", + "minimum": 1 + }, + "bpms": { + "description": "Array of BPM events", + "type": "array", + "minItems": 1, + "items": { + "description": "A single BPM event", + "type": "object", + "properties": { + "beat": { + "description": "Time at which the bpm changes", + "$ref": "#/$defs/timeInBeats" + }, + "bpm": { + "description": "Tempo measured in Beats Per Minute", + "$ref": "#/$defs/strictlyPositiveDecimal" + } + }, + "required": ["beat", "bpm"] + } + } + } } } } \ No newline at end of file diff --git a/tests/conftest.py b/tests/conftest.py index 971d55c..c20e6c4 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -32,10 +32,10 @@ class ExamplesFolder(pytest.Collector): class ExampleSubfolder(pytest.Collector): def collect(self): path = Path(self.fspath) - for file in (path / "pass").glob("*.json"): + for file in sorted((path / "pass").glob("*.json")): yield ValidExample.from_parent(self, name=file.stem, path=file) - for file in (path / "fail").glob("*.json"): + for file in sorted((path / "fail").glob("*.json")): yield InvalidExample.from_parent(self, name=file.stem, path=file) diff --git a/tests/data/01 - basic/pass/basic.json b/tests/data/01 - basic/pass/basic.json index 5b08c12..cd3ce00 100644 --- a/tests/data/01 - basic/pass/basic.json +++ b/tests/data/01 - basic/pass/basic.json @@ -1,10 +1,4 @@ { "version": "1.0.0", - "metadata": { - "title": "", - "artist": "", - "BPM": 1, - "offset": 0 - }, "data": {} } \ No newline at end of file diff --git a/tests/data/02 - polymorphic preview/fail/array is invalid.json b/tests/data/02 - polymorphic preview/fail/array is invalid.json index 194156f..3b0283d 100644 --- a/tests/data/02 - polymorphic preview/fail/array is invalid.json +++ b/tests/data/02 - polymorphic preview/fail/array is invalid.json @@ -1,10 +1,6 @@ { "version": "1.0.0", "metadata": { - "song title": "", - "artist": "", - "BPM": 1, - "offset": 0, "preview": [] }, "data": {} diff --git a/tests/data/02 - polymorphic preview/fail/invalid object example.json b/tests/data/02 - polymorphic preview/fail/invalid object example.json index 4e67442..61826c5 100644 --- a/tests/data/02 - polymorphic preview/fail/invalid object example.json +++ b/tests/data/02 - polymorphic preview/fail/invalid object example.json @@ -1,10 +1,6 @@ { "version": "1.0.0", "metadata": { - "song title": "", - "artist": "", - "BPM": 1, - "offset": 0, "preview": { "position": 0, "duration": 0 diff --git a/tests/data/02 - polymorphic preview/fail/null is invalid.json b/tests/data/02 - polymorphic preview/fail/null is invalid.json index ad26996..b2a08f2 100644 --- a/tests/data/02 - polymorphic preview/fail/null is invalid.json +++ b/tests/data/02 - polymorphic preview/fail/null is invalid.json @@ -1,10 +1,6 @@ { "version": "1.0.0", "metadata": { - "song title": "", - "artist": "", - "BPM": 1, - "offset": 0, "preview": null }, "data": {} diff --git a/tests/data/02 - polymorphic preview/fail/number is invalid.json b/tests/data/02 - polymorphic preview/fail/number is invalid.json index 5738dc0..3114267 100644 --- a/tests/data/02 - polymorphic preview/fail/number is invalid.json +++ b/tests/data/02 - polymorphic preview/fail/number is invalid.json @@ -1,10 +1,6 @@ { "version": "1.0.0", "metadata": { - "song title": "", - "artist": "", - "BPM": 1, - "offset": 0, "preview": 3 }, "data": {} diff --git a/tests/data/02 - polymorphic preview/pass/good object.json b/tests/data/02 - polymorphic preview/pass/good object.json index 5a4d123..eec0224 100644 --- a/tests/data/02 - polymorphic preview/pass/good object.json +++ b/tests/data/02 - polymorphic preview/pass/good object.json @@ -1,10 +1,6 @@ { "version": "1.0.0", "metadata": { - "title": "", - "artist": "", - "BPM": 1, - "offset": 0, "preview": { "start": 0, "duration": 1 diff --git a/tests/data/02 - polymorphic preview/pass/good string.json b/tests/data/02 - polymorphic preview/pass/good string.json index a144613..092f87a 100644 --- a/tests/data/02 - polymorphic preview/pass/good string.json +++ b/tests/data/02 - polymorphic preview/pass/good string.json @@ -1,10 +1,6 @@ { "version": "1.0.0", "metadata": { - "title": "", - "artist": "", - "BPM": 1, - "offset": 0, "preview": "blablabla" }, "data": {} diff --git a/tests/data/05 - fraction times/fail/2 ints is too short.json b/tests/data/05 - fraction times/fail/2 ints is too short.json index cb78a92..184115c 100644 --- a/tests/data/05 - fraction times/fail/2 ints is too short.json +++ b/tests/data/05 - fraction times/fail/2 ints is too short.json @@ -1,11 +1,5 @@ { "version": "1.0.0", - "metadata": { - "title": "", - "artist": "", - "BPM": 1, - "offset": 0 - }, "data": { "BSC": { "level": 0, diff --git a/tests/data/05 - fraction times/fail/4 ints is too big.json b/tests/data/05 - fraction times/fail/4 ints is too big.json index 2cf1ede..ab030a8 100644 --- a/tests/data/05 - fraction times/fail/4 ints is too big.json +++ b/tests/data/05 - fraction times/fail/4 ints is too big.json @@ -1,11 +1,5 @@ { "version": "1.0.0", - "metadata": { - "title": "", - "artist": "", - "BPM": 1, - "offset": 0 - }, "data": { "BSC": { "level": 0, diff --git a/tests/data/05 - fraction times/fail/long note duration cannot be zero.json b/tests/data/05 - fraction times/fail/long note duration cannot be zero.json index d9dc815..2d45d6c 100644 --- a/tests/data/05 - fraction times/fail/long note duration cannot be zero.json +++ b/tests/data/05 - fraction times/fail/long note duration cannot be zero.json @@ -1,11 +1,5 @@ { "version": "1.0.0", - "metadata": { - "title": "", - "artist": "", - "BPM": 1, - "offset": 0 - }, "data": { "BSC": { "level": 0, diff --git a/tests/data/05 - fraction times/fail/only ints work.json b/tests/data/05 - fraction times/fail/only ints work.json index 6104d8f..f81335f 100644 --- a/tests/data/05 - fraction times/fail/only ints work.json +++ b/tests/data/05 - fraction times/fail/only ints work.json @@ -1,11 +1,5 @@ { "version": "1.0.0", - "metadata": { - "title": "", - "artist": "", - "BPM": 1, - "offset": 0 - }, "data": { "BSC": { "level": 0, diff --git a/tests/data/05 - fraction times/pass/fraction are allowed for duration.json b/tests/data/05 - fraction times/pass/fraction are allowed for duration.json index f85eebf..aef0152 100644 --- a/tests/data/05 - fraction times/pass/fraction are allowed for duration.json +++ b/tests/data/05 - fraction times/pass/fraction are allowed for duration.json @@ -1,11 +1,5 @@ { "version": "1.0.0", - "metadata": { - "title": "", - "artist": "", - "BPM": 1, - "offset": 0 - }, "data": { "BSC": { "level": 0, diff --git a/tests/data/05 - fraction times/pass/fractions are allowed for time.json b/tests/data/05 - fraction times/pass/fractions are allowed for time.json index 841223d..effa2b4 100644 --- a/tests/data/05 - fraction times/pass/fractions are allowed for time.json +++ b/tests/data/05 - fraction times/pass/fractions are allowed for time.json @@ -1,11 +1,5 @@ { "version": "1.0.0", - "metadata": { - "title": "", - "artist": "", - "BPM": 1, - "offset": 0 - }, "data": { "BSC": { "level": 0, diff --git a/tests/data/05 - fraction times/pass/ticks still work for duration.json b/tests/data/05 - fraction times/pass/ticks still work for duration.json index ff2495d..c5194ba 100644 --- a/tests/data/05 - fraction times/pass/ticks still work for duration.json +++ b/tests/data/05 - fraction times/pass/ticks still work for duration.json @@ -1,11 +1,5 @@ { "version": "1.0.0", - "metadata": { - "title": "", - "artist": "", - "BPM": 1, - "offset": 0 - }, "data": { "BSC": { "level": 0, diff --git a/tests/data/05 - fraction times/pass/ticks still work for time.json b/tests/data/05 - fraction times/pass/ticks still work for time.json index 3660857..32b5ab4 100644 --- a/tests/data/05 - fraction times/pass/ticks still work for time.json +++ b/tests/data/05 - fraction times/pass/ticks still work for time.json @@ -1,11 +1,5 @@ { "version": "1.0.0", - "metadata": { - "title": "", - "artist": "", - "BPM": 1, - "offset": 0 - }, "data": { "BSC": { "level": 0, diff --git a/tests/data/06 - decimals as string/fail/negative BPM number.json b/tests/data/06 - decimals as string/fail/negative BPM number.json index d144056..bb64bab 100644 --- a/tests/data/06 - decimals as string/fail/negative BPM number.json +++ b/tests/data/06 - decimals as string/fail/negative BPM number.json @@ -1,10 +1,12 @@ { "version": "1.0.0", - "metadata": { - "title": "", - "artist": "", - "BPM": -1, - "offset": 0 + "timing": { + "bpms": [ + { + "beat": 0, + "bpm": -1 + } + ] }, "data": {} } \ No newline at end of file diff --git a/tests/data/06 - decimals as string/fail/negative BPM string.json b/tests/data/06 - decimals as string/fail/negative BPM string.json new file mode 100644 index 0000000..732794a --- /dev/null +++ b/tests/data/06 - decimals as string/fail/negative BPM string.json @@ -0,0 +1,12 @@ +{ + "version": "1.0.0", + "timing": { + "bpms": [ + { + "beat": 0, + "bpm": "-1" + } + ] + }, + "data": {} +} \ No newline at end of file diff --git a/tests/data/06 - decimals as string/fail/preview object with decimal zero duration.json b/tests/data/06 - decimals as string/fail/preview object with decimal zero duration.json index ea89e21..2507ff6 100644 --- a/tests/data/06 - decimals as string/fail/preview object with decimal zero duration.json +++ b/tests/data/06 - decimals as string/fail/preview object with decimal zero duration.json @@ -1,10 +1,6 @@ { "version": "1.0.0", "metadata": { - "title": "", - "artist": "", - "BPM": 1, - "offset": 0, "preview": { "start": "0", "duration": "0.000" diff --git a/tests/data/06 - decimals as string/fail/preview object with negative duration copy.json b/tests/data/06 - decimals as string/fail/preview object with negative duration copy.json index c614ddd..1f9f2c6 100644 --- a/tests/data/06 - decimals as string/fail/preview object with negative duration copy.json +++ b/tests/data/06 - decimals as string/fail/preview object with negative duration copy.json @@ -1,10 +1,6 @@ { "version": "1.0.0", "metadata": { - "title": "", - "artist": "", - "BPM": 1, - "offset": 0, "preview": { "start": "0", "duration": "-10.000" diff --git a/tests/data/06 - decimals as string/fail/preview object with zero duration copy.json b/tests/data/06 - decimals as string/fail/preview object with zero duration.json similarity index 64% rename from tests/data/06 - decimals as string/fail/preview object with zero duration copy.json rename to tests/data/06 - decimals as string/fail/preview object with zero duration.json index a602579..72a7498 100644 --- a/tests/data/06 - decimals as string/fail/preview object with zero duration copy.json +++ b/tests/data/06 - decimals as string/fail/preview object with zero duration.json @@ -1,10 +1,6 @@ { "version": "1.0.0", "metadata": { - "title": "", - "artist": "", - "BPM": 1, - "offset": 0, "preview": { "start": "0", "duration": "0" diff --git a/tests/data/06 - decimals as string/fail/zero BPM decimal string.json b/tests/data/06 - decimals as string/fail/zero BPM decimal string.json index e5f351b..ad94a6f 100644 --- a/tests/data/06 - decimals as string/fail/zero BPM decimal string.json +++ b/tests/data/06 - decimals as string/fail/zero BPM decimal string.json @@ -1,10 +1,12 @@ { "version": "1.0.0", - "metadata": { - "title": "", - "artist": "", - "BPM": "0.000", - "offset": 0 + "timing": { + "bpms": [ + { + "beat": "0.000", + "bpm": -1 + } + ] }, "data": {} } \ No newline at end of file diff --git a/tests/data/06 - decimals as string/fail/zero BPM number.json b/tests/data/06 - decimals as string/fail/zero BPM number.json index 72a8914..4518abf 100644 --- a/tests/data/06 - decimals as string/fail/zero BPM number.json +++ b/tests/data/06 - decimals as string/fail/zero BPM number.json @@ -1,10 +1,12 @@ { "version": "1.0.0", - "metadata": { - "title": "", - "artist": "", - "BPM": 0, - "offset": 0 + "timing": { + "bpms": [ + { + "beat": 0, + "bpm": 0 + } + ] }, "data": {} } \ No newline at end of file diff --git a/tests/data/06 - decimals as string/fail/zero BPM string.json b/tests/data/06 - decimals as string/fail/zero BPM string.json index ae9f892..2936521 100644 --- a/tests/data/06 - decimals as string/fail/zero BPM string.json +++ b/tests/data/06 - decimals as string/fail/zero BPM string.json @@ -1,10 +1,12 @@ { "version": "1.0.0", - "metadata": { - "title": "", - "artist": "", - "BPM": "0", - "offset": 0 + "timing": { + "bpms": [ + { + "beat": 0, + "bpm": "0" + } + ] }, "data": {} } \ No newline at end of file diff --git a/tests/data/06 - decimals as string/pass/decimal string BPM 1.json b/tests/data/06 - decimals as string/pass/decimal string BPM 1.json index aa7ca43..370d683 100644 --- a/tests/data/06 - decimals as string/pass/decimal string BPM 1.json +++ b/tests/data/06 - decimals as string/pass/decimal string BPM 1.json @@ -1,10 +1,12 @@ { "version": "1.0.0", - "metadata": { - "title": "", - "artist": "", - "BPM": "0.1", - "offset": 0 + "timing": { + "bpms": [ + { + "beat": 0, + "bpm": "0.1" + } + ] }, "data": {} } \ No newline at end of file diff --git a/tests/data/06 - decimals as string/pass/decimal string BPM 2.json b/tests/data/06 - decimals as string/pass/decimal string BPM 2.json index 4e3ae2d..4c818b4 100644 --- a/tests/data/06 - decimals as string/pass/decimal string BPM 2.json +++ b/tests/data/06 - decimals as string/pass/decimal string BPM 2.json @@ -1,10 +1,12 @@ { "version": "1.0.0", - "metadata": { - "title": "", - "artist": "", - "BPM": "123.456", - "offset": 0 + "timing": { + "bpms": [ + { + "beat": 0, + "bpm": "123.456" + } + ] }, "data": {} } \ No newline at end of file diff --git a/tests/data/06 - decimals as string/pass/decimal string offset 1.json b/tests/data/06 - decimals as string/pass/decimal string offset 1.json index d95f800..53e7a9c 100644 --- a/tests/data/06 - decimals as string/pass/decimal string offset 1.json +++ b/tests/data/06 - decimals as string/pass/decimal string offset 1.json @@ -1,10 +1,13 @@ { "version": "1.0.0", - "metadata": { - "title": "", - "artist": "", - "BPM": 123.456, - "offset": "-0.24" + "timing": { + "offset": "-0.24", + "bpms": [ + { + "beat": 0, + "bpm": 123.456 + } + ] }, "data": {} } \ No newline at end of file diff --git a/tests/data/06 - decimals as string/pass/decimal string offset 2.json b/tests/data/06 - decimals as string/pass/decimal string offset 2.json index e7c0798..7f81ec2 100644 --- a/tests/data/06 - decimals as string/pass/decimal string offset 2.json +++ b/tests/data/06 - decimals as string/pass/decimal string offset 2.json @@ -1,10 +1,13 @@ { "version": "1.0.0", - "metadata": { - "title": "", - "artist": "", - "BPM": 123.456, - "offset": "12.34" + "timing": { + "offset": "12.34", + "bpms": [ + { + "beat": 0, + "bpm": 123.456 + } + ] }, "data": {} } \ No newline at end of file diff --git a/tests/data/06 - decimals as string/pass/integer BPM.json b/tests/data/06 - decimals as string/pass/integer BPM.json index f31d324..a782635 100644 --- a/tests/data/06 - decimals as string/pass/integer BPM.json +++ b/tests/data/06 - decimals as string/pass/integer BPM.json @@ -1,10 +1,12 @@ { "version": "1.0.0", - "metadata": { - "title": "", - "artist": "", - "BPM": 125, - "offset": 0 + "timing": { + "bpms": [ + { + "beat": 0, + "bpm": 125 + } + ] }, "data": {} } \ No newline at end of file diff --git a/tests/data/06 - decimals as string/pass/integer string BPM.json b/tests/data/06 - decimals as string/pass/integer string BPM.json index e0f8fb6..b0838e8 100644 --- a/tests/data/06 - decimals as string/pass/integer string BPM.json +++ b/tests/data/06 - decimals as string/pass/integer string BPM.json @@ -1,10 +1,12 @@ { "version": "1.0.0", - "metadata": { - "title": "", - "artist": "", - "BPM": "123", - "offset": 0 + "timing": { + "bpms": [ + { + "beat": 0, + "bpm": "123" + } + ] }, "data": {} } \ No newline at end of file diff --git a/tests/data/06 - decimals as string/pass/number BPM.json b/tests/data/06 - decimals as string/pass/number BPM.json index 2293199..7dfdcfe 100644 --- a/tests/data/06 - decimals as string/pass/number BPM.json +++ b/tests/data/06 - decimals as string/pass/number BPM.json @@ -1,10 +1,12 @@ { "version": "1.0.0", - "metadata": { - "title": "", - "artist": "", - "BPM": 123.456, - "offset": 0 + "timing": { + "bpms": [ + { + "beat": 0, + "bpm": 123.456 + } + ] }, "data": {} } \ No newline at end of file diff --git a/tests/data/06 - decimals as string/pass/preview object.json b/tests/data/06 - decimals as string/pass/preview object.json index 560b1f2..2efb95e 100644 --- a/tests/data/06 - decimals as string/pass/preview object.json +++ b/tests/data/06 - decimals as string/pass/preview object.json @@ -1,10 +1,6 @@ { "version": "1.0.0", "metadata": { - "title": "", - "artist": "", - "BPM": 1, - "offset": 0, "preview": { "start": "8346.9346", "duration": "35.936" diff --git a/tests/data/06 - decimals as string/fail/negative BPM string copy.json b/tests/data/07 - bpm changes/fail/timing info in metadata.json similarity index 57% rename from tests/data/06 - decimals as string/fail/negative BPM string copy.json rename to tests/data/07 - bpm changes/fail/timing info in metadata.json index ca92578..7af5144 100644 --- a/tests/data/06 - decimals as string/fail/negative BPM string copy.json +++ b/tests/data/07 - bpm changes/fail/timing info in metadata.json @@ -1,9 +1,7 @@ { "version": "1.0.0", "metadata": { - "title": "", - "artist": "", - "BPM": "-1", + "BPM": 1, "offset": 0 }, "data": {} diff --git a/tests/data/07 - bpm changes/pass/basic.json b/tests/data/07 - bpm changes/pass/basic.json new file mode 100644 index 0000000..055e622 --- /dev/null +++ b/tests/data/07 - bpm changes/pass/basic.json @@ -0,0 +1,9 @@ +{ + "version": "1.0.0", + "timing": { + "offset": 0, + "resolution": 1, + "bpms": [{"beat": 0, "bpm": 1}] + }, + "data": {} +} \ No newline at end of file diff --git a/tests/data/07 - bpm changes/pass/per-chart partial.json b/tests/data/07 - bpm changes/pass/per-chart partial.json new file mode 100644 index 0000000..0311d7c --- /dev/null +++ b/tests/data/07 - bpm changes/pass/per-chart partial.json @@ -0,0 +1,29 @@ +{ + "version": "1.0.0", + "timing": { + "offset": 0, + "resolution": 1, + "bpms": [{"beat": 0, "bpm": 1}] + }, + "data": { + "BSC": { + "timing": { + "bpms": [{"beat": 0, "bpm": 1}] + }, + "notes": [] + }, + "ADV": { + "timing": { + "bpms": [{"beat": 0, "bpm": 2}] + }, + "notes": [] + }, + "EXT": { + "timing": { + "resolution": 2, + "bpms": [{"beat": 0, "bpm": 3}] + }, + "notes": [] + } + } +} \ No newline at end of file diff --git a/tests/data/07 - bpm changes/pass/per-chart.json b/tests/data/07 - bpm changes/pass/per-chart.json new file mode 100644 index 0000000..82caaab --- /dev/null +++ b/tests/data/07 - bpm changes/pass/per-chart.json @@ -0,0 +1,34 @@ +{ + "version": "1.0.0", + "timing": { + "offset": 0, + "resolution": 1, + "bpms": [{"beat": 0, "bpm": 1}] + }, + "data": { + "BSC": { + "timing": { + "offset": 0, + "resolution": 1, + "bpms": [{"beat": 0, "bpm": 1}] + }, + "notes": [] + }, + "ADV": { + "timing": { + "offset": 0, + "resolution": 1, + "bpms": [{"beat": 0, "bpm": 1}] + }, + "notes": [] + }, + "EXT": { + "timing": { + "offset": 0, + "resolution": 1, + "bpms": [{"beat": 0, "bpm": 1}] + }, + "notes": [] + } + } +} \ No newline at end of file