From 9b6f05b420d5b4b982cd9ca2d67398b3673a2965 Mon Sep 17 00:00:00 2001 From: Viv Date: Sat, 26 Oct 2024 12:34:03 -0400 Subject: [PATCH] Fix parsing of `BALLOON:` so that values are correctly read for all 3 branches (#80) I was making a bad assumption: 1. Songs with branches have the same number of balloons. 2. Each balloon has the same number of hits across branches. Because I was making these assumptions, I thought I could just repeat the `BALLOON:` field for each branch. **But this is wrong!!** Branches can have different numbers of balloons, and they can have different number of hits in their balloons. So, we need to **NOT** necessarily repeat `BALLOON:`, and instead use the written value of `BALLOON:` directly. This way we can get the different values for each branch. This fixes the parsing of Emma's Ura (and probably other songs). Also, this revealed a bug in my parsing of Roppon no Bara to Sai no Uta, so I needed to make sure we account for "duplicated" balloons too, and repeat the values _only when necessary_. --- pyproject.toml | 4 +- src/tja2fumen/converters.py | 4 +- src/tja2fumen/parsers.py | 138 +++- testing/data/emma.tja | 1526 +++++++++++++++++++++++++++++++++++ testing/data/emma.zip | Bin 0 -> 10335 bytes testing/data/hol6po.tja | 4 +- testing/data/ia6cho.tja | 4 +- testing/data/linda.tja | 2 +- testing/test_conversion.py | 6 +- 9 files changed, 1675 insertions(+), 13 deletions(-) create mode 100644 testing/data/emma.tja create mode 100644 testing/data/emma.zip diff --git a/pyproject.toml b/pyproject.toml index 1dd6275..5e07800 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -42,5 +42,7 @@ disable = """ too-many-branches, too-many-arguments, too-many-locals, - too-many-statements + too-many-statements, + too-many-positional-arguments, + fixme """ diff --git a/src/tja2fumen/converters.py b/src/tja2fumen/converters.py index 247c02f..5d04300 100644 --- a/src/tja2fumen/converters.py +++ b/src/tja2fumen/converters.py @@ -195,6 +195,9 @@ def convert_tja_to_fumen(tja: TJACourse) -> FumenCourse: len(b) for b in tja_branches_processed.values() )) + # Use a single copy of the course balloons (since we use .pop()) + course_balloons = tja.balloon.copy() + # Iterate through the different branches in the TJA total_notes = {'normal': 0, 'professional': 0, 'master': 0} for current_branch, branch_tja in tja_branches_processed.items(): @@ -209,7 +212,6 @@ def convert_tja_to_fumen(tja: TJACourse) -> FumenCourse: current_levelhold = False branch_types: List[str] = [] branch_conditions: List[Tuple[float, float]] = [] - course_balloons = tja.balloon.copy() # Iterate over pairs of TJA and Fumen measures for idx_m, (measure_tja, measure_fumen) in \ diff --git a/src/tja2fumen/parsers.py b/src/tja2fumen/parsers.py index e04ff1e..a2b9e5f 100644 --- a/src/tja2fumen/parsers.py +++ b/src/tja2fumen/parsers.py @@ -33,7 +33,9 @@ def parse_tja(fname_tja: str) -> TJASong: tja_lines = [line for line in tja_text.splitlines() if line.strip() != ''] tja = split_tja_lines_into_courses(tja_lines) for course in tja.courses.values(): - course.branches = parse_tja_course_data(course.data) + branches, balloon_data = parse_tja_course_data(course.data) + course.branches = branches + course.balloon = fix_balloon_field(course.balloon, balloon_data) return tja @@ -181,7 +183,8 @@ def split_tja_lines_into_courses(lines: List[str]) -> TJASong: return parsed_tja -def parse_tja_course_data(data: List[str]) -> Dict[str, List[TJAMeasure]]: +def parse_tja_course_data(data: List[str]) \ + -> Tuple[Dict[str, List[TJAMeasure]], Dict[str, List[str]]]: """ Parse course data (notes, commands) into a nested song structure. @@ -208,6 +211,8 @@ def parse_tja_course_data(data: List[str]) -> Dict[str, List[TJAMeasure]]: has_branches = bool([d for d in data if d.startswith('#BRANCH')]) current_branch = 'all' if has_branches else 'normal' branch_condition = '' + # keep track of balloons in order to fix the 'BALLOON' field value + balloons: Dict[str, List[str]] = {k: [] for k in BRANCH_NAMES} # Process course lines idx_m = 0 @@ -225,6 +230,7 @@ def parse_tja_course_data(data: List[str]) -> Dict[str, List[TJAMeasure]]: # 1. Parse measure notes if note_data: + notes_to_write: str = "" # If measure has ended, then add notes to the current measure, # then start a new measure by incrementing idx_m if note_data.endswith(','): @@ -232,14 +238,26 @@ def parse_tja_course_data(data: List[str]) -> Dict[str, List[TJAMeasure]]: else [current_branch]): check_branch_length(parsed_branches, branch_name, expected_len=idx_m+1) - parsed_branches[branch_name][idx_m].notes += note_data[:-1] + notes_to_write = note_data[:-1] + parsed_branches[branch_name][idx_m].notes += notes_to_write parsed_branches[branch_name].append(TJAMeasure()) idx_m += 1 # Otherwise, keep adding notes to the current measure ('idx_m') else: for branch_name in (BRANCH_NAMES if current_branch == 'all' else [current_branch]): - parsed_branches[branch_name][idx_m].notes += note_data + notes_to_write = note_data + parsed_branches[branch_name][idx_m].notes += notes_to_write + + # Keep track of balloon notes that were added + balloon_notes = [n for n in notes_to_write if n in ['7', '9']] + # mark balloon notes as duplicates if necessary. this will be used + # to fix the BALLOON: field to account for duplicated balloons. + balloon_notes = (['DUPE'] * len(balloon_notes) + if current_branch == 'all' else balloon_notes) + for branch_name in (BRANCH_NAMES if current_branch == 'all' + else [current_branch]): + balloons[branch_name].extend(balloon_notes) # 2. Parse measure commands that produce an "event" elif command in ['GOGOSTART', 'GOGOEND', 'BARLINEON', 'BARLINEOFF', @@ -381,7 +399,7 @@ def parse_tja_course_data(data: List[str]) -> Dict[str, List[TJAMeasure]]: "have in each branch.)" ) - return parsed_branches + return parsed_branches, balloons def check_branch_length(parsed_branches: Dict[str, List[TJAMeasure]], @@ -425,6 +443,116 @@ def check_branch_length(parsed_branches: Dict[str, List[TJAMeasure]], ) +def fix_balloon_field(balloon_field: List[int], + balloon_data: Dict[str, List[str]]) -> List[int]: + """ + Fix the 'BALLOON:' metadata field for certain branching songs. + + In Taiko, branching songs may have a different amount of balloons and/or + different balloon values on their normal/professional/master branches. + However, the TJA field "BALLOON:" is limited it how it can represent + balloon hits; it uses a single comma-delimited list of integers. E.g.: + + BALLOON: 13,4,52,4,52,4,52 + + It is unclear which of these values belong to which branches. + + This is especially unclear for songs that start out on the "normal" branch, + or songs that have branching conditions that force a specific branch. These + songs are often written as TJA with only a single branch written out, yet + for official fumens, this branch information actually has to be present on + *all three branches*. So, the 'BALLOON:' field will be missing values. + + In the example above, the "13" balloon actually occurs on the normal branch + before the first branch condition. Meaning that the balloons are split up + like this: + + BALLOON: (13,4,52)(4,52)(4,52) + + However, due to fumen requirements, we want the balloons to actually be + like this: + + BALLOON: (13,4,52)(13,4,52)(13,4,52) + + So, the purpose of this function is to "fix" the balloon information so + that it can be used for fumen conversion without error. + + NOTE: This fix probably only applies to a VERY small minority of songs. + One example (shown above) is the Ura chart for Roppon no Bara to Sai + no Uta. You can see in the wikiwiki that the opening 'Normal' + section has a balloon note prior to the branch condition. We need + to duplicate this value across all branches. + """ + # Return early if course doesn't have branches + if not all(balloon_data.values()): + return balloon_field + + # Special case: Courses where the # of balloons is the same for all + # branches, and the TJA author only listed 1 set of balloons. + # Fix: Duplicate the balloons 3 times. + if all(len(balloons) == len(balloon_field) + for balloons in balloon_data.values()): + return balloon_field * 3 + + # Return early if there were no duplicated balloons in the course + if not any('DUPE' in balloons for balloons in balloon_data.values()): + return balloon_field + + # If balloons were duplicated, then we expect the BALLOON: field to have + # fewer hits values than the number of balloons. If this *isn't* the case, + # then perhaps the TJA author duplicated the balloon hits themselves, and + # so we don't want to make any unnecessary edits. Thus, return early. + # FIXME: This assumption fails for double-kusudama notes, where we may + # see a "fake" balloon, thus inflating the total number of balloons. + # But, this is such a rare case (double-kusudama + duplicated + # balloons + 'BALLOON:' field with implicitly duplicated hits) that + # I'm alright handling it incorrectly. If a user files a bug + # report, then I'll fix it then. + total_num_balloons = sum(len(b) for b in balloon_data.values()) + if not len(balloon_field) < total_num_balloons: + return balloon_field + + # OK! So, by this point in the function, we're making these assumptions: + # + # 1. The TJA chart has branches. + # 2. The TJA author wrote part of the song for only a single branch + # (e.g. the Normal branch, before the first branch condition), and thus + # we needed to duplicate some of the note data to create a valid fumen. + # 3. The 'single branch' part of the TJA contained balloon/kusudama notes, + # and thus we needed to duplicate those notes. + # 4. The TJA author wrote the 'BALLOON:' field such that there was only 1 + # balloon value for the duplicated balloon note. + # + # The goal now is to identify which balloons were duplicated, and make sure + # the "hits" value is present across all branches. + duplicated_balloons = [] + balloon_field_fixed = [] + + # Handle the normal branch first + # If balloons are duplicated, then it's probably going to be from 'normal' + # FIXME: If the balloons are duplicated from the master/professional branch + # (e.g. due to a forced branch change from a branch condition), then + # this logic will read the balloon values incorrectly. + # But, this is such a rare case that I'm alright handling it + # incorrectly. If a user files a bug report, then I'll fix it then. + for balloon_note in balloon_data['normal']: + balloon_hits = balloon_field.pop(0) + if balloon_note == 'DUPE': + duplicated_balloons.append(balloon_hits) + balloon_field_fixed.append(balloon_hits) + + # Repeat any duplicated balloon notes for the professional/master branches + for branch_name in ['professional', 'master']: + dupes_to_copy = duplicated_balloons.copy() + for balloon_note in balloon_data[branch_name]: + if balloon_note == 'DUPE': + balloon_field_fixed.append(dupes_to_copy.pop(0)) + else: + balloon_field_fixed.append(balloon_field.pop(0)) + + return balloon_field_fixed + + ############################################################################### # Fumen-parsing functions # ############################################################################### diff --git a/testing/data/emma.tja b/testing/data/emma.tja new file mode 100644 index 0000000..4810e5f --- /dev/null +++ b/testing/data/emma.tja @@ -0,0 +1,1526 @@ +BPM:333 +OFFSET:-1.612000023468295 + +COURSE:Edit +LEVEL:10 +BALLOON:50,30,50,30,50,4,30 + + +#START +#BARLINEOFF +#MEASURE 5/4 +500000000000000000000000000000000000000000000008 +00000000000, +#BARLINEON +#MEASURE 4/4 +300000000000000000000000200000000000000000000000, +#BRANCHSTART r,10,16 +#N +#BARLINEOFF +200000000000000000000000200000000000000000000000, +#BARLINEON +#MEASURE 8/4 +200000000000000000000000000000000000200000000000 +000000000000000000000000200000000000200000200000, +200000002000000020000000200000002000000020000000 +200000002000000020000000200000002000000020000000, +100000000000200000200000200000000000200000200000 +100000200000100000200000100000200000100000000000, +#GOGOSTART +400000000000100000400000000000100000400000000000 +100000400000000000100000400000000000400000000000, +#GOGOEND +000000000000000000000000300000000000000000000000 +000000000000000000000000200000200000200000200000, +100000000000000000000000000000000000100000100000 +200000000000000000200000000000000000200000000000, +#GOGOSTART +300000000000000000300000000000000000300000000000 +000000300000000000000000300000000000400000000000, +100000100000100000100000100000100000100000100000 +100000100000100000100000100000100000100000100000, +#GOGOEND +300000000000000000000000200000000000000000000000 +200000000000000000000000200000000000200000000000, +000000000000200000000000000000000000200000000000 +000000000000200000000000000000000000000000000000, +#GOGOSTART +100000100000100000100000100000100000100000100000 +200000100000100000100000100000100000200000100000, +100000100000100000100000100000100000100000100000 +200000100000100000200000100000100000200000100000, +#GOGOEND +300000000000000000000000200000000000000000000000 +200000000000000000000000200000000000200000000000, +000000000000200000000000000000000000200000000000 +000000000000200000000000000000000000000000000000, +#GOGOSTART +100000000000000000000000100000000000100000000000 +200000000000100000000000100000000000100000000000, +100000100000100000100000100000100000100000100000 +200000100000200000100000200000100000200000200000, +#GOGOEND +100000100000200000000000100000100000200000100000 +000000100000200000000000100000100000200000100000, +100000100000200000000000100000100000200000100000 +000000100000200000000000100000200000200000200000, +100000100000200000000000100000100000200000100000 +000000100000200000000000100000100000200000100000, +100000100000200000000000100000100000000000100000 +200000200000200000200000100000100000100000100000, +100000000000400000200000000000100000200000000000 +100000200000000000100000200000000000100000200000, +000000100000200000000000100000200000000000100000 +200000000000100000100000200000200000200000200000, +100000000000100000100000200000000000200000200000 +100000000000100000100000200000000000200000200000, +100000000000100000100000200000000000200000200000 +100000100000100000100000200000200000200000200000, +#MEASURE 6/4 +100000000000000000100000200000000000100000000000 +000000100000200000000000, +#MEASURE 8/4 +100000000000000000100000200000000000100000000000 +100000100000200000000000100000000000200000200000, +#MEASURE 6/4 +100000000000000000100000200000000000100000000000 +000000100000200000000000, +#MEASURE 8/4 +100000000000000000100000000000200000100000200000 +100000000000200000200000100000100000200000200000, +#MEASURE 6/4 +000000000000000000100000200000000000100000000000 +000000001000000020000000, +#MEASURE 8/4 +200000000000000020000000000000002000000000000000 +200000000000000000200000100000100000200000000000, +#MEASURE 6/4 +100000100000200000100000200000000000200000000000 +100000100000200000100000, +#MEASURE 8/4 +200000000000000000000000200000000000000000000000 +100000000000000000100000200000000000100000000000, +300000000000000000100000200000000000100000100000 +100000100000100000000000200000000000100000100000, +100000100000100000100000200000000000100000100000 +200000000000100000000000200000100000100000100000, +100000000000100000100000200000000000100000100000 +100000100000000000100000200000000000100000000000, +100000100000100000100000200000000000100000100000 +200000100000100000100000200000000000100000100000, +300000000000100000000000200000000000100000100000 +100000000000100000000000200000000000100000000000, +100000000000100000000000200000000000100000000000 +200000000000100000100000200000000000100000000000, +100000100000100000100000100000100000100000100000 +200000100000100000100000100000100000100000100000, +500000000000000000000000000000000000000008000000 +600000000000000000000000000000000000000008000000, +#MEASURE 4/4 +#BPMCHANGE 166.5 +#SCROLL 0.75 +100000000000000000000000200000000000200000000000, +200000000000200000200000100000000200000200200000, +100000100100200000200000100000000000200000200200, +100000001000100010000000200000001000100010001000 +2000200020002000, +100000100000200000000000200000100200100200100000, +100000000200200000200200100000000000100100200000, +100020002000200020002000100000000000200000100200, +100000002000200020002000200000001000000010001000 +2000200020002000, +#MEASURE 8/4 +#BPMCHANGE 333 +#SCROLL 0.5 +100000000000000000000000200000000000100000000000 +200000000000000000000000100000000000100000000000, +000000000000100000000000200000000000000000100000 +200000000000000000000000000000000000200000000000, +000000000000000000000000200000000000000000100000 +200000000000100000000000000000000000000000000000, +100000000000000000100000200000000000100000100000 +200000000000000000000000200000000000100000100000, +#SCROLL 0.53 +100000000000000000000000200000000000100000000000 +200000000000000000000000100000000000100000100000, +#SCROLL 0.58 +100000000000000000000000200000000000100000000000 +200000000000000000000000100000000000200000000000, +#SCROLL 0.63 +100000000000100000000000200000000000100000000000 +200000000000100000000000100000100000200000000000, +#SCROLL 0.68 +100000100000100000200000100000000000200000000000 +100000100000100000200000100000000000200000000000, +#SCROLL 0.75 +700000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +#SCROLL 1 +800000000000000000000000200000000000000000000000 +200000000000100010001000400000000000000000000000, +#GOGOSTART +300000000000000000200000100000000000200000000000 +200000200000100000100000200000100000200000000000, +100000100000200000200000100000100000200000200000 +100000000000200000100000200000100000200000000000, +100000000000000000200000100000000000200000000000 +200000000000000000200000100000000000200000000000, +200000000000100010001000200000000000100000000000 +200000100000100000100000200000000000000000000000, +500000000000000000000000000000000000000000000008 +000000000000000000000000200000100000200000000000, +200000100000100000200000100000100000200000100000 +200000000000200000000000200000200000100000100000, +200000000000100000200000100000100000200000000000 +100000100000200000200000200000100000100000100000, +200000000000100000100000200000200000100000100000 +200000200000200000200000100000100000100000100000, +#GOGOEND +200000000000000000200000000000000000200000000000 +300000000000200000300000200000000000300000000000, +200000200000200000200000 +#GOGOSTART +100000100000200000200000 +100000000000200000100000200000100000200000000000, +100000000000000000400000000000000000100000000000 +200000000000100000400000000000000000100000000000, +200000000000100010001000200000000000100000000000 +200000100000100000100000200000000000100000000000, +500000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000008, +000000000000000000000000200000000000100000100000 +200000000000100000100000200000000000100000000000, +100000100000100000200000100000000000200000200000 +100000100000100000200000100000000000200000200000, +100000100000200000200000100000000200000000200000 +100000100000200000200000100000100000100000100000, +200000000000000000000000200000000000000000000000 +400000000000000000100000400000000000100000000000, +200000200000100000100000200000200000100000100000 +200000100000200000100000200000100000200000100000, +#GOGOEND +700000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000008 +000000000000000000000000200000000000200000200000, +200000002000000020000000200000002000000020000000 +200000002000000020000000200000002000000020000000, +100000000000200000200000200000000000200000200000 +100000200000100000200000100000200000100000000000, +#GOGOSTART +200000000000100000100000100000100000200000000000 +100000100000100000100000100000100000200000000000, +100000100000200000100000100000200000100000100000 +200000100000200000100000200000100000200000200000, +#GOGOEND +100000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +#MEASURE 4/4 +000000000000000000000000000000000000000000000000, +#E +#BARLINEOFF +200000000000000000000000200000000000000000000000, +#BARLINEON +#MEASURE 8/4 +200000000000000000000000000000000000200000000000 +000000000000000000000000200000200000200000200000, +200000002000000020000000200000002000000020000000 +200000002000000020000000200000002000000020000000, +100000200000200000200000200000200000200000200000 +100000200000100000200000100000200000100100100000, +#GOGOSTART +400000000000100000400000000000100000400000200000 +100000400000200000100000400000000000400000000000, +#GOGOEND +000000000000200000200000300000200000200000200000 +100000100000100000100000200000200000200000200000, +100000000000000000000000000000000000100000100000 +200000000000000000200000000000000000200000000000, +#GOGOSTART +300000000000000000300000000000000000300000000000 +000000300000000000000000300000000000400000000000, +100000100000100000200000100000100000200000100000 +100000200000100000100000200000100000100100100100, +#GOGOEND +100000000000000000000000200000000000000000000000 +200000000000000000000000200000000000200000000000, +000000000000200000000000000000000000200000000000 +000000000000200000000000000000000000000000000000, +#GOGOSTART +100000100000100000100000100000100000100000100000 +200000100000100000100000100000100000100100100000, +100000100000100000100000100000100000100000100000 +200000100000100000200000100000100000100100100000, +#GOGOEND +300000000000000000000000200000000000000000000000 +200000000000000000000000200000000000200000000000, +000000000000200000000000000000000000200000000000 +000000000000200000000000000000000000000000000000, +#GOGOSTART +100000000000000000000000100000000000100000000000 +200000000000100000000000100000000000100000000000, +100000100000100000100000100000100000100000100000 +200000100000200000100000100100100000100100100000, +#GOGOEND +100000100000200000200000100000100000200000100000 +100000100000200000200000100000100000200000100000, +100000100000200000200000100000100000200000100000 +100000100000200000200000100000200000200000100000, +100000100000200000200000100000100000200000100000 +100000100000200000200000100000100000200000100000, +100000100000200000200000100000100000200000100000 +200000100000200000100000200000100000200000200000, +100000000000400000200000100000100000200000100000 +100000200000100000100000200000100000100000200000, +100000100000200000100000100000200000100000100000 +200000100000200000200000100000100000200000200000, +100000100000100000100000200000200000200000200000 +100000100000100000100000200000200000200000200000, +100000100000200000200000100000100000200000200000 +100100100000100000100000100100100000100000100000, +#MEASURE 6/4 +100000000000000000100000200000000000100000000000 +200000100000200000000000, +#MEASURE 8/4 +100000000000000000100000200000000000100000000000 +100000100000200000000000100000000000100100100000, +#MEASURE 6/4 +100000000000000000100000200000000000100000000000 +200000100000200000000000, +#MEASURE 8/4 +100000000000000000100000000000200000100000200000 +100000000000200000100000200000200000100000200000, +#MEASURE 6/4 +000000000000000000100100200000000000100000000000 +000000001000000020000000, +#MEASURE 8/4 +200000000000000020000000000000002000000000000000 +200000000000000000200000100000100000200000200000, +#MEASURE 6/4 +100000100000200000100000200000000000200000100000 +100000100000200000100000, +#MEASURE 8/4 +200000000000000000000000200000000000000000000000 +100000000000000000100000200000000000100000000000, +300000000000000000100000200000000000100000100000 +100000100000100000000000200000000000100000100000, +100000100000100000100000200000000000100000100000 +200000100000100000000000200000100000100000100000, +100000000000100000100000200000000000100000100000 +100000100000100000100000200000000000100000100000, +100000100000100000100000200000100000100000100000 +200000100000100000100000200000100000100000100000, +300000000000100000100000200000000000100000100000 +100000000000100000100000200000000000100000100000, +100000000000100000000000200000100000100000000000 +200000100000100000100000200000000000100000000000, +100000100000100000100000100000100000100000100000 +200000100000100000100000100000100000100000100000, +500000000000000000000000000000000000000008000000 +600000000000000000000000000000000000000008000000, +#MEASURE 4/4 +#BPMCHANGE 166.5 +#SCROLL 0.75 +100000000000000000000000202000000000202000000000, +202000000000202000202000100000000200000200200000, +100000100100200000200000100000200000101010101010, +100000002000200010002000200000001000200020002000 +1010100020002000, +100000100000202000000000202000100200100200100000, +100000000200100200200200100000100000200200100200, +100020002000200020202000100000000000202000100200, +100000002000200020001000200020001000000010001000 +1010100010001000, +#MEASURE 8/4 +#BPMCHANGE 333 +#SCROLL 0.5 +100000000000000000000000200000000000100000100000 +200000000000000000000000100000000000100000100000, +000000000000100000000000200000100000000000100000 +200000000000000000100000000000000000200000200000, +000000000000000000000000200000000000000000100000 +200000000000100000000000000000000000000000000000, +100000000000000000100000200000000000100000100000 +200000100000000000200000200000000000100100100000, +#SCROLL 0.53 +100000000000000000000000200000000000100000100000 +200000000000000000000000100000000000100000100000, +#SCROLL 0.58 +100000000000000000000000200000000000100000100000 +200000000000100000100000100000000000200000000000, +#SCROLL 0.63 +100000000000100000000000200000000000100000100000 +200000000000100000000000100000100000200000200000, +#SCROLL 0.68 +100100100000100000200000100000100000200000200000 +100100100000100000200000100000100000200000200000, +#SCROLL 0.75 +700000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +#SCROLL 1 +800000000000000000000200200000000000000000000000 +200000000000100100100000400000000000000000000000, +#GOGOSTART +300000000000000000200000100000000000200000100000 +200000200000100000100000200000100000200000000000, +100000100000100000200000100000100000200000200000 +100100100000200000100000200000100000200000200000, +100000000000000000200000100000000000200000000000 +200000100000100000200000100000000000200000000000, +200000000000100100100000200000000000100000100000 +200000100000100000100000200000100000100000100000, +500000000000000000000000000000000000000000000008 +000000000000100000100000200000100000200000000000, +200000100000100000200000100000100000200010001000 +200000100000200000100000200000200000200000100000, +200000000000100000200000100000100000200000000000 +100000100000200000200000200010001000100010001000, +200000000000100010001000200020002000100010001000 +200020002000200020002000100010001000100010001000, +#GOGOEND +200000000000000000200000000000000000200000000000 +300000000000200000300000200000000000300000000000, +200000200000200000200000 +#GOGOSTART +300000100000200000200000 +100100100000200000100000200000100000200000200000, +100000000000000000400000000000000000100000000000 +200000000000100000400000000000000000100000000000, +200000000000100100100000200000000000100000000000 +200000100000100000100000200000100000100000100000, +500000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000008, +000000000000000000000000200000000000100000100000 +200000000000100100100000200000000000100000000000, +100100100000100000200000100000100000200000200000 +100100100000100000200000100000100000200000200000, +100100100000200000200000100000000200000000200000 +100100100000200000200000100000100000100000100000, +200000000000000000000000200000000000000000000000 +400000000000000000100000400000000000100000000000, +200100100000100000100000200100100000100000100000 +200100100000200000100000200100100000200000100000, +#GOGOEND +700000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000008 +000000000000000000000000200000200000200000200000, +200000002000000020000000200000002000000020000000 +200000002000000020000000200000002000000020000000, +100000200000200000200000200000200000200000200000 +100000200000100000200000100000200000100000100000, +#GOGOSTART +200000100000100000100000100000100000200000100000 +100000100000100000100000100000100000200000100000, +100000100000200000100000100000200000100000100000 +200000100000200000100000200100100000200100100100, +#GOGOEND +100000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +#MEASURE 4/4 +000000000000000000000000000000000000000000000000, +#M +#BARLINEOFF +200000000000000000000000200000000000000000000000, +#BARLINEON +#MEASURE 8/4 +200000000000000000000000000000000200200000000000 +000000000000000000000000200000200000200000200000, +200000002000000020000000200000002000000020000000 +200000002000000020000000200000002000000020000000, +100000200000200000200000200000200000200000200000 +100000200000100000200000100000200000100100100100, +#GOGOSTART +200000000000100000200000000000100100200000200000 +100100200000200000100100200000000000400000000000, +#GOGOEND +000000000000200000200000300020002000200020002000 +100010001000100010001000200020002000200020002000, +100000000000000000000000000000000000100000100000 +200000000000000000200000000000000000200000000000, +#GOGOSTART +300000000000000000300000000000000000300000000000 +000000300000000000000000300000000000400000000000, +100000100000100000100100100000100000100100100000 +100000100100100000100000100100100100100100100100, +#GOGOEND +100000000000000000000000200000000000000000000000 +200000000000000000002000200000000000200000000000, +000000000000200000000000000000000000200000000000 +000000000000200000000000000000000000000000000000, +#GOGOSTART +100000100000100000100000100000100000100000100000 +200000100000100000100000100000100000100100100100, +100000100000100000100000100000100000100000100000 +200100100000100000100100100000100000100100100100, +#GOGOEND +100000000000000000000000200000000000000000000000 +200000000000000000002000200000000000200000000000, +000000000000200000000000000000000000200000000000 +000000000000200000000000000000000000000000000000, +#GOGOSTART +100000000000000000000000100000000000100000000000 +200000000000100000000000100000000000100000000000, +100000100000100000100000100000100000100000100000 +200100100000100100100000100100100100100100100100, +#GOGOEND +100000100000200000200000100000100000200000100000 +100000100000200000200000100000100000200000100100, +100000100000200000200000100000100000200000100000 +100000100000200000100000100000100100200000100000, +100000100000200000200000100000100000200000100000 +100000100000200000200000100000100000200000100100, +100000100000200000200000100000100000200000100000 +100000100000200000100000200000100000200100100100, +100000000000400000200000100000100000200000100000 +100000200000100100100000200000100000100000200100, +100000100000200000100000100000200000100000100000 +200100100000200000200000100000100100200000200000, +100100100000100000100000200100100000100000100000 +100100100000100000100000200100100000100000100000, +100100100000200000100000100100100000200000100000 +100100100100100100100100200100100100100100100100, +#MEASURE 6/4 +100000000000000000100000200000000000100000000000 +200000100000200000000000, +#MEASURE 8/4 +100000000000000000100000200000000000100000000000 +100100100100200000000000100000000000100100100100, +#MEASURE 6/4 +100000000000000000100000200000000000100000000000 +200000100000200000000000, +#MEASURE 8/4 +100000000000000000100000000000200000100000200000 +100000000000200000100000200000200000100000200000, +#MEASURE 6/4 +000000000000000000100100200000000000100000000000 +000000001000000020000000, +#MEASURE 8/4 +200000000000000020000000000000002000000000000000 +200000000000000000200100100100100000200000200000, +#MEASURE 6/4 +100000100000200000100000200000000000200100100100 +100000100000200000100000, +#MEASURE 8/4 +200000000000000000000000200000000000000000000000 +100000000000000000100000200000000000100000000000, +300000000000000000100000200000000000100100100000 +100000100000100000000000200000000000100000100000, +100000100000100000100000200000000000100000100000 +200100100000100000000000200000100000100000100000, +100000000000100000100000200000000000100100100000 +100000100000100000100000200000000000100000100000, +100000100000100000100000200000100000100000100000 +200100100000100000100000200000100000100000100000, +300000000000100000100000200000000000100100100000 +100000000000100000100000200000000000100000100000, +100000000000100000000000200000100000100000000000 +200100100000100000100000200000000000100000000000, +100000100000100000100000100000100000100000100000 +200000100000100000100000100000100000100000100000, +500000000000000000000000000000000000000008000000 +600000000000000000000000000000000000000008000000, +#MEASURE 4/4 +#BPMCHANGE 166.5 +#SCROLL 0.75 +100000000000000000000000202000000000202000000000, +202000000000202000202000100000000200000100200000, +100000100100200000200000100000202020202020101010, +100000002000100010002000200000001000200020002000 +1010101020002000, +100000100000202000000000202000100200100200100000, +100000000200100200200200100000101010200200100200, +100020002000200020202000100000000000202000100200, +100000002000200020001000200020001000000010001000 +1010100010001000, +#MEASURE 8/4 +#BPMCHANGE 333 +#SCROLL 0.5 +100000000000000000000000200000000000100000100100 +200000000000000000000000100000000000100000100000, +000000000000100000000000200000100000000000100100 +200000000000000000100000000000000000200000200000, +000000000000000000000000200000000000000000100100 +200000000000100000000000000000000000000000000000, +100000000000000000100000200000000000100000100100 +200000100000000000200000200000000000100100100100, +#SCROLL 0.53 +100000000000000000000000200000000000100000100100 +200000000000000000000000100000000000100000100000, +#SCROLL 0.58 +100000000000000000000000200000000000100000100100 +200000000000100000100000100000000000200000000000, +#SCROLL 0.63 +100000000000100000000000200000000000100000100100 +200000000000100000000000100000100000200000200000, +#SCROLL 0.68 +100100100000100000200000100100100000200000200000 +100100100000100000200000100100100000200000200000, +#SCROLL 0.75 +700000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +#SCROLL 1 +800000000000000000000200200000000000000000000000 +200000000000100100100100200000000000000000000000, +#GOGOSTART +300000000000000000200000100000000000200000100000 +200000200000100100100000200000100000200000000000, +100000100000100000200000100000100000200000200000 +100100100000200000100000200000100000200000200000, +100000000000000000200000100000000000200000000000 +200000100000100100200000100000000000200000000000, +200000000000100100100100200000000000100000100000 +200000100000100100100000200000100000100000100000, +700000000000000000800000200200200200100100100100 +100000000000100000100000200000100000200000100000, +200000100000100000200000100000100000200100100100 +200000100000200000100000200000200000200000100000, +200000000000100000200000100000100000200000000000 +100000100000200000200000200010001000100010001000, +200000000000200010001000200020002000100010001000 +200020002000200020002000100100100100100100100100, +#GOGOEND +200000000000000000200000000000000000200000000000 +300000000000200000300000200000000000300000000000, +200000200000200000200200 +#GOGOSTART +100000100000200000200000 +100100100000200000100000200000100000200000200000, +100000000000000000400000000000000000100000000000 +200000000000100000400000000000000000100000000000, +200000100000100100100100200000100000100000100000 +200100100000100100100000200100100100100100100100, +500000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000008, +000000000000000000000000200000000000100000100000 +200000000000100100100000200000000000100000000000, +100100100000200000200000100000100100200000200000 +100100100000200000200000100000100100200000200000, +100100100000200000200000100000100200000100200000 +100100100100200000200000100100100000100100100100, +200000000000000000000000200000000000000000000000 +400000000000000000100000400000000000100000000000, +200100100100100100100100200100100100100100100100 +200100100100200100100100200100100100200100100100, +#GOGOEND +700000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000008 +000000000000000000000000200000200000200000200000, +200000002000000020000000200000002000000020000000 +200000002000000020000000200000002000000020000000, +100000200000200000200000200000200000200000200000 +100000200000100000200000100000200000100000100000, +#GOGOSTART +200100100000100000100100100000100000200100100000 +100000100100100000100000100100100000200000100000, +100100100000200000100100100000200000100100100000 +200100100100200100100100200100200100200100200100, +#GOGOEND +100000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +#MEASURE 4/4 +000000000000000000000000000000000000000000000000, +#END + +COURSE:Oni +LEVEL:7 +BALLOON:24 + + +#START +#BARLINEOFF +#MEASURE 5/4 +#SCROLL 0.5 +000000000000000000000000000000000000000000000000 +000000000000, +#BARLINEON +#MEASURE 8/4 +300000000000000000000000200000000000000000000000 +200000000000000000000000200000000000000000000000, +200000000000000000000000000000000000200000000000 +000000000000000000000000000000000000000000000000, +200000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +200000000000000000000000200000000000000000000000 +200000000000200000000000200000000000200000000000, +#GOGOSTART +300000000000000000300000000000000000300000000000 +000000300000000000000000300000000000300000000000, +#GOGOEND +000000000000000000000000300000000000000000000000 +000000000000000000000000000000000000000000000000, +100000000000000000000000000000000000200000200000 +200000000000000000200000000000000000200000000000, +#GOGOSTART +300000000000000000300000000000000000300000000000 +000000300000000000000000300000000000300000000000, +600000000000000000000000000000000000000000000000 +000000000000000000000000000000000008000000000000, +#GOGOEND +300000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +#GOGOSTART +100000000000100000000000100000000000100000000000 +100000100000100000000000100000000000100000000000, +100000100000100000000000100000100000100000000000 +100000100000100000100000100000100000100000000000, +#GOGOEND +300000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +#GOGOSTART +200000000000200000000000200000000000200000000000 +200000200000200000000000200000000000200000000000, +200000200000200000000000200000200000200000000000 +200000200000200000200000200000200000200000000000, +#GOGOEND +100000100000100000000000100000100000100000000000 +100000000000100000100000100000000000000000000000, +100000100000100000000000100000100000100000000000 +100000000000100000000000100000100000100000000000, +100000100000100000000000100000100000100000000000 +100000000000100000100000100000000000000000000000, +100000100000100000000000100000100000100000000000 +200000200000200000200000200000000000200000000000, +100000000000000000100000000000000000100000000000 +000000100000000000000000100000000000000000100000, +000000000000100000000000000000100000000000000000 +100000000000200000200000200000200000200000000000, +100000000000100000100000100000000000000000000000 +200000000000100000100000200000000000000000000000, +100000000000100000100000200000000000100000100000 +100000000000100000100000200000000000000000000000, +#MEASURE 6/4 +300000000000000000000000100000000000100000000000 +000000000000100000000000, +#MEASURE 8/4 +200000000000000000000000200000000000200000000000 +000000000000200000000000200000000000100000100000, +#MEASURE 6/4 +100000000000000000000000100000000000100000000000 +000000000000100000000000, +#MEASURE 8/4 +200000000000000000200000000000000000200000200000 +100000000000000000200000000000000000200000000000, +#MEASURE 6/4 +100000000000000000000000100000000000100000000000 +000000002000000020000000, +#MEASURE 8/4 +200000000000000020000000000000002000000000000000 +200000000000000000100000000000000000200000000000, +#MEASURE 6/4 +100000100000100000000000200000000000100000100000 +100000000000200000000000, +#MEASURE 8/4 +200000000000000000000000200000000000000000000000 +100000000000000000000000200000000000000000000000, +300000000000000000000000200000000000100000000000 +100000100000100000000000200000000000100000000000, +100000100000100000000000200000000000100000000000 +200000000000100000100000200000000000100000000000, +100000000000000000000000200000000000100000000000 +100000100000100000000000200000000000100000000000, +100000100000100000000000200000000000100000000000 +200000000000100000100000200000000000200000000000, +100000000000000000000000200000000000100000000000 +100000100000100000000000200000000000100000000000, +100000100000100000000000200000000000100000000000 +200000000000100000100000200000000000000000000000, +100000100000100000100000100000000000100000000000 +100000100000100000100000100000000000100000000000, +200000200000200000200000200000000000200000000000 +200000200000200000200000200000000000000000000000, +#MEASURE 4/4 +#BPMCHANGE 166.5001678466796875 +#SCROLL 0.75 +300000000000000000000000200000000000200000000000, +100000000000100000100000200000000000200200200000, +100000000000100000100000200000000000100100100000, +100000000000000010000000000000002000200020002000 +2000000020000000, +100000000000100000000000200000000000200200200000, +100000000000100100100000200000000000200200200000, +100000100100100000100000200000000000100100100000, +100000000000000010000000000000002000200020002000 +2000000020000000, +#MEASURE 8/4 +#BPMCHANGE 333.000335693359375 +#SCROLL 0.5 +100000100000100000000000100000100000100000000000 +100000000000100000100000100000000000100000000000, +000000000000100000000000100000100000100000000000 +100000000000100000100000200000000000000000000000, +100000100000100000000000100000100000100000000000 +100000000000100000100000100000000000000000000000, +100000100000100000000000100000100000100000000000 +200000200000200000200000200000000000000000000000, +100000100000100000000000100000100000100000000000 +100000000000100000100000100000000000100000000000, +000000000000100000000000100000100000100000000000 +100000000000100000100000200000000000000000000000, +100000100000100000000000100000100000100000000000 +100000000000200000200000200000000000200000000000, +500000000000000000000000000000000000000000000000 +000000000000000000000000000000000008000000000000, +300000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000400000000000000000000000 +400000000000000000000000400000000000000000000000, +#GOGOSTART +300000000000000000100000000000000000200000000000 +100000100000100000000000200000000000200000000000, +100000100000100000000000200000200000200000000000 +100000000000200000200000100000000000200000000000, +100000000000000000100000000000000000100000000000 +200000000000000000200000000000000000200000000000, +100000000000100000100000100000000000000000000000 +200000200000100000000000200000000000000000000000, +300000000000000000000000200000200000200000200000 +100000000000000000000000100000100000100000100000, +100000000000000000100000000000000000100000100000 +200000000000200000000000200000200000200000000000, +100000000000000000100000000000000000200000000000 +100000000000100000100000100000100000100000000000, +200000000000100000100000200000000000100000000000 +200000200000100000000000200000000000000000000000, +#GOGOEND +300000000000000000200000000000000000200000000000 +300000000000200000000000200000000000200000000000, +200000200000200000000000 +#GOGOSTART +300000000000000000000000 +100000000000200000200000100000000000200000000000, +100000000000000000300000000000000000100000000000 +200000000000000000400000000000000000200000000000, +100000000000100000100000100000000000000000000000 +200000200000100000000000200000000000000000000000, +300000000000000000000000100000100000100000000000 +200000000000200000000000100000100000100000100000, +100000000000100000100000200000000000100000100000 +100000000000100000100000200000000000000000000000, +100000000000200000000000100000100000200000000000 +100000000000200000200000100000000000200000000000, +100000100000100000100000200000000000200000000000 +100000100000100000100000200000000000000000000000, +300000000000000000000000300000000000000000000000 +400000000000000000000000400000000000000000000000, +600000000000000000000000000000000000000000000000 +000000000000000000000000000000000008000000000000, +#GOGOEND +700000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000008 +000000000000000000000000000000000000000000000000, +200000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +200000000000000000000000200000000000000000000000 +200000000000200000000000200000000000200000000000, +#GOGOSTART +100000000000000000000000000000000000100000000000 +000000000000000000000000000000000000100000000000, +000000000000100000000000100000100000100000000000 +100000100000100000000000100000100000100000100000, +#GOGOEND +100000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +#MEASURE 4/4 +000000000000000000000000000000000000000000000000, +#END + +COURSE:Hard +LEVEL:5 +BALLOON:21,9,18,21,21 + + +#START +#BARLINEOFF +#MEASURE 5/4 +#SCROLL 0.5 +000000000000000000000000000000000000000000000000 +000000000000, +#BARLINEON +#MEASURE 8/4 +300000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +200000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +200000000000000000000000200000000000000000000000 +200000000000000000000000000000000000000000000000, +#GOGOSTART +300000000000000000300000000000000000300000000000 +000000300000000000000000300000000000300000000000, +#GOGOEND +000000000000000000000000300000000000000000000000 +000000000000000000000000000000000000000000000000, +100000000000000000000000000000000000000000000000 +200000000000000000200000000000000000200000000000, +#GOGOSTART +300000000000000000300000000000000000300000000000 +000000300000000000000000300000000000300000000000, +600000000000000000000000000000000000000000000000 +000000000000000000000000000000000008000000000000, +#GOGOEND +300000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +#GOGOSTART +500000000000000000000000000000000008000000000000 +500000000000000000000000000000000008000000000000, +500000000000000000000000000000000008000000000000 +500000000000000000000000000000000008000000000000, +#GOGOEND +100000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +#GOGOSTART +600000000000000000000000000000000008000000000000 +600000000000000000000000000000000008000000000000, +600000000000000000000000000000000008000000000000 +600000000000000000000000000000000008000000000000, +#GOGOEND +100000000000000000000000100000000000000000000000 +100000000000000000000000100000000000100000000000, +100000000000000000000000100000000000000000000000 +100000000000000000000000200000000000200000000000, +100000000000000000000000100000000000000000000000 +100000000000000000000000100000000000100000000000, +100000000000000000000000100000000000000000000000 +200000000000200000000000200000000000200000000000, +700000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000008 +000000000000000000000000000000000000000000000000, +300000000000000000000000300000000000000000000000 +300000000000000000000000300000000000000000000000, +400000000000000000000000400000000000000000000000 +400000000000000000000000400000000000000000000000, +#MEASURE 6/4 +100000000000000000000000100000000000100000000000 +000000000000100000000000, +#MEASURE 8/4 +200000000000000000000000200000000000200000000000 +000000000000200000000000200000000000000000000000, +#MEASURE 6/4 +100000000000000000000000100000000000100000000000 +000000000000100000000000, +#MEASURE 8/4 +200000000000000000200000000000000000200000000000 +200000000000000000200000000000000000200000000000, +#MEASURE 6/4 +100000000000000000000000100000000000100000000000 +000000007000000000000000, +#MEASURE 8/4 +000000000000000000000000000000000000000000000008 +000000000000000000000000000000000000000000000000, +#MEASURE 6/4 +100000000000000000000000100000000000100000000000 +000000000000100000000000, +#MEASURE 8/4 +200000000000000000000000200000000000000000000000 +200000000000000000000000200000000000000000000000, +100000000000000000000000100000000000000000000000 +100000000000100000000000200000000000200000000000, +100000000000000000000000100000000000100000000000 +200000000000000000000000000000000000000000000000, +100000000000000000000000100000000000000000000000 +100000000000100000000000200000000000200000000000, +100000000000000000000000100000000000100000000000 +200000000000000000000000000000000000000000000000, +100000000000000000000000100000000000000000000000 +100000000000100000000000200000000000200000000000, +100000000000000000000000100000000000100000000000 +200000000000000000000000000000000000000000000000, +500000000000000000000000000000000008000000000000 +500000000000000000000000000000000008000000000000, +600000000000000000000000000000000008000000000000 +600000000000000000000000000008000000000000000000, +#MEASURE 4/4 +#BPMCHANGE 166.5001678466796875 +#SCROLL 0.75 +300000000000000000000000200000000000200000000000, +100000000000100000100000200000000000000000000000, +100000000000100000100000200000000000200000000000, +100000000000000010000000000000002000000020000000 +2000000020000000, +100000000000100000000000200000000000100000100000, +100000000000100000100000200000000000000000000000, +100000100000100000000000200000000000100000100000, +100000000000000010000000000000002000000020000000 +2000000020000000, +#MEASURE 8/4 +#BPMCHANGE 333.000335693359375 +#SCROLL 0.5 +100000000000000000000000100000000000200000000000 +100000000000000000000000100000000000100000000000, +000000000000200000000000100000000000000000000000 +100000000000000000000000200000000000200000000000, +100000000000000000000000100000000000200000000000 +100000000000000000000000100000000000100000000000, +100000000000200000000000100000000000000000000000 +200000000000200000000000200000000000200000000000, +100000000000000000000000100000000000200000000000 +100000000000000000000000100000000000100000000000, +000000000000200000000000100000000000000000000000 +100000000000000000000000200000000000200000000000, +100000000000000000000000100000000000200000000000 +100000000000000000000000100000000000100000000000, +500000000000000000000000000000000000000000000000 +000000000000000000000000000000000008000000000000, +300000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000400000000000000000000000 +400000000000000000000000400000000000000000000000, +#GOGOSTART +300000000000000000100000000000000000100000000000 +200000000000200000000000200000000000200000000000, +100000000000100000000000200000000000200000000000 +100000000000100000000000200000000000200000000000, +100000000000000000100000000000000000100000000000 +200000000000000000200000000000000000200000000000, +100000000000000000000000100000000000000000000000 +200000000000000000000000200000000000000000000000, +500000000000000000000000000000000000000000000000 +000000000000000000000008000000000000000000000000, +100000000000000000100000000000000000100000000000 +200000000000200000000000200000000000200000000000, +100000000000000000100000000000000000100000000000 +700000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000800000000000000000000000, +#GOGOEND +100000000000000000200000000000000000200000000000 +100000000000200000000000200000000000200000000000, +200000000000000000000000 +#GOGOSTART +300000000000000000000000 +100000000000100000000000200000000000200000000000, +100000000000000000100000000000000000100000000000 +200000000000000000200000000000000000200000000000, +100000000000000000000000100000000000000000000000 +200000000000000000000000200000000000000000000000, +500000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000008, +000000000000000000000000100000000000000000000000 +200000000000000000000000200000000000000000000000, +700000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000008 +000000000000000000000000000000000000000000000000, +300000000000000000000000300000000000000000000000 +400000000000000000000000400000000000000000000000, +600000000000000000000000000000000000000000000000 +000000000000000000000000000000000008000000000000, +#GOGOEND +700000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000008 +000000000000000000000000000000000000000000000000, +200000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +200000000000000000000000200000000000000000000000 +200000000000000000000000000000000000000000000000, +#GOGOSTART +600000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000008000000000000, +#GOGOEND +300000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +#MEASURE 4/4 +000000000000000000000000000000000000000000000000, +#END + +COURSE:Normal +LEVEL:5 +BALLOON:17,12,5,12,12,12 + + +#START +#BARLINEOFF +#MEASURE 5/4 +#SCROLL 0.5 +000000000000000000000000000000000000000000000000 +000000000000, +#BARLINEON +#MEASURE 8/4 +300000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +200000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +200000000000000000000000000000000000000000000000 +200000000000000000000000000000000000000000000000, +#GOGOSTART +600000000000000000000000000000000000000000000000 +000000000000000000000000000000000008000000000000, +#GOGOEND +000000000000000000000000300000000000000000000000 +000000000000000000000000000000000000000000000000, +100000000000000000000000000000000000000000000000 +200000000000000000000000000000000000000000000000, +#GOGOSTART +900000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000008, +#GOGOEND +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +#GOGOSTART +500000000000000000000000000000000008000000000000 +500000000000000000000000000000000008000000000000, +500000000000000000000000000000000008000000000000 +500000000000000000000000000000000008000000000000, +#GOGOEND +100000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +#GOGOSTART +600000000000000000000000000000000008000000000000 +600000000000000000000000000000000008000000000000, +600000000000000000000000000000000008000000000000 +600000000000000000000000000000000008000000000000, +#GOGOEND +100000000000000000000000100000000000000000000000 +100000000000000000000000100000000000100000000000, +100000000000000000000000100000000000000000000000 +200000000000000000000000000000000000000000000000, +100000000000000000000000100000000000000000000000 +100000000000000000000000100000000000100000000000, +100000000000000000000000100000000000000000000000 +200000000000000000000000000000000000000000000000, +700000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000008 +000000000000000000000000000000000000000000000000, +300000000000000000000000300000000000000000000000 +300000000000000000000000300000000000000000000000, +600000000000000000000000000000000000000000000000 +000000000000000000000008000000000000000000000000, +#MEASURE 6/4 +100000000000000000000000100000000000100000000000 +000000000000000000000000, +#MEASURE 8/4 +200000000000000000000000200000000000200000000000 +000000000000000000000000000000000000000000000000, +#MEASURE 6/4 +100000000000000000000000100000000000100000000000 +000000000000000000000000, +#MEASURE 8/4 +200000000000000000000000000000000000000000000000 +200000000000000000000000000000000000000000000000, +#MEASURE 6/4 +100000000000000000000000100000000000100000000000 +000000007000000000000000, +#MEASURE 8/4 +000000000000000000000000000000000000000000000008 +000000000000000000000000000000000000000000000000, +#MEASURE 6/4 +100000000000000000000000100000000000100000000000 +000000000000000000000000, +#MEASURE 8/4 +200000000000000000000000200000000000000000000000 +200000000000000000000000200000000000000000000000, +100000000000000000000000000000000000000000000000 +100000000000000000000000100000000000100000000000, +100000000000000000000000000000000000000000000000 +200000000000000000000000000000000000000000000000, +100000000000000000000000000000000000000000000000 +100000000000000000000000100000000000100000000000, +100000000000000000000000000000000000000000000000 +200000000000000000000000000000000000000000000000, +100000000000000000000000000000000000000000000000 +100000000000000000000000100000000000100000000000, +100000000000000000000000000000000000000000000000 +200000000000000000000000000000000000000000000000, +500000000000000000000000000000000008000000000000 +500000000000000000000000000000000008000000000000, +600000000000000000000000000000000008000000000000 +600000000000000000000008000000000000000000000000, +#MEASURE 4/4 +#BPMCHANGE 166.5001678466796875 +#SCROLL 0.75 +300000000000000000000000200000000000000000000000, +100000000000100000100000200000000000000000000000, +100000000000000000000000200000000000000000000000, +100000000000000010000000000000002000000020000000 +2000000000000000, +100000000000000000000000200000000000000000000000, +100000000000100000100000200000000000000000000000, +100000000000000000000000200000000000000000000000, +100000000000000010000000000000002000000020000000 +2000000000000000, +#MEASURE 8/4 +#BPMCHANGE 333.000335693359375 +#SCROLL 0.5 +100000000000000000000000100000000000000000000000 +100000000000000000000000100000000000100000000000, +000000000000000000000000100000000000000000000000 +200000000000000000000000000000000000000000000000, +100000000000000000000000100000000000000000000000 +100000000000000000000000100000000000100000000000, +100000000000000000000000100000000000000000000000 +200000000000000000000000000000000000000000000000, +100000000000000000000000100000000000000000000000 +100000000000000000000000100000000000100000000000, +000000000000000000000000100000000000000000000000 +200000000000000000000000000000000000000000000000, +100000000000000000000000100000000000000000000000 +100000000000000000000000100000000000100000000000, +500000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000008, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000400000000000000000000000 +400000000000000000000000400000000000000000000000, +#GOGOSTART +300000000000000000000000000000000000000000000000 +200000000000200000000000200000000000000000000000, +100000000000100000000000100000000000000000000000 +200000000000000000000000000000000000000000000000, +100000000000000000100000000000000000000000000000 +200000000000000000200000000000000000000000000000, +100000000000000000000000100000000000000000000000 +200000000000000000000000200000000000000000000000, +500000000000000000000000000000000000000000000000 +000000000000000000000008000000000000000000000000, +100000000000000000000000000000000000000000000000 +200000000000200000000000200000000000000000000000, +700000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000008 +000000000000000000000000000000000000000000000000, +#GOGOEND +100000000000000000000000000000000000000000000000 +100000000000000000000000200000000000200000000000, +200000000000000000000000 +#GOGOSTART +100000000000000000000000 +200000000000000000000000000000000000000000000000, +100000000000000000100000000000000000000000000000 +200000000000000000200000000000000000000000000000, +100000000000000000000000100000000000000000000000 +200000000000000000000000200000000000000000000000, +500000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000008, +000000000000000000000000100000000000000000000000 +200000000000000000000000200000000000000000000000, +700000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000008 +000000000000000000000000000000000000000000000000, +300000000000000000000000300000000000000000000000 +400000000000000000000000400000000000000000000000, +600000000000000000000000000000000000000000000000 +000000000000000000000000000000000008000000000000, +#GOGOEND +700000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000008 +000000000000000000000000000000000000000000000000, +200000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +200000000000000000000000000000000000000000000000 +200000000000000000000000000000000000000000000000, +#GOGOSTART +600000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000008000000000000, +#GOGOEND +300000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +#MEASURE 4/4 +000000000000000000000000000000000000000000000000, +#END + +COURSE:Easy +LEVEL:3 +BALLOON:13,10,4,10,10,10 + + +#START +#BARLINEOFF +#MEASURE 5/4 +#SCROLL 0.5 +000000000000000000000000000000000000000000000000 +000000000000, +#BARLINEON +#MEASURE 8/4 +300000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +200000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +200000000000000000000000000000000000000000000000 +200000000000000000000000000000000000000000000000, +#GOGOSTART +600000000000000000000000000000000000000000000000 +000000000000000000000000000000000008000000000000, +#GOGOEND +000000000000000000000000300000000000000000000000 +000000000000000000000000000000000000000000000000, +100000000000000000000000000000000000000000000000 +200000000000000000000000000000000000000000000000, +#GOGOSTART +900000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000008, +#GOGOEND +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +#GOGOSTART +500000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000008, +#GOGOEND +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +#GOGOSTART +600000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000008000000000000000000000000000000000000, +#GOGOEND +100000000000000000000000100000000000000000000000 +100000000000000000000000000000000000000000000000, +100000000000000000000000100000000000000000000000 +200000000000000000000000000000000000000000000000, +100000000000000000000000100000000000000000000000 +100000000000000000000000000000000000000000000000, +100000000000000000000000100000000000000000000000 +200000000000000000000000000000000000000000000000, +700000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000008 +000000000000000000000000000000000000000000000000, +300000000000000000000000300000000000000000000000 +300000000000000000000000300000000000000000000000, +600000000000000000000000000000000000000000000000 +000000000000000000000008000000000000000000000000, +#MEASURE 6/4 +100000000000000000000000100000000000000000000000 +000000000000000000000000, +#MEASURE 8/4 +200000000000000000000000200000000000000000000000 +000000000000000000000000000000000000000000000000, +#MEASURE 6/4 +100000000000000000000000100000000000000000000000 +000000000000000000000000, +#MEASURE 8/4 +200000000000000000000000000000000000000000000000 +200000000000000000000000000000000000000000000000, +#MEASURE 6/4 +100000000000000000000000100000000000000000000000 +000000007000000000000000, +#MEASURE 8/4 +000000000000000000000000000000000000000000000008 +000000000000000000000000000000000000000000000000, +#MEASURE 6/4 +100000000000000000000000100000000000000000000000 +000000000000000000000000, +#MEASURE 8/4 +200000000000000000000000000000000000000000000000 +200000000000000000000000000000000000000000000000, +100000000000000000000000000000000000000000000000 +000000000000000000000000100000000000000000000000, +100000000000000000000000000000000000000000000000 +200000000000000000000000000000000000000000000000, +100000000000000000000000000000000000000000000000 +000000000000000000000000100000000000000000000000, +100000000000000000000000000000000000000000000000 +200000000000000000000000000000000000000000000000, +100000000000000000000000000000000000000000000000 +000000000000000000000000100000000000000000000000, +100000000000000000000000000000000000000000000000 +200000000000000000000000000000000000000000000000, +500000000000000000000000000000000000000000000000 +000000000000000000000000000000000008000000000000, +600000000000000000000000000000000000000000000000 +000000000008000000000000000000000000000000000000, +#MEASURE 4/4 +#BPMCHANGE 166.5001678466796875 +#SCROLL 0.75 +300000000000000000000000200000000000000000000000, +000000000000000000000000200000000000000000000000, +100000000000000000000000200000000000000000000000, +000000000000000000000000000000002000000000000000 +0000000000000000, +100000000000000000000000200000000000000000000000, +000000000000000000000000200000000000000000000000, +100000000000000000000000200000000000000000000000, +000000000000000000000000000000002000000000000000 +0000000000000000, +#MEASURE 8/4 +#BPMCHANGE 333.000335693359375 +#SCROLL 0.5 +100000000000000000000000100000000000000000000000 +100000000000000000000000000000000000000000000000, +000000000000000000000000100000000000000000000000 +200000000000000000000000000000000000000000000000, +100000000000000000000000100000000000000000000000 +100000000000000000000000000000000000000000000000, +100000000000000000000000100000000000000000000000 +200000000000000000000000000000000000000000000000, +100000000000000000000000100000000000000000000000 +100000000000000000000000000000000000000000000000, +000000000000000000000000100000000000000000000000 +200000000000000000000000000000000000000000000000, +100000000000000000000000100000000000000000000000 +100000000000000000000000000000000000000000000000, +500000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000008, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000300000000000000000000000 +300000000000000000000000300000000000000000000000, +#GOGOSTART +300000000000000000000000000000000000000000000000 +200000000000000000000000200000000000000000000000, +100000000000000000000000100000000000000000000000 +200000000000000000000000000000000000000000000000, +100000000000000000000000000000000000000000000000 +200000000000000000000000000000000000000000000000, +100000000000000000000000100000000000000000000000 +200000000000000000000000200000000000000000000000, +500000000000000000000000000000000000000000000000 +000000000008000000000000000000000000000000000000, +100000000000000000000000000000000000000000000000 +200000000000000000000000200000000000000000000000, +700000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000008 +000000000000000000000000000000000000000000000000, +#GOGOEND +400000000000000000000000000000000000000000000000 +400000000000000000000000000000000000000000000000, +000000000000000000000000 +#GOGOSTART +100000000000000000000000 +200000000000000000000000000000000000000000000000, +100000000000000000000000000000000000000000000000 +200000000000000000000000000000000000000000000000, +100000000000000000000000100000000000000000000000 +200000000000000000000000200000000000000000000000, +500000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000008, +000000000000000000000000100000000000000000000000 +100000000000000000000000100000000000000000000000, +700000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000008 +000000000000000000000000000000000000000000000000, +300000000000000000000000300000000000000000000000 +300000000000000000000000300000000000000000000000, +600000000000000000000000000000000000000000000000 +000000000000000000000000000000000008000000000000, +#GOGOEND +700000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000008 +000000000000000000000000000000000000000000000000, +200000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +200000000000000000000000000000000000000000000000 +200000000000000000000000000000000000000000000000, +#GOGOSTART +600000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000008000000000000, +#GOGOEND +300000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000, +#MEASURE 4/4 +000000000000000000000000000000000000000000000000, +#END diff --git a/testing/data/emma.zip b/testing/data/emma.zip new file mode 100644 index 0000000000000000000000000000000000000000..ee37a42e366815db192af44da4dc7736306771e7 GIT binary patch literal 10335 zcma)i2{=^k|2L@yEmBIdj7Uh4CA*m{QAtRWEK`;wAh1h|i}kq|M>aDN;=lMWnaSjV@63Yk}qF ztx3d*91E@chaVZbCuhhv-)qlt#^?yEH$&$l(xWNasuFTi_nk3T=VYsnM0dL~gr@HQ zH0TNS?e0)|-XE7`^kPK#z(HKuFQXHpGu`Lv4?KK!7astJ%c^E5nm;kDtQ-@ydZ)

)66^Q$2oKCnG-gy_BWnk9+y*dxwYP^6S{}!c@gq06qh+3cIltIfhGp zYn_O-i~{k^9=St!gl`f|!YqDVu+JI!Js4065*&&tZ>f6f^gT?O4aUm zgd0DuA0kfRkkWH)kX#~q^Sb4ZVe`>)vu|O_Lew_uQI%iDp!OdYPm>-(WmQQ}Q@_Re zK~8rnw#HF{j>W4KBftHWdTIR<`PuN0!&Ts%cg96f1TX@MuQWN7QDkj19x0RGpBnL1 zaOnGrj}&ShwlplManHl}{fIN_sv>l^5g1*%j zC(G4{VU|$By%3sZPdA&Sld@(9g=c0qh2}=JAEW+^6sjP>4vF;NoGqcwxIu%+D${OR zji%qsQ(?I8)VYk{CrkyRe0Se!nzb<&=ZGH6@4Fb~w%P#wEOQ7|?l2B|lE0og&JrFv zS>)P8kCIjO<1oAqKB1gi8Hh%B!h>uHjDuJJDJ$K;o7s`0=uS90p%}T)hr$*+W zpVYcwbfXV(4^;fjJn{S6u`N!Mk=rrd5@Lcc`AWo_Dz(uZQS#BVUBLDg2eeEpeX-VA zq;TYtBoLyz!Uzz;r(-ZHT(x0}c{SDsY1^T3|G33yo7on5u<)MI%2w}sNVRNLr~jEL z$KBA3UqpfXQu-OH1JeDhl~JBJ1z{Ize;tj04w=6NyK409*cthF;$XbWhwgesR%f`f z0QE+@x$FH4DnAzKaaQ{KXe0o1`WU?X94ysoOE6 z8=@w=7Hu_EKo4@7n9d!Vp6;=>K~7stLz-25Am?`BdmgV5RF8TcWIy;bdFTa0bR<%~ z4~MkqBG*gc(xBaG%-FMcO^&hu%7@wGQfRYz#fj2MH(YCV)YX|$n$OYBzO_Hxi*uwf znM?}kbN=4hobE=~`da|%zC+Xx^QLFet}Cqc#RK^=7@G7gu=pJY&l~(*ABoJQNH&%# z∋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 Lh}sDu