diff --git a/art/FNF_main_menu_assets.fla b/art/FNF_main_menu_assets.fla
new file mode 100644
index 0000000..8046fc5
Binary files /dev/null and b/art/FNF_main_menu_assets.fla differ
diff --git a/art/funkinpause.fla b/art/funkinpause.fla
new file mode 100644
index 0000000..a66d7d8
Binary files /dev/null and b/art/funkinpause.fla differ
diff --git a/art/funkinpauseyellow.fla b/art/funkinpauseyellow.fla
new file mode 100644
index 0000000..d27d6b3
Binary files /dev/null and b/art/funkinpauseyellow.fla differ
diff --git a/art/halloween_bg.fla b/art/halloween_bg.fla
new file mode 100644
index 0000000..2fcd37b
Binary files /dev/null and b/art/halloween_bg.fla differ
diff --git a/assets/data/bopeebo/bopeebo.json b/assets/data/bopeebo/bopeebo.json
index 0e4c9bc..02ee15f 100644
--- a/assets/data/bopeebo/bopeebo.json
+++ b/assets/data/bopeebo/bopeebo.json
@@ -1 +1 @@
-{"song":{"player2":"dad","player1":"bf","speed":1,"needsVoices":true,"sectionLengths":[],"song":"Bopeebo","notes":[{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[0,2,0],[600,3,450],[1050,3,600]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[2400,2,0],[3000,3,450],[3450,3,600]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[4800,1,300],[5400,0,300],[6000,3,300]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[7200,1,300],[7800,0,300],[8400,3,300]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[9600,1,150],[10200,3,0],[10500,0,0],[10800,1,450]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[12000,1,150],[12600,3,0],[12900,0,0],[13200,1,450]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[14400,3,0],[14700,1,0],[15300,0,0],[15600,2,300]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[16800,3,0],[17100,1,0],[17700,0,0],[18000,2,300]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[19200,0,0],[19500,3,0],[19800,1,750]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[21600,0,0],[21900,3,0],[22200,1,750]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[24000,1,0],[24300,3,0],[24600,0,750]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[26700,3,0],[27000,0,750],[28788,1,0],[26400,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[28800,2,0],[29100,3,0],[29400,0,1050]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[31200,2,0],[31500,3,0],[31800,0,1050],[33300,6,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[33600,0,0],[33900,3,0],[34500,2,0],[34800,1,450],[35700,6,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[36000,0,0],[36300,3,0],[36900,2,0],[37200,1,450]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[38400,2,450],[39000,3,300],[39600,0,450]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[40800,2,450],[41400,3,300],[42000,0,450]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[43200,1,0],[43800,2,0],[44400,1,0],[44550,1,0],[44700,1,0],[45000,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[45600,1,0],[46200,2,0],[46800,1,0],[46950,1,0],[47100,1,0],[47400,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[48000,2,450],[48600,3,300],[49200,0,450]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[50400,2,450],[51000,3,300],[51600,0,450]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[52800,3,1650]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[55200,3,1650],[55650,4,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[57600,2,0],[57900,3,0],[58200,0,1050]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[60000,2,0],[60300,3,0],[60600,0,1050],[62100,6,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[62400,0,0],[62700,3,0],[63300,2,0],[63600,1,450],[64500,6,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[64800,0,0],[65100,3,0],[65700,2,0],[66000,1,450]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[67200,2,0],[67500,3,0],[67800,0,0],[68100,2,0],[68400,1,450]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[69600,2,0],[69900,3,0],[70200,0,0],[70500,2,0],[70800,1,450],[71700,6,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[72000,0,0],[72300,3,0],[72900,2,0],[73200,1,450],[74100,6,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[74400,0,0],[74700,3,0],[75300,2,0],[75600,1,450]]}],"bpm":100,"sections":0},"bpm":100,"sections":32,"notes":[{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[0,2,0],[600,3,450],[1050,3,600]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[2400,2,0],[3000,3,450],[3450,3,600]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[4800,1,300],[5400,0,300],[6000,3,300]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[7200,1,300],[7800,0,300],[8400,3,300]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[9600,1,150],[10200,3,0],[10500,0,0],[10800,1,450]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[12000,1,150],[12600,3,0],[12900,0,0],[13200,1,450]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[14400,3,0],[14700,1,0],[15300,0,0],[15600,2,300]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[16800,3,0],[17100,1,0],[17700,0,0],[18000,2,300]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[19200,0,0],[19500,3,0],[19800,1,750]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[21600,0,0],[21900,3,0],[22200,1,750]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[24000,1,0],[24300,3,0],[24600,0,750]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[26700,3,0],[27000,0,750],[28788,1,0],[26400,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[28800,2,0],[29100,3,0],[29400,0,1050]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[31200,2,0],[31500,3,0],[31800,0,1050],[33300,6,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[33600,0,0],[33900,3,0],[34500,2,0],[34800,1,450],[35700,6,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[36000,0,0],[36300,3,0],[36900,2,0],[37200,1,450]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[38400,2,450],[39000,3,300],[39600,0,450]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[40800,2,450],[41400,3,300],[42000,0,450]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[43200,1,0],[43800,2,0],[44400,1,0],[44550,1,0],[44700,1,0],[45000,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[45600,1,0],[46200,2,0],[46800,1,0],[46950,1,0],[47100,1,0],[47400,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[48000,2,450],[48600,3,300],[49200,0,450]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[50400,2,450],[51000,3,300],[51600,0,450]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[52800,3,1650]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[55200,3,1650],[55650,4,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[57600,2,0],[57900,3,0],[58200,0,1050]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[60000,2,0],[60300,3,0],[60600,0,1050],[62100,6,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[62400,0,0],[62700,3,0],[63300,2,0],[63600,1,450],[64500,6,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[64800,0,0],[65100,3,0],[65700,2,0],[66000,1,450]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[67200,2,0],[67500,3,0],[67800,0,0],[68100,2,0],[68400,1,450]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[69600,2,0],[69900,3,0],[70200,0,0],[70500,2,0],[70800,1,450],[71700,6,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[72000,0,0],[72300,3,0],[72900,2,0],[73200,1,450],[74100,6,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[74400,0,0],[74700,3,0],[75300,2,0],[75600,1,450]]}]}
\ No newline at end of file
+{"song":{"player2":"dad","player1":"bf","speed":1,"needsVoices":true,"sectionLengths":[],"song":"Bopeebo","notes":[{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[0,2,0],[600,3,450],[1050,3,600]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[2400,2,0],[3000,3,450],[3450,3,600]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[4800,1,300],[5400,0,300],[6000,3,300]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[7200,1,300],[7800,0,300],[8400,3,300]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[9600,1,150],[10200,3,0],[10500,0,0],[10800,1,450]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[12000,1,150],[12600,3,0],[12900,0,0],[13200,1,450]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[14400,3,0],[14700,1,0],[15300,0,0],[15600,2,300]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[16800,3,0],[17100,1,0],[17700,0,0],[18000,2,300]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[19200,0,0],[19500,3,0],[19800,1,750]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[21600,0,0],[21900,3,0],[22200,1,750]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[24000,1,0],[24300,3,0],[24600,0,750]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[26700,3,0],[27000,0,750],[26400,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[28800,2,0],[29100,3,0],[29400,0,1050]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[31200,2,0],[31500,3,0],[31800,0,1050]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[33600,0,0],[33900,3,0],[34500,2,0],[34800,1,450]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[36000,0,0],[36300,3,0],[36900,2,0],[37200,1,450]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[38400,2,450],[39000,3,300],[39600,0,450]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[40800,2,450],[41400,3,300],[42000,0,450]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[43200,1,0],[43800,2,0],[44400,1,0],[44550,1,0],[44700,1,0],[45000,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[45600,1,0],[46200,2,0],[46800,1,0],[46950,1,0],[47100,1,0],[47400,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[48000,2,450],[48600,3,300],[49200,0,450]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[50400,2,450],[51000,3,300],[51600,0,450]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[52800,3,1650]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[55200,3,1650],[55650,4,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[57600,2,0],[57900,3,0],[58200,0,1050]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[60000,2,0],[60300,3,0],[60600,0,1050],[62100,6,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[62400,0,0],[62700,3,0],[63300,2,0],[63600,1,450],[64500,6,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[64800,0,0],[65100,3,0],[65700,2,0],[66000,1,450]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[67200,2,0],[67500,3,0],[67800,0,0],[68100,2,0],[68400,1,450]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[69600,2,0],[69900,3,0],[70200,0,0],[70500,2,0],[70800,1,450],[71700,6,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[72000,0,0],[72300,3,0],[72900,2,0],[73200,1,450],[74100,6,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[74400,0,0],[74700,3,0],[75300,2,0],[75600,1,450]]},{"lengthInSteps":16,"bpm":100,"changeBPM":false,"mustHitSection":true,"sectionNotes":[],"typeOfSection":0}],"bpm":100,"sections":0},"bpm":100,"sections":33,"notes":[{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[0,2,0],[600,3,450],[1050,3,600]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[2400,2,0],[3000,3,450],[3450,3,600]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[4800,1,300],[5400,0,300],[6000,3,300]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[7200,1,300],[7800,0,300],[8400,3,300]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[9600,1,150],[10200,3,0],[10500,0,0],[10800,1,450]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[12000,1,150],[12600,3,0],[12900,0,0],[13200,1,450]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[14400,3,0],[14700,1,0],[15300,0,0],[15600,2,300]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[16800,3,0],[17100,1,0],[17700,0,0],[18000,2,300]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[19200,0,0],[19500,3,0],[19800,1,750]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[21600,0,0],[21900,3,0],[22200,1,750]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[24000,1,0],[24300,3,0],[24600,0,750]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[26700,3,0],[27000,0,750],[26400,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[28800,2,0],[29100,3,0],[29400,0,1050]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[31200,2,0],[31500,3,0],[31800,0,1050]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[33600,0,0],[33900,3,0],[34500,2,0],[34800,1,450]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[36000,0,0],[36300,3,0],[36900,2,0],[37200,1,450]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[38400,2,450],[39000,3,300],[39600,0,450]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[40800,2,450],[41400,3,300],[42000,0,450]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[43200,1,0],[43800,2,0],[44400,1,0],[44550,1,0],[44700,1,0],[45000,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[45600,1,0],[46200,2,0],[46800,1,0],[46950,1,0],[47100,1,0],[47400,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[48000,2,450],[48600,3,300],[49200,0,450]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[50400,2,450],[51000,3,300],[51600,0,450]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[52800,3,1650]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[55200,3,1650],[55650,4,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[57600,2,0],[57900,3,0],[58200,0,1050]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[60000,2,0],[60300,3,0],[60600,0,1050],[62100,6,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[62400,0,0],[62700,3,0],[63300,2,0],[63600,1,450],[64500,6,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[64800,0,0],[65100,3,0],[65700,2,0],[66000,1,450]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[67200,2,0],[67500,3,0],[67800,0,0],[68100,2,0],[68400,1,450]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[69600,2,0],[69900,3,0],[70200,0,0],[70500,2,0],[70800,1,450],[71700,6,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[72000,0,0],[72300,3,0],[72900,2,0],[73200,1,450],[74100,6,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[74400,0,0],[74700,3,0],[75300,2,0],[75600,1,450]]},{"lengthInSteps":16,"bpm":100,"changeBPM":false,"mustHitSection":true,"sectionNotes":[],"typeOfSection":0}]}
\ No newline at end of file
diff --git a/assets/data/dadbattle/dadbattle-easy.json b/assets/data/dadbattle/dadbattle-easy.json
new file mode 100644
index 0000000..3360c82
--- /dev/null
+++ b/assets/data/dadbattle/dadbattle-easy.json
@@ -0,0 +1 @@
+{"song":{"song":"Dadbattle","bpm":180,"sections":45,"notes":[{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[10667,2,0],[11000,0,0],[11333,2,0],[11750,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[12000,2,0],[12167,3,0],[12333,0,0],[12667,2,0],[13083,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[13333.666666666666,2,0],[13666.666666666666,0,0],[13999.666666666666,2,0],[14416.666666666666,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[14666.666666666666,2,0],[14833.666666666666,3,0],[14999.666666666666,0,0],[15333.666666666666,2,0],[15749.666666666666,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[16000,1,0],[16333,0,0],[16917,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[17348,1,0],[17750,0,0],[18083,3,0],[18417,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[18666.666666666668,1,0],[18999.666666666668,0,0],[19583.666666666668,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[20014.666666666668,1,0],[20014.666666666668,1,0],[20416.666666666668,0,0],[20749.666666666668,3,0],[21083.666666666668,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[21750,2,0],[22083,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[22833,1,0],[23250,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[24417,2,0],[24750,1,0],[25000,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[25342,2,0],[25583,0,0],[25917,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[27083.333333333332,2,0],[27416.333333333332,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[28166.333333333332,1,0],[28583.333333333332,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[29750.333333333332,2,0],[30083.333333333332,1,0],[30333.333333333332,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[30675.333333333332,2,0],[30916.333333333332,0,0],[31250.333333333332,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[32167,0,0],[32750,1,0],[33000,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[33500,2,0],[34083,2,0],[34417,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[34669,0,0],[35000,1,0],[35333,3,0],[35667,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[36008,2,0],[36333,3,0],[36750,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[37583,1,0],[38083,0,0],[38333,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[38679,0,0],[39167,0,0],[39333,2,0],[39500,3,0],[39667,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[40167,0,0],[40500,1,0],[40917,3,0],[41083,1,0],[41250,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[41337,4,0],[41750,6,0],[42083,6,0],[42417,4,0],[41348,0,0],[41750,0,0],[42167,2,0],[42333,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[42833.666666666664,0,0],[43416.666666666664,1,0],[43666.666666666664,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[44166.666666666664,2,0],[44749.666666666664,2,0],[45083.666666666664,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[45335.666666666664,0,0],[45666.666666666664,1,0],[45999.666666666664,3,0],[46333.666666666664,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[46674.666666666664,2,0],[46999.666666666664,3,0],[47416.666666666664,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[48249.666666666664,1,0],[48749.666666666664,0,0],[48999.666666666664,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[49345.666666666664,0,0],[49833.666666666664,0,0],[49999.666666666664,2,0],[50166.666666666664,3,0],[50333.666666666664,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[50833.666666666664,0,0],[51166.666666666664,1,0],[51583.666666666664,3,0],[51749.666666666664,1,0],[51916.666666666664,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[52014.666666666664,0,0],[52417,2,0],[52750,3,0],[53000,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[53333.666666666664,2,0],[53666.666666666664,0,0],[53999.666666666664,2,0],[54416.666666666664,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[54666.666666666664,2,0],[54833.666666666664,3,0],[54999.666666666664,0,0],[55333.666666666664,2,0],[55749.666666666664,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[56000.33333333333,2,0],[56333.33333333333,0,0],[56666.33333333333,2,0],[57083.33333333333,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[57333.33333333333,2,0],[57500.33333333333,3,0],[57666.33333333333,0,0],[58000.33333333333,2,0],[58416.33333333333,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[58666.666666666664,1,0],[58999.666666666664,0,0],[59583.666666666664,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[60014.666666666664,1,0],[60416.666666666664,0,0],[60749.666666666664,3,0],[61083.666666666664,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[61333.33333333333,1,0],[61666.33333333333,0,0],[62250.33333333333,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[62681.33333333333,1,0],[63083.33333333333,0,0],[63416.33333333333,3,0],[63750.33333333333,3,0],[62667,4,0],[62833,5,0],[63000,6,0],[63167,7,0],[63333,6,0],[63500,5,0],[63667,4,0],[63833,5,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[64416.666666666664,2,0],[64583.666666666664,1,0],[64749.666666666664,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[65499.666666666664,1,0],[65666.66666666666,3,0],[65916.66666666666,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[67083.66666666666,2,0],[67666.66666666666,0,0],[67833.66666666666,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[68003.66666666666,4,0],[68416.66666666666,6,0],[68749.66666666666,6,0],[69083.66666666666,4,0],[68014.66666666666,0,0],[68416.66666666666,0,0],[68833.66666666666,2,0],[68999.66666666666,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[69750,2,0],[69917,1,0],[70083,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[70833,1,0],[71000,3,0],[71250,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[72417,2,0],[72750,1,0],[73000,0,0],[73167,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[73342,2,0],[73500,3,0],[73750,1,0],[73917,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[74667,2,0],[75000,0,0],[75333,2,0],[75750,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[76000,2,0],[76333,0,0],[77000,2,0],[76667,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[77333.66666666667,2,0],[77666.66666666667,0,0],[77999.66666666667,2,0],[78416.66666666667,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[78666.66666666667,2,0],[78999.66666666667,0,0],[79333.66666666667,2,0],[79666.66666666667,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[80000,1,0],[80333,0,0],[80500,3,0],[80667,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[81348,1,0],[81667,1,0],[82000,1,0]]},{"lengthInSteps":16,"bpm":180,"changeBPM":false,"mustHitSection":true,"sectionNotes":[[82666.66666666667,1,0],[82999.66666666667,0,0],[83166.66666666667,3,0],[83333.66666666667,1,0]],"typeOfSection":0},{"lengthInSteps":16,"bpm":180,"changeBPM":false,"mustHitSection":true,"sectionNotes":[[84014.66666666667,1,0],[84333.66666666667,1,0],[84666.66666666667,1,0]],"typeOfSection":0},{"lengthInSteps":16,"bpm":180,"changeBPM":false,"mustHitSection":true,"sectionNotes":[],"typeOfSection":0}],"needsVoices":true,"speed":1.2999999999999998,"player1":"bf","player2":"dad"},"bpm":180,"sections":65,"notes":[{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[10667,2,0],[11000,0,0],[11333,2,0],[11750,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[12000,2,0],[12167,3,0],[12333,0,0],[12667,2,0],[13083,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[13333.666666666666,2,0],[13666.666666666666,0,0],[13999.666666666666,2,0],[14416.666666666666,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[14666.666666666666,2,0],[14833.666666666666,3,0],[14999.666666666666,0,0],[15333.666666666666,2,0],[15749.666666666666,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[16000,1,0],[16333,0,0],[16917,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[17348,1,0],[17750,0,0],[18083,3,0],[18417,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[18666.666666666668,1,0],[18999.666666666668,0,0],[19583.666666666668,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[20014.666666666668,1,0],[20014.666666666668,1,0],[20416.666666666668,0,0],[20749.666666666668,3,0],[21083.666666666668,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[21750,2,0],[22083,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[22833,1,0],[23250,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[24417,2,0],[24750,1,0],[25000,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[25342,2,0],[25583,0,0],[25917,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[27083.333333333332,2,0],[27416.333333333332,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[28166.333333333332,1,0],[28583.333333333332,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[29750.333333333332,2,0],[30083.333333333332,1,0],[30333.333333333332,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[30675.333333333332,2,0],[30916.333333333332,0,0],[31250.333333333332,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[32167,0,0],[32750,1,0],[33000,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[33500,2,0],[34083,2,0],[34417,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[34669,0,0],[35000,1,0],[35333,3,0],[35667,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[36008,2,0],[36333,3,0],[36750,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[37583,1,0],[38083,0,0],[38333,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[38679,0,0],[39167,0,0],[39333,2,0],[39500,3,0],[39667,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[40167,0,0],[40500,1,0],[40917,3,0],[41083,1,0],[41250,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[41337,4,0],[41750,6,0],[42083,6,0],[42417,4,0],[41348,0,0],[41750,0,0],[42167,2,0],[42333,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[42833.666666666664,0,0],[43416.666666666664,1,0],[43666.666666666664,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[44166.666666666664,2,0],[44749.666666666664,2,0],[45083.666666666664,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[45335.666666666664,0,0],[45666.666666666664,1,0],[45999.666666666664,3,0],[46333.666666666664,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[46674.666666666664,2,0],[46999.666666666664,3,0],[47416.666666666664,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[48249.666666666664,1,0],[48749.666666666664,0,0],[48999.666666666664,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[49345.666666666664,0,0],[49833.666666666664,0,0],[49999.666666666664,2,0],[50166.666666666664,3,0],[50333.666666666664,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[50833.666666666664,0,0],[51166.666666666664,1,0],[51583.666666666664,3,0],[51749.666666666664,1,0],[51916.666666666664,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[52014.666666666664,0,0],[52417,2,0],[52750,3,0],[53000,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[53333.666666666664,2,0],[53666.666666666664,0,0],[53999.666666666664,2,0],[54416.666666666664,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[54666.666666666664,2,0],[54833.666666666664,3,0],[54999.666666666664,0,0],[55333.666666666664,2,0],[55749.666666666664,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[56000.33333333333,2,0],[56333.33333333333,0,0],[56666.33333333333,2,0],[57083.33333333333,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[57333.33333333333,2,0],[57500.33333333333,3,0],[57666.33333333333,0,0],[58000.33333333333,2,0],[58416.33333333333,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[58666.666666666664,1,0],[58999.666666666664,0,0],[59583.666666666664,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[60014.666666666664,1,0],[60416.666666666664,0,0],[60749.666666666664,3,0],[61083.666666666664,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[61333.33333333333,1,0],[61666.33333333333,0,0],[62250.33333333333,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[62681.33333333333,1,0],[63083.33333333333,0,0],[63416.33333333333,3,0],[63750.33333333333,3,0],[62667,4,0],[62833,5,0],[63000,6,0],[63167,7,0],[63333,6,0],[63500,5,0],[63667,4,0],[63833,5,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[64416.666666666664,2,0],[64583.666666666664,1,0],[64749.666666666664,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[65499.666666666664,1,0],[65666.66666666666,3,0],[65916.66666666666,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[67083.66666666666,2,0],[67666.66666666666,0,0],[67833.66666666666,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[68003.66666666666,4,0],[68416.66666666666,6,0],[68749.66666666666,6,0],[69083.66666666666,4,0],[68014.66666666666,0,0],[68416.66666666666,0,0],[68833.66666666666,2,0],[68999.66666666666,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[69750,2,0],[69917,1,0],[70083,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[70833,1,0],[71000,3,0],[71250,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[72417,2,0],[72750,1,0],[73000,0,0],[73167,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[73342,2,0],[73500,3,0],[73750,1,0],[73917,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[74667,2,0],[75000,0,0],[75333,2,0],[75750,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[76000,2,0],[76333,0,0],[77000,2,0],[76667,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[77333.66666666667,2,0],[77666.66666666667,0,0],[77999.66666666667,2,0],[78416.66666666667,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[78666.66666666667,2,0],[78999.66666666667,0,0],[79333.66666666667,2,0],[79666.66666666667,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[80000,1,0],[80333,0,0],[80500,3,0],[80667,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[81348,1,0],[81667,1,0],[82000,1,0]]},{"lengthInSteps":16,"bpm":180,"changeBPM":false,"mustHitSection":true,"sectionNotes":[[82666.66666666667,1,0],[82999.66666666667,0,0],[83166.66666666667,3,0],[83333.66666666667,1,0]],"typeOfSection":0},{"lengthInSteps":16,"bpm":180,"changeBPM":false,"mustHitSection":true,"sectionNotes":[[84014.66666666667,1,0],[84333.66666666667,1,0],[84666.66666666667,1,0]],"typeOfSection":0},{"lengthInSteps":16,"bpm":180,"changeBPM":false,"mustHitSection":true,"sectionNotes":[],"typeOfSection":0}]}
\ No newline at end of file
diff --git a/assets/data/dadbattle/dadbattle-hard.json b/assets/data/dadbattle/dadbattle-hard.json
new file mode 100644
index 0000000..aa14604
--- /dev/null
+++ b/assets/data/dadbattle/dadbattle-hard.json
@@ -0,0 +1 @@
+{"song":{"song":"Dadbattle","bpm":180,"sections":45,"notes":[{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[10667,2,0],[11000,0,0],[11167,1,0],[11333,2,0],[11750,0,0],[11833,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[12000,2,0],[12167,3,0],[12333,0,0],[12500,1,0],[12667,2,0],[13083,0,0],[13250,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[13333.666666666666,2,0],[13666.666666666666,0,0],[13833.666666666666,1,0],[13999.666666666666,2,0],[14416.666666666666,0,0],[14499.666666666666,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[14666.666666666666,2,0],[14833.666666666666,3,0],[14999.666666666666,0,0],[15166.666666666666,1,0],[15333.666666666666,2,0],[15749.666666666666,0,0],[15916.666666666666,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[16000,1,0],[16333,0,0],[16500,3,0],[16667,1,0],[16917,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[17348,1,0],[17750,0,0],[17917,0,0],[18083,3,0],[18250,3,0],[18417,3,0],[18583,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[18666.666666666668,1,0],[18999.666666666668,0,0],[19166.666666666668,3,0],[19333.666666666668,1,0],[19583.666666666668,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[20014.666666666668,1,0],[20416.666666666668,0,0],[20583.666666666668,0,0],[20749.666666666668,3,0],[20916.666666666668,3,0],[21083.666666666668,3,0],[21249.666666666668,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[21750,2,0],[21917,1,0],[22083,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[22833,1,0],[23000,3,0],[23250,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[24417,2,0],[24750,1,0],[25000,0,0],[25167,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[25342,2,0],[25500,3,0],[25583,0,0],[25750,1,0],[25917,3,0],[26083,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[27083.333333333332,2,0],[27250.333333333332,1,0],[27416.333333333332,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[28166.333333333332,1,0],[28333.333333333332,3,0],[28583.333333333332,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[29750.333333333332,2,0],[30083.333333333332,1,0],[30333.333333333332,0,0],[30500.333333333332,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[30675.333333333332,2,0],[30833.333333333332,3,0],[30916.333333333332,0,0],[31083.333333333332,1,0],[31250.333333333332,3,0],[31416.333333333332,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[32167,0,0],[32333,3,0],[32500,2,0],[32750,1,0],[33000,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[33500,2,0],[33667,3,0],[33833,1,0],[34083,2,0],[34417,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[34669,0,0],[35000,1,0],[35333,3,0],[35667,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[36008,2,0],[36333,3,0],[36750,0,0],[36750,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[37583,1,0],[37750,3,0],[37917,2,0],[38083,0,0],[38167,2,0],[38333,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[38679,0,0],[38750,3,0],[38833,0,0],[39000,1,0],[39167,0,0],[39333,2,0],[39500,3,0],[39667,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[40167,0,0],[40333,3,0],[40500,1,0],[40750,2,0],[40917,3,0],[41083,1,0],[41250,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[41337,4,0],[41750,6,0],[41583,5,0],[41917,7,0],[42083,6,0],[42250,5,0],[42417,4,0],[42583,5,0],[41348,0,0],[41583,1,0],[41750,0,0],[41917,3,0],[42167,2,0],[42333,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[42833.666666666664,0,0],[42999.666666666664,3,0],[43166.666666666664,2,0],[43416.666666666664,1,0],[43666.666666666664,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[44166.666666666664,2,0],[44333.666666666664,3,0],[44499.666666666664,1,0],[44749.666666666664,2,0],[45083.666666666664,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[45335.666666666664,0,0],[45666.666666666664,1,0],[45999.666666666664,3,0],[46333.666666666664,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[46674.666666666664,2,0],[46999.666666666664,3,0],[47416.666666666664,0,0],[47416.666666666664,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[48249.666666666664,1,0],[48416.666666666664,3,0],[48583.666666666664,2,0],[48749.666666666664,0,0],[48833.666666666664,2,0],[48999.666666666664,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[49345.666666666664,0,0],[49416.666666666664,3,0],[49499.666666666664,0,0],[49666.666666666664,1,0],[49833.666666666664,0,0],[49999.666666666664,2,0],[50166.666666666664,3,0],[50333.666666666664,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[50833.666666666664,0,0],[50999.666666666664,3,0],[51166.666666666664,1,0],[51416.666666666664,2,0],[51583.666666666664,3,0],[51749.666666666664,1,0],[51916.666666666664,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[52014.666666666664,0,0],[52250,0,0],[52417,2,0],[52583,2,0],[52750,3,0],[53000,1,0],[53000,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[53333.666666666664,2,0],[53666.666666666664,0,0],[53833.666666666664,1,0],[53999.666666666664,2,0],[54416.666666666664,0,0],[54499.666666666664,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[54666.666666666664,2,0],[54833.666666666664,3,0],[54999.666666666664,0,0],[55166.666666666664,1,0],[55333.666666666664,2,0],[55749.666666666664,0,0],[55916.666666666664,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[56000.33333333333,2,0],[56333.33333333333,0,0],[56500.33333333333,1,0],[56666.33333333333,2,0],[57083.33333333333,0,0],[57166.33333333333,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[57333.33333333333,2,0],[57500.33333333333,3,0],[57666.33333333333,0,0],[57833.33333333333,1,0],[58000.33333333333,2,0],[58416.33333333333,0,0],[58583.33333333333,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[58666.666666666664,1,0],[58999.666666666664,0,0],[59166.666666666664,3,0],[59333.666666666664,1,0],[59583.666666666664,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[60014.666666666664,1,0],[60416.666666666664,0,0],[60583.666666666664,0,0],[60749.666666666664,3,0],[60916.666666666664,3,0],[61083.666666666664,3,0],[61249.666666666664,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[61333.33333333333,1,0],[61666.33333333333,0,0],[61833.33333333333,3,0],[62000.33333333333,1,0],[62250.33333333333,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[62681.33333333333,1,0],[63083.33333333333,0,0],[63250.33333333333,0,0],[63416.33333333333,3,0],[63583.33333333333,3,0],[63750.33333333333,3,0],[63916.33333333333,3,0],[62667,4,0],[62833,5,0],[63000,6,0],[63167,7,0],[63333,6,0],[63500,5,0],[63667,4,0],[63833,5,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[64416.666666666664,2,0],[64583.666666666664,1,0],[64749.666666666664,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[65499.666666666664,1,0],[65666.66666666666,3,0],[65916.66666666666,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[67083.66666666666,2,0],[67416.66666666666,1,0],[67666.66666666666,0,0],[67833.66666666666,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[68008.66666666666,2,0],[68166.66666666666,3,0],[68249.66666666666,0,0],[68416.66666666666,1,0],[68583.66666666666,3,0],[68749.66666666666,2,0],[68000,4,0],[68167,5,0],[68333,6,0],[68500,7,0],[68667,6,0],[68833,5,0],[69000,4,0],[69167,5,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[69750,2,0],[69917,1,0],[70083,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[70833,1,0],[71000,3,0],[71250,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[72417,2,0],[72750,1,0],[73000,0,0],[73167,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[73342,2,0],[73500,3,0],[73583,0,0],[73750,1,0],[73917,3,0],[74083,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[74667,2,0],[75000,0,0],[75167,1,0],[75333,2,0],[75750,0,0],[75833,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[76000,2,0],[76167,3,0],[76333,0,0],[76500,1,0],[76667,2,0],[77000,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[77333.66666666667,2,0],[77666.66666666667,0,0],[77833.66666666667,1,0],[77999.66666666667,2,0],[78416.66666666667,0,0],[78499.66666666667,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[78666.66666666667,2,0],[78833.66666666667,3,0],[78999.66666666667,0,0],[79166.66666666667,1,0],[79333.66666666667,2,0],[79666.66666666667,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[80000,1,0],[80333,0,0],[80500,3,0],[80667,1,0],[80917,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[81348,1,0],[81667,1,0],[82000,1,0]]},{"lengthInSteps":16,"bpm":180,"changeBPM":false,"mustHitSection":true,"sectionNotes":[[82666.66666666667,1,0],[82999.66666666667,0,0],[83166.66666666667,3,0],[83333.66666666667,1,0],[83583.66666666667,2,0]],"typeOfSection":0},{"lengthInSteps":16,"bpm":180,"changeBPM":false,"mustHitSection":true,"sectionNotes":[[84014.66666666667,1,0],[84333.66666666667,1,0],[84666.66666666667,1,0]],"typeOfSection":0},{"lengthInSteps":16,"bpm":180,"changeBPM":false,"mustHitSection":true,"sectionNotes":[],"typeOfSection":0},{"lengthInSteps":16,"bpm":180,"changeBPM":false,"mustHitSection":true,"sectionNotes":[],"typeOfSection":0},{"lengthInSteps":16,"bpm":180,"changeBPM":false,"mustHitSection":true,"sectionNotes":[],"typeOfSection":0}],"needsVoices":true,"speed":3.0000000000000013,"player1":"bf","player2":"dad"},"bpm":180,"sections":67,"notes":[{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[10667,2,0],[11000,0,0],[11167,1,0],[11333,2,0],[11750,0,0],[11833,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[12000,2,0],[12167,3,0],[12333,0,0],[12500,1,0],[12667,2,0],[13083,0,0],[13250,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[13333.666666666666,2,0],[13666.666666666666,0,0],[13833.666666666666,1,0],[13999.666666666666,2,0],[14416.666666666666,0,0],[14499.666666666666,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[14666.666666666666,2,0],[14833.666666666666,3,0],[14999.666666666666,0,0],[15166.666666666666,1,0],[15333.666666666666,2,0],[15749.666666666666,0,0],[15916.666666666666,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[16000,1,0],[16333,0,0],[16500,3,0],[16667,1,0],[16917,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[17348,1,0],[17750,0,0],[17917,0,0],[18083,3,0],[18250,3,0],[18417,3,0],[18583,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[18666.666666666668,1,0],[18999.666666666668,0,0],[19166.666666666668,3,0],[19333.666666666668,1,0],[19583.666666666668,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[20014.666666666668,1,0],[20416.666666666668,0,0],[20583.666666666668,0,0],[20749.666666666668,3,0],[20916.666666666668,3,0],[21083.666666666668,3,0],[21249.666666666668,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[21750,2,0],[21917,1,0],[22083,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[22833,1,0],[23000,3,0],[23250,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[24417,2,0],[24750,1,0],[25000,0,0],[25167,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[25342,2,0],[25500,3,0],[25583,0,0],[25750,1,0],[25917,3,0],[26083,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[27083.333333333332,2,0],[27250.333333333332,1,0],[27416.333333333332,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[28166.333333333332,1,0],[28333.333333333332,3,0],[28583.333333333332,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[29750.333333333332,2,0],[30083.333333333332,1,0],[30333.333333333332,0,0],[30500.333333333332,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[30675.333333333332,2,0],[30833.333333333332,3,0],[30916.333333333332,0,0],[31083.333333333332,1,0],[31250.333333333332,3,0],[31416.333333333332,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[32167,0,0],[32333,3,0],[32500,2,0],[32750,1,0],[33000,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[33500,2,0],[33667,3,0],[33833,1,0],[34083,2,0],[34417,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[34669,0,0],[35000,1,0],[35333,3,0],[35667,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[36008,2,0],[36333,3,0],[36750,0,0],[36750,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[37583,1,0],[37750,3,0],[37917,2,0],[38083,0,0],[38167,2,0],[38333,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[38679,0,0],[38750,3,0],[38833,0,0],[39000,1,0],[39167,0,0],[39333,2,0],[39500,3,0],[39667,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[40167,0,0],[40333,3,0],[40500,1,0],[40750,2,0],[40917,3,0],[41083,1,0],[41250,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[41337,4,0],[41750,6,0],[41583,5,0],[41917,7,0],[42083,6,0],[42250,5,0],[42417,4,0],[42583,5,0],[41348,0,0],[41583,1,0],[41750,0,0],[41917,3,0],[42167,2,0],[42333,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[42833.666666666664,0,0],[42999.666666666664,3,0],[43166.666666666664,2,0],[43416.666666666664,1,0],[43666.666666666664,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[44166.666666666664,2,0],[44333.666666666664,3,0],[44499.666666666664,1,0],[44749.666666666664,2,0],[45083.666666666664,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[45335.666666666664,0,0],[45666.666666666664,1,0],[45999.666666666664,3,0],[46333.666666666664,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[46674.666666666664,2,0],[46999.666666666664,3,0],[47416.666666666664,0,0],[47416.666666666664,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[48249.666666666664,1,0],[48416.666666666664,3,0],[48583.666666666664,2,0],[48749.666666666664,0,0],[48833.666666666664,2,0],[48999.666666666664,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[49345.666666666664,0,0],[49416.666666666664,3,0],[49499.666666666664,0,0],[49666.666666666664,1,0],[49833.666666666664,0,0],[49999.666666666664,2,0],[50166.666666666664,3,0],[50333.666666666664,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[50833.666666666664,0,0],[50999.666666666664,3,0],[51166.666666666664,1,0],[51416.666666666664,2,0],[51583.666666666664,3,0],[51749.666666666664,1,0],[51916.666666666664,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[52014.666666666664,0,0],[52250,0,0],[52417,2,0],[52583,2,0],[52750,3,0],[53000,1,0],[53000,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[53333.666666666664,2,0],[53666.666666666664,0,0],[53833.666666666664,1,0],[53999.666666666664,2,0],[54416.666666666664,0,0],[54499.666666666664,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[54666.666666666664,2,0],[54833.666666666664,3,0],[54999.666666666664,0,0],[55166.666666666664,1,0],[55333.666666666664,2,0],[55749.666666666664,0,0],[55916.666666666664,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[56000.33333333333,2,0],[56333.33333333333,0,0],[56500.33333333333,1,0],[56666.33333333333,2,0],[57083.33333333333,0,0],[57166.33333333333,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[57333.33333333333,2,0],[57500.33333333333,3,0],[57666.33333333333,0,0],[57833.33333333333,1,0],[58000.33333333333,2,0],[58416.33333333333,0,0],[58583.33333333333,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[58666.666666666664,1,0],[58999.666666666664,0,0],[59166.666666666664,3,0],[59333.666666666664,1,0],[59583.666666666664,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[60014.666666666664,1,0],[60416.666666666664,0,0],[60583.666666666664,0,0],[60749.666666666664,3,0],[60916.666666666664,3,0],[61083.666666666664,3,0],[61249.666666666664,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[61333.33333333333,1,0],[61666.33333333333,0,0],[61833.33333333333,3,0],[62000.33333333333,1,0],[62250.33333333333,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[62681.33333333333,1,0],[63083.33333333333,0,0],[63250.33333333333,0,0],[63416.33333333333,3,0],[63583.33333333333,3,0],[63750.33333333333,3,0],[63916.33333333333,3,0],[62667,4,0],[62833,5,0],[63000,6,0],[63167,7,0],[63333,6,0],[63500,5,0],[63667,4,0],[63833,5,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[64416.666666666664,2,0],[64583.666666666664,1,0],[64749.666666666664,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[65499.666666666664,1,0],[65666.66666666666,3,0],[65916.66666666666,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[67083.66666666666,2,0],[67416.66666666666,1,0],[67666.66666666666,0,0],[67833.66666666666,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[68008.66666666666,2,0],[68166.66666666666,3,0],[68249.66666666666,0,0],[68416.66666666666,1,0],[68583.66666666666,3,0],[68749.66666666666,2,0],[68000,4,0],[68167,5,0],[68333,6,0],[68500,7,0],[68667,6,0],[68833,5,0],[69000,4,0],[69167,5,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[69750,2,0],[69917,1,0],[70083,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[70833,1,0],[71000,3,0],[71250,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[72417,2,0],[72750,1,0],[73000,0,0],[73167,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[73342,2,0],[73500,3,0],[73583,0,0],[73750,1,0],[73917,3,0],[74083,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[74667,2,0],[75000,0,0],[75167,1,0],[75333,2,0],[75750,0,0],[75833,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[76000,2,0],[76167,3,0],[76333,0,0],[76500,1,0],[76667,2,0],[77000,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[77333.66666666667,2,0],[77666.66666666667,0,0],[77833.66666666667,1,0],[77999.66666666667,2,0],[78416.66666666667,0,0],[78499.66666666667,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[78666.66666666667,2,0],[78833.66666666667,3,0],[78999.66666666667,0,0],[79166.66666666667,1,0],[79333.66666666667,2,0],[79666.66666666667,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[80000,1,0],[80333,0,0],[80500,3,0],[80667,1,0],[80917,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[81348,1,0],[81667,1,0],[82000,1,0]]},{"lengthInSteps":16,"bpm":180,"changeBPM":false,"mustHitSection":true,"sectionNotes":[[82666.66666666667,1,0],[82999.66666666667,0,0],[83166.66666666667,3,0],[83333.66666666667,1,0],[83583.66666666667,2,0]],"typeOfSection":0},{"lengthInSteps":16,"bpm":180,"changeBPM":false,"mustHitSection":true,"sectionNotes":[[84014.66666666667,1,0],[84333.66666666667,1,0],[84666.66666666667,1,0]],"typeOfSection":0},{"lengthInSteps":16,"bpm":180,"changeBPM":false,"mustHitSection":true,"sectionNotes":[],"typeOfSection":0},{"lengthInSteps":16,"bpm":180,"changeBPM":false,"mustHitSection":true,"sectionNotes":[],"typeOfSection":0},{"lengthInSteps":16,"bpm":180,"changeBPM":false,"mustHitSection":true,"sectionNotes":[],"typeOfSection":0}]}
\ No newline at end of file
diff --git a/assets/data/dadbattle/dadbattle.json b/assets/data/dadbattle/dadbattle.json
index 9f12303..a496d54 100644
--- a/assets/data/dadbattle/dadbattle.json
+++ b/assets/data/dadbattle/dadbattle.json
@@ -1 +1 @@
-{"song":{"song":"Dadbattle","bpm":180,"sections":45,"notes":[{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[10667,2,0],[11000,0,0],[11167,1,0],[11333,2,0],[11750,0,0],[11833,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[12000,2,0],[12167,3,0],[12333,0,0],[12500,1,0],[12667,2,0],[13083,0,0],[13250,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[13333.666666666666,2,0],[13666.666666666666,0,0],[13833.666666666666,1,0],[13999.666666666666,2,0],[14416.666666666666,0,0],[14499.666666666666,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[14666.666666666666,2,0],[14833.666666666666,3,0],[14999.666666666666,0,0],[15166.666666666666,1,0],[15333.666666666666,2,0],[15749.666666666666,0,0],[15916.666666666666,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[16000,1,0],[16333,0,0],[16500,3,0],[16667,1,0],[16917,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[17333,1,0],[17348,1,0],[17750,0,0],[17917,0,0],[18083,3,0],[18250,3,0],[18417,3,0],[18583,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[18666.666666666668,1,0],[18999.666666666668,0,0],[19166.666666666668,3,0],[19333.666666666668,1,0],[19583.666666666668,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[19999.666666666668,1,0],[20014.666666666668,1,0],[20416.666666666668,0,0],[20583.666666666668,0,0],[20749.666666666668,3,0],[20916.666666666668,3,0],[21083.666666666668,3,0],[21249.666666666668,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[21750,2,0],[21917,1,0],[22083,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[22833,1,0],[23000,3,0],[23250,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[24417,2,0],[24750,1,0],[25000,0,0],[25167,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[25333,2,0],[25342,2,0],[25500,3,0],[25583,0,0],[25750,1,0],[25917,3,0],[26083,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[27083.333333333332,2,0],[27250.333333333332,1,0],[27416.333333333332,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[28166.333333333332,1,0],[28333.333333333332,3,0],[28583.333333333332,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[29750.333333333332,2,0],[30083.333333333332,1,0],[30333.333333333332,0,0],[30500.333333333332,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[30666.333333333332,2,0],[30675.333333333332,2,0],[30833.333333333332,3,0],[30916.333333333332,0,0],[31083.333333333332,1,0],[31250.333333333332,3,0],[31416.333333333332,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[32167,0,0],[32333,3,0],[32500,2,0],[32750,1,0],[33000,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[33500,2,0],[33667,3,0],[33833,1,0],[34083,2,0],[34417,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[34669,0,0],[35000,1,0],[35333,3,0],[35667,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[36008,2,0],[36333,3,0],[36750,0,0],[36750,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[37583,1,0],[37750,3,0],[37917,2,0],[38083,0,0],[38167,2,0],[38333,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[38679,0,0],[38750,3,0],[38833,0,0],[39000,1,0],[39167,0,0],[39333,2,0],[39500,3,0],[39667,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[40167,0,0],[40333,3,0],[40500,1,0],[40750,2,0],[40917,3,0],[41083,1,0],[41250,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[41337,4,0],[41750,6,0],[41583,5,0],[41917,7,0],[42083,6,0],[42250,5,0],[42417,4,0],[42583,5,0],[41348,0,0],[41583,1,0],[41750,0,0],[41917,3,0],[42167,2,0],[42333,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[42833.666666666664,0,0],[42999.666666666664,3,0],[43166.666666666664,2,0],[43416.666666666664,1,0],[43666.666666666664,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[44166.666666666664,2,0],[44333.666666666664,3,0],[44499.666666666664,1,0],[44749.666666666664,2,0],[45083.666666666664,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[45335.666666666664,0,0],[45666.666666666664,1,0],[45999.666666666664,3,0],[46333.666666666664,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[46674.666666666664,2,0],[46999.666666666664,3,0],[47416.666666666664,0,0],[47416.666666666664,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[48249.666666666664,1,0],[48416.666666666664,3,0],[48583.666666666664,2,0],[48749.666666666664,0,0],[48833.666666666664,2,0],[48999.666666666664,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[49345.666666666664,0,0],[49416.666666666664,3,0],[49499.666666666664,0,0],[49666.666666666664,1,0],[49833.666666666664,0,0],[49999.666666666664,2,0],[50166.666666666664,3,0],[50333.666666666664,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[50833.666666666664,0,0],[50999.666666666664,3,0],[51166.666666666664,1,0],[51416.666666666664,2,0],[51583.666666666664,3,0],[51749.666666666664,1,0],[51916.666666666664,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[52014.666666666664,0,0],[52250,0,0],[52417,2,0],[52583,2,0],[52750,3,0],[53000,1,0],[53000,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[53333.666666666664,2,0],[53666.666666666664,0,0],[53833.666666666664,1,0],[53999.666666666664,2,0],[54416.666666666664,0,0],[54499.666666666664,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[54666.666666666664,2,0],[54833.666666666664,3,0],[54999.666666666664,0,0],[55166.666666666664,1,0],[55333.666666666664,2,0],[55749.666666666664,0,0],[55916.666666666664,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[56000.33333333333,2,0],[56333.33333333333,0,0],[56500.33333333333,1,0],[56666.33333333333,2,0],[57083.33333333333,0,0],[57166.33333333333,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[57333,1,0],[57333.33333333333,2,0],[57500.33333333333,3,0],[57666.33333333333,0,0],[57833.33333333333,1,0],[58000.33333333333,2,0],[58416.33333333333,0,0],[58583.33333333333,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[58666.666666666664,1,0],[58999.666666666664,0,0],[59166.666666666664,3,0],[59333.666666666664,1,0],[59583.666666666664,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[59999.666666666664,1,0],[60014.666666666664,1,0],[60416.666666666664,0,0],[60583.666666666664,0,0],[60749.666666666664,3,0],[60916.666666666664,3,0],[61083.666666666664,3,0],[61249.666666666664,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[61333.33333333333,1,0],[61666.33333333333,0,0],[61833.33333333333,3,0],[62000.33333333333,1,0],[62250.33333333333,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[62666.33333333333,1,0],[62681.33333333333,1,0],[63083.33333333333,0,0],[63250.33333333333,0,0],[63416.33333333333,3,0],[63583.33333333333,3,0],[63750.33333333333,3,0],[63916.33333333333,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[64416.666666666664,2,0],[64583.666666666664,1,0],[64749.666666666664,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[65499.666666666664,1,0],[65666.66666666666,3,0],[65916.66666666666,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[67083.66666666666,2,0],[67416.66666666666,1,0],[67666.66666666666,0,0],[67833.66666666666,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[67999.66666666666,2,0],[68008.66666666666,2,0],[68166.66666666666,3,0],[68249.66666666666,0,0],[68416.66666666666,1,0],[68583.66666666666,3,0],[68749.66666666666,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[69750,2,0],[69917,1,0],[70083,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[70833,1,0],[71000,3,0],[71250,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[72417,2,0],[72750,1,0],[73000,0,0],[73167,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[73333,2,0],[73342,2,0],[73500,3,0],[73583,0,0],[73750,1,0],[73917,3,0],[74083,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]}],"needsVoices":true,"speed":1.9000000000000004,"player1":"bf","player2":"dad"},"bpm":180,"sections":62,"notes":[{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[10667,2,0],[11000,0,0],[11167,1,0],[11333,2,0],[11750,0,0],[11833,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[12000,2,0],[12167,3,0],[12333,0,0],[12500,1,0],[12667,2,0],[13083,0,0],[13250,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[13333.666666666666,2,0],[13666.666666666666,0,0],[13833.666666666666,1,0],[13999.666666666666,2,0],[14416.666666666666,0,0],[14499.666666666666,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[14666.666666666666,2,0],[14833.666666666666,3,0],[14999.666666666666,0,0],[15166.666666666666,1,0],[15333.666666666666,2,0],[15749.666666666666,0,0],[15916.666666666666,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[16000,1,0],[16333,0,0],[16500,3,0],[16667,1,0],[16917,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[17333,1,0],[17348,1,0],[17750,0,0],[17917,0,0],[18083,3,0],[18250,3,0],[18417,3,0],[18583,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[18666.666666666668,1,0],[18999.666666666668,0,0],[19166.666666666668,3,0],[19333.666666666668,1,0],[19583.666666666668,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[19999.666666666668,1,0],[20014.666666666668,1,0],[20416.666666666668,0,0],[20583.666666666668,0,0],[20749.666666666668,3,0],[20916.666666666668,3,0],[21083.666666666668,3,0],[21249.666666666668,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[21750,2,0],[21917,1,0],[22083,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[22833,1,0],[23000,3,0],[23250,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[24417,2,0],[24750,1,0],[25000,0,0],[25167,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[25333,2,0],[25342,2,0],[25500,3,0],[25583,0,0],[25750,1,0],[25917,3,0],[26083,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[27083.333333333332,2,0],[27250.333333333332,1,0],[27416.333333333332,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[28166.333333333332,1,0],[28333.333333333332,3,0],[28583.333333333332,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[29750.333333333332,2,0],[30083.333333333332,1,0],[30333.333333333332,0,0],[30500.333333333332,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[30666.333333333332,2,0],[30675.333333333332,2,0],[30833.333333333332,3,0],[30916.333333333332,0,0],[31083.333333333332,1,0],[31250.333333333332,3,0],[31416.333333333332,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[32167,0,0],[32333,3,0],[32500,2,0],[32750,1,0],[33000,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[33500,2,0],[33667,3,0],[33833,1,0],[34083,2,0],[34417,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[34669,0,0],[35000,1,0],[35333,3,0],[35667,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[36008,2,0],[36333,3,0],[36750,0,0],[36750,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[37583,1,0],[37750,3,0],[37917,2,0],[38083,0,0],[38167,2,0],[38333,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[38679,0,0],[38750,3,0],[38833,0,0],[39000,1,0],[39167,0,0],[39333,2,0],[39500,3,0],[39667,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[40167,0,0],[40333,3,0],[40500,1,0],[40750,2,0],[40917,3,0],[41083,1,0],[41250,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[41337,4,0],[41750,6,0],[41583,5,0],[41917,7,0],[42083,6,0],[42250,5,0],[42417,4,0],[42583,5,0],[41348,0,0],[41583,1,0],[41750,0,0],[41917,3,0],[42167,2,0],[42333,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[42833.666666666664,0,0],[42999.666666666664,3,0],[43166.666666666664,2,0],[43416.666666666664,1,0],[43666.666666666664,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[44166.666666666664,2,0],[44333.666666666664,3,0],[44499.666666666664,1,0],[44749.666666666664,2,0],[45083.666666666664,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[45335.666666666664,0,0],[45666.666666666664,1,0],[45999.666666666664,3,0],[46333.666666666664,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[46674.666666666664,2,0],[46999.666666666664,3,0],[47416.666666666664,0,0],[47416.666666666664,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[48249.666666666664,1,0],[48416.666666666664,3,0],[48583.666666666664,2,0],[48749.666666666664,0,0],[48833.666666666664,2,0],[48999.666666666664,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[49345.666666666664,0,0],[49416.666666666664,3,0],[49499.666666666664,0,0],[49666.666666666664,1,0],[49833.666666666664,0,0],[49999.666666666664,2,0],[50166.666666666664,3,0],[50333.666666666664,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[50833.666666666664,0,0],[50999.666666666664,3,0],[51166.666666666664,1,0],[51416.666666666664,2,0],[51583.666666666664,3,0],[51749.666666666664,1,0],[51916.666666666664,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[52014.666666666664,0,0],[52250,0,0],[52417,2,0],[52583,2,0],[52750,3,0],[53000,1,0],[53000,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[53333.666666666664,2,0],[53666.666666666664,0,0],[53833.666666666664,1,0],[53999.666666666664,2,0],[54416.666666666664,0,0],[54499.666666666664,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[54666.666666666664,2,0],[54833.666666666664,3,0],[54999.666666666664,0,0],[55166.666666666664,1,0],[55333.666666666664,2,0],[55749.666666666664,0,0],[55916.666666666664,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[56000.33333333333,2,0],[56333.33333333333,0,0],[56500.33333333333,1,0],[56666.33333333333,2,0],[57083.33333333333,0,0],[57166.33333333333,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[57333,1,0],[57333.33333333333,2,0],[57500.33333333333,3,0],[57666.33333333333,0,0],[57833.33333333333,1,0],[58000.33333333333,2,0],[58416.33333333333,0,0],[58583.33333333333,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[58666.666666666664,1,0],[58999.666666666664,0,0],[59166.666666666664,3,0],[59333.666666666664,1,0],[59583.666666666664,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[59999.666666666664,1,0],[60014.666666666664,1,0],[60416.666666666664,0,0],[60583.666666666664,0,0],[60749.666666666664,3,0],[60916.666666666664,3,0],[61083.666666666664,3,0],[61249.666666666664,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[61333.33333333333,1,0],[61666.33333333333,0,0],[61833.33333333333,3,0],[62000.33333333333,1,0],[62250.33333333333,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[62666.33333333333,1,0],[62681.33333333333,1,0],[63083.33333333333,0,0],[63250.33333333333,0,0],[63416.33333333333,3,0],[63583.33333333333,3,0],[63750.33333333333,3,0],[63916.33333333333,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[64416.666666666664,2,0],[64583.666666666664,1,0],[64749.666666666664,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[65499.666666666664,1,0],[65666.66666666666,3,0],[65916.66666666666,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[67083.66666666666,2,0],[67416.66666666666,1,0],[67666.66666666666,0,0],[67833.66666666666,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[67999.66666666666,2,0],[68008.66666666666,2,0],[68166.66666666666,3,0],[68249.66666666666,0,0],[68416.66666666666,1,0],[68583.66666666666,3,0],[68749.66666666666,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[69750,2,0],[69917,1,0],[70083,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[70833,1,0],[71000,3,0],[71250,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[72417,2,0],[72750,1,0],[73000,0,0],[73167,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[73333,2,0],[73342,2,0],[73500,3,0],[73583,0,0],[73750,1,0],[73917,3,0],[74083,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]}]}
\ No newline at end of file
+{"song":{"song":"Dadbattle","bpm":180,"sections":45,"notes":[{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[10667,2,0],[11000,0,0],[11167,1,0],[11333,2,0],[11750,0,0],[11833,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[12000,2,0],[12167,3,0],[12333,0,0],[12500,1,0],[12667,2,0],[13083,0,0],[13250,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[13333.666666666666,2,0],[13666.666666666666,0,0],[13833.666666666666,1,0],[13999.666666666666,2,0],[14416.666666666666,0,0],[14499.666666666666,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[14666.666666666666,2,0],[14833.666666666666,3,0],[14999.666666666666,0,0],[15166.666666666666,1,0],[15333.666666666666,2,0],[15749.666666666666,0,0],[15916.666666666666,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[16000,1,0],[16333,0,0],[16500,3,0],[16667,1,0],[16917,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[17348,1,0],[17750,0,0],[17917,0,0],[18083,3,0],[18250,3,0],[18417,3,0],[18583,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[18666.666666666668,1,0],[18999.666666666668,0,0],[19166.666666666668,3,0],[19333.666666666668,1,0],[19583.666666666668,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[20014.666666666668,1,0],[20416.666666666668,0,0],[20583.666666666668,0,0],[20749.666666666668,3,0],[20916.666666666668,3,0],[21083.666666666668,3,0],[21249.666666666668,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[21750,2,0],[21917,1,0],[22083,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[22833,1,0],[23000,3,0],[23250,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[24417,2,0],[24750,1,0],[25000,0,0],[25167,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[25342,2,0],[25500,3,0],[25583,0,0],[25750,1,0],[25917,3,0],[26083,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[27083.333333333332,2,0],[27250.333333333332,1,0],[27416.333333333332,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[28166.333333333332,1,0],[28333.333333333332,3,0],[28583.333333333332,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[29750.333333333332,2,0],[30083.333333333332,1,0],[30333.333333333332,0,0],[30500.333333333332,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[30675.333333333332,2,0],[30833.333333333332,3,0],[30916.333333333332,0,0],[31083.333333333332,1,0],[31250.333333333332,3,0],[31416.333333333332,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[32167,0,0],[32333,3,0],[32500,2,0],[32750,1,0],[33000,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[33500,2,0],[33667,3,0],[33833,1,0],[34083,2,0],[34417,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[34669,0,0],[35000,1,0],[35333,3,0],[35667,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[36008,2,0],[36333,3,0],[36750,0,0],[36750,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[37583,1,0],[37750,3,0],[37917,2,0],[38083,0,0],[38167,2,0],[38333,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[38679,0,0],[38750,3,0],[38833,0,0],[39000,1,0],[39167,0,0],[39333,2,0],[39500,3,0],[39667,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[40167,0,0],[40333,3,0],[40500,1,0],[40750,2,0],[40917,3,0],[41083,1,0],[41250,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[41337,4,0],[41750,6,0],[41583,5,0],[41917,7,0],[42083,6,0],[42250,5,0],[42417,4,0],[42583,5,0],[41348,0,0],[41583,1,0],[41750,0,0],[41917,3,0],[42167,2,0],[42333,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[42833.666666666664,0,0],[42999.666666666664,3,0],[43166.666666666664,2,0],[43416.666666666664,1,0],[43666.666666666664,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[44166.666666666664,2,0],[44333.666666666664,3,0],[44499.666666666664,1,0],[44749.666666666664,2,0],[45083.666666666664,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[45335.666666666664,0,0],[45666.666666666664,1,0],[45999.666666666664,3,0],[46333.666666666664,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[46674.666666666664,2,0],[46999.666666666664,3,0],[47416.666666666664,0,0],[47416.666666666664,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[48249.666666666664,1,0],[48416.666666666664,3,0],[48583.666666666664,2,0],[48749.666666666664,0,0],[48833.666666666664,2,0],[48999.666666666664,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[49345.666666666664,0,0],[49416.666666666664,3,0],[49499.666666666664,0,0],[49666.666666666664,1,0],[49833.666666666664,0,0],[49999.666666666664,2,0],[50166.666666666664,3,0],[50333.666666666664,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[50833.666666666664,0,0],[50999.666666666664,3,0],[51166.666666666664,1,0],[51416.666666666664,2,0],[51583.666666666664,3,0],[51749.666666666664,1,0],[51916.666666666664,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[52014.666666666664,0,0],[52250,0,0],[52417,2,0],[52583,2,0],[52750,3,0],[53000,1,0],[53000,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[53333.666666666664,2,0],[53666.666666666664,0,0],[53833.666666666664,1,0],[53999.666666666664,2,0],[54416.666666666664,0,0],[54499.666666666664,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[54666.666666666664,2,0],[54833.666666666664,3,0],[54999.666666666664,0,0],[55166.666666666664,1,0],[55333.666666666664,2,0],[55749.666666666664,0,0],[55916.666666666664,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[56000.33333333333,2,0],[56333.33333333333,0,0],[56500.33333333333,1,0],[56666.33333333333,2,0],[57083.33333333333,0,0],[57166.33333333333,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[57333.33333333333,2,0],[57500.33333333333,3,0],[57666.33333333333,0,0],[57833.33333333333,1,0],[58000.33333333333,2,0],[58416.33333333333,0,0],[58583.33333333333,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[58666.666666666664,1,0],[58999.666666666664,0,0],[59166.666666666664,3,0],[59333.666666666664,1,0],[59583.666666666664,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[60014.666666666664,1,0],[60416.666666666664,0,0],[60583.666666666664,0,0],[60749.666666666664,3,0],[60916.666666666664,3,0],[61083.666666666664,3,0],[61249.666666666664,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[61333.33333333333,1,0],[61666.33333333333,0,0],[61833.33333333333,3,0],[62000.33333333333,1,0],[62250.33333333333,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[62681.33333333333,1,0],[63083.33333333333,0,0],[63250.33333333333,0,0],[63416.33333333333,3,0],[63583.33333333333,3,0],[63750.33333333333,3,0],[63916.33333333333,3,0],[62667,4,0],[62833,5,0],[63000,6,0],[63167,7,0],[63333,6,0],[63500,5,0],[63667,4,0],[63833,5,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[64416.666666666664,2,0],[64583.666666666664,1,0],[64749.666666666664,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[65499.666666666664,1,0],[65666.66666666666,3,0],[65916.66666666666,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[67083.66666666666,2,0],[67416.66666666666,1,0],[67666.66666666666,0,0],[67833.66666666666,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[68008.66666666666,2,0],[68166.66666666666,3,0],[68249.66666666666,0,0],[68416.66666666666,1,0],[68583.66666666666,3,0],[68749.66666666666,2,0],[68000,4,0],[68167,5,0],[68333,6,0],[68500,7,0],[68667,6,0],[68833,5,0],[69000,4,0],[69167,5,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[69750,2,0],[69917,1,0],[70083,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[70833,1,0],[71000,3,0],[71250,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[72417,2,0],[72750,1,0],[73000,0,0],[73167,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[73342,2,0],[73500,3,0],[73583,0,0],[73750,1,0],[73917,3,0],[74083,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[74667,2,0],[75000,0,0],[75167,1,0],[75333,2,0],[75750,0,0],[75833,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[76000,2,0],[76167,3,0],[76333,0,0],[76500,1,0],[76667,2,0],[77000,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[77333.66666666667,2,0],[77666.66666666667,0,0],[77833.66666666667,1,0],[77999.66666666667,2,0],[78416.66666666667,0,0],[78499.66666666667,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[78666.66666666667,2,0],[78833.66666666667,3,0],[78999.66666666667,0,0],[79166.66666666667,1,0],[79333.66666666667,2,0],[79666.66666666667,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[80000,1,0],[80333,0,0],[80500,3,0],[80667,1,0],[80917,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[81348,1,0],[81667,1,0],[82000,1,0]]},{"lengthInSteps":16,"bpm":180,"changeBPM":false,"mustHitSection":true,"sectionNotes":[[82666.66666666667,1,0],[82999.66666666667,0,0],[83166.66666666667,3,0],[83333.66666666667,1,0],[83583.66666666667,2,0]],"typeOfSection":0},{"lengthInSteps":16,"bpm":180,"changeBPM":false,"mustHitSection":true,"sectionNotes":[[84014.66666666667,1,0],[84333.66666666667,1,0],[84666.66666666667,1,0]],"typeOfSection":0}],"needsVoices":true,"speed":1.9000000000000004,"player1":"bf","player2":"dad"},"bpm":180,"sections":64,"notes":[{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[10667,2,0],[11000,0,0],[11167,1,0],[11333,2,0],[11750,0,0],[11833,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[12000,2,0],[12167,3,0],[12333,0,0],[12500,1,0],[12667,2,0],[13083,0,0],[13250,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[13333.666666666666,2,0],[13666.666666666666,0,0],[13833.666666666666,1,0],[13999.666666666666,2,0],[14416.666666666666,0,0],[14499.666666666666,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[14666.666666666666,2,0],[14833.666666666666,3,0],[14999.666666666666,0,0],[15166.666666666666,1,0],[15333.666666666666,2,0],[15749.666666666666,0,0],[15916.666666666666,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[16000,1,0],[16333,0,0],[16500,3,0],[16667,1,0],[16917,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[17348,1,0],[17750,0,0],[17917,0,0],[18083,3,0],[18250,3,0],[18417,3,0],[18583,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[18666.666666666668,1,0],[18999.666666666668,0,0],[19166.666666666668,3,0],[19333.666666666668,1,0],[19583.666666666668,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[20014.666666666668,1,0],[20416.666666666668,0,0],[20583.666666666668,0,0],[20749.666666666668,3,0],[20916.666666666668,3,0],[21083.666666666668,3,0],[21249.666666666668,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[21750,2,0],[21917,1,0],[22083,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[22833,1,0],[23000,3,0],[23250,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[24417,2,0],[24750,1,0],[25000,0,0],[25167,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[25342,2,0],[25500,3,0],[25583,0,0],[25750,1,0],[25917,3,0],[26083,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[27083.333333333332,2,0],[27250.333333333332,1,0],[27416.333333333332,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[28166.333333333332,1,0],[28333.333333333332,3,0],[28583.333333333332,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[29750.333333333332,2,0],[30083.333333333332,1,0],[30333.333333333332,0,0],[30500.333333333332,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[30675.333333333332,2,0],[30833.333333333332,3,0],[30916.333333333332,0,0],[31083.333333333332,1,0],[31250.333333333332,3,0],[31416.333333333332,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[32167,0,0],[32333,3,0],[32500,2,0],[32750,1,0],[33000,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[33500,2,0],[33667,3,0],[33833,1,0],[34083,2,0],[34417,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[34669,0,0],[35000,1,0],[35333,3,0],[35667,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[36008,2,0],[36333,3,0],[36750,0,0],[36750,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[37583,1,0],[37750,3,0],[37917,2,0],[38083,0,0],[38167,2,0],[38333,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[38679,0,0],[38750,3,0],[38833,0,0],[39000,1,0],[39167,0,0],[39333,2,0],[39500,3,0],[39667,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[40167,0,0],[40333,3,0],[40500,1,0],[40750,2,0],[40917,3,0],[41083,1,0],[41250,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[41337,4,0],[41750,6,0],[41583,5,0],[41917,7,0],[42083,6,0],[42250,5,0],[42417,4,0],[42583,5,0],[41348,0,0],[41583,1,0],[41750,0,0],[41917,3,0],[42167,2,0],[42333,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[42833.666666666664,0,0],[42999.666666666664,3,0],[43166.666666666664,2,0],[43416.666666666664,1,0],[43666.666666666664,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[44166.666666666664,2,0],[44333.666666666664,3,0],[44499.666666666664,1,0],[44749.666666666664,2,0],[45083.666666666664,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[45335.666666666664,0,0],[45666.666666666664,1,0],[45999.666666666664,3,0],[46333.666666666664,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[46674.666666666664,2,0],[46999.666666666664,3,0],[47416.666666666664,0,0],[47416.666666666664,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[48249.666666666664,1,0],[48416.666666666664,3,0],[48583.666666666664,2,0],[48749.666666666664,0,0],[48833.666666666664,2,0],[48999.666666666664,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[49345.666666666664,0,0],[49416.666666666664,3,0],[49499.666666666664,0,0],[49666.666666666664,1,0],[49833.666666666664,0,0],[49999.666666666664,2,0],[50166.666666666664,3,0],[50333.666666666664,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[50833.666666666664,0,0],[50999.666666666664,3,0],[51166.666666666664,1,0],[51416.666666666664,2,0],[51583.666666666664,3,0],[51749.666666666664,1,0],[51916.666666666664,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[52014.666666666664,0,0],[52250,0,0],[52417,2,0],[52583,2,0],[52750,3,0],[53000,1,0],[53000,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[53333.666666666664,2,0],[53666.666666666664,0,0],[53833.666666666664,1,0],[53999.666666666664,2,0],[54416.666666666664,0,0],[54499.666666666664,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[54666.666666666664,2,0],[54833.666666666664,3,0],[54999.666666666664,0,0],[55166.666666666664,1,0],[55333.666666666664,2,0],[55749.666666666664,0,0],[55916.666666666664,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[56000.33333333333,2,0],[56333.33333333333,0,0],[56500.33333333333,1,0],[56666.33333333333,2,0],[57083.33333333333,0,0],[57166.33333333333,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[57333.33333333333,2,0],[57500.33333333333,3,0],[57666.33333333333,0,0],[57833.33333333333,1,0],[58000.33333333333,2,0],[58416.33333333333,0,0],[58583.33333333333,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[58666.666666666664,1,0],[58999.666666666664,0,0],[59166.666666666664,3,0],[59333.666666666664,1,0],[59583.666666666664,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[60014.666666666664,1,0],[60416.666666666664,0,0],[60583.666666666664,0,0],[60749.666666666664,3,0],[60916.666666666664,3,0],[61083.666666666664,3,0],[61249.666666666664,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[61333.33333333333,1,0],[61666.33333333333,0,0],[61833.33333333333,3,0],[62000.33333333333,1,0],[62250.33333333333,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[62681.33333333333,1,0],[63083.33333333333,0,0],[63250.33333333333,0,0],[63416.33333333333,3,0],[63583.33333333333,3,0],[63750.33333333333,3,0],[63916.33333333333,3,0],[62667,4,0],[62833,5,0],[63000,6,0],[63167,7,0],[63333,6,0],[63500,5,0],[63667,4,0],[63833,5,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[64416.666666666664,2,0],[64583.666666666664,1,0],[64749.666666666664,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[65499.666666666664,1,0],[65666.66666666666,3,0],[65916.66666666666,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[67083.66666666666,2,0],[67416.66666666666,1,0],[67666.66666666666,0,0],[67833.66666666666,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[68008.66666666666,2,0],[68166.66666666666,3,0],[68249.66666666666,0,0],[68416.66666666666,1,0],[68583.66666666666,3,0],[68749.66666666666,2,0],[68000,4,0],[68167,5,0],[68333,6,0],[68500,7,0],[68667,6,0],[68833,5,0],[69000,4,0],[69167,5,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[69750,2,0],[69917,1,0],[70083,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[70833,1,0],[71000,3,0],[71250,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[72417,2,0],[72750,1,0],[73000,0,0],[73167,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[73342,2,0],[73500,3,0],[73583,0,0],[73750,1,0],[73917,3,0],[74083,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[74667,2,0],[75000,0,0],[75167,1,0],[75333,2,0],[75750,0,0],[75833,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[76000,2,0],[76167,3,0],[76333,0,0],[76500,1,0],[76667,2,0],[77000,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[77333.66666666667,2,0],[77666.66666666667,0,0],[77833.66666666667,1,0],[77999.66666666667,2,0],[78416.66666666667,0,0],[78499.66666666667,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[78666.66666666667,2,0],[78833.66666666667,3,0],[78999.66666666667,0,0],[79166.66666666667,1,0],[79333.66666666667,2,0],[79666.66666666667,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[80000,1,0],[80333,0,0],[80500,3,0],[80667,1,0],[80917,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[81348,1,0],[81667,1,0],[82000,1,0]]},{"lengthInSteps":16,"bpm":180,"changeBPM":false,"mustHitSection":true,"sectionNotes":[[82666.66666666667,1,0],[82999.66666666667,0,0],[83166.66666666667,3,0],[83333.66666666667,1,0],[83583.66666666667,2,0]],"typeOfSection":0},{"lengthInSteps":16,"bpm":180,"changeBPM":false,"mustHitSection":true,"sectionNotes":[[84014.66666666667,1,0],[84333.66666666667,1,0],[84666.66666666667,1,0]],"typeOfSection":0}]}
\ No newline at end of file
diff --git a/assets/data/fresh/fresh-easy.json b/assets/data/fresh/fresh-easy.json
new file mode 100644
index 0000000..0512b2d
--- /dev/null
+++ b/assets/data/fresh/fresh-easy.json
@@ -0,0 +1 @@
+{"song":{"player2":"dad","player1":"bf","speed":1,"needsVoices":true,"sectionLengths":[],"song":"Fresh","notes":[{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[0,1,0],[500,3,0],[1125,1,0],[1375,2,0],[1625,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[2000,1,0],[2500,3,0],[3125,1,0],[3375,2,0],[3625,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[4000,1,0],[4500,3,0],[5125,1,0],[5250,0,0],[5750,0,0],[5875,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[7750,3,225],[6000,1,0],[6000,1,0],[6500,3,0],[7125,1,0],[7250,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[8250,0,0],[8500,1,0],[9000,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[10250,0,0],[10500,1,0],[11000,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[12250,0,0],[12500,2,0],[12750,3,0],[13000,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[14250,0,0],[14500,2,0],[14750,3,0],[15000,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[16250,0,0],[16750,3,0],[17000,0,0],[16500,1,0],[17500,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[18250,0,0],[18750,3,0],[19000,0,0],[18500,1,0],[19500,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[20000,3,0],[20250,1,0],[20875,2,0],[21125,3,0],[21750,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[22000,3,0],[22250,1,0],[22875,2,0],[23125,3,0],[23750,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[24000,3,0],[24500,0,0],[25000,1,0],[25250,1,0],[25500,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[26000,1,0],[26500,3,0],[26750,0,0],[27000,2,0],[27500,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[28000,3,0],[28500,0,0],[29000,1,0],[29250,1,0],[29500,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[30000,1,0],[30500,3,0],[30750,0,0],[31000,2,0],[31500,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[32500,0,0],[33500,1,0],[33750,2,0],[33000,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[34500,3,0],[34250,0,0],[34750,0,0],[35125,2,250],[35500,1,250]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[36500,0,0],[37000,1,0],[37500,1,0],[37750,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[38500,3,0],[38250,0,0],[38750,0,0],[39125,2,250],[39500,1,250]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[40250,0,0],[40500,1,0],[41000,2,0],[41500,2,0],[41750,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[42250,0,0],[42500,1,0],[43000,2,0],[43500,2,0],[43750,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[44250,0,0],[44500,2,0],[44750,3,0],[45000,0,0],[45750,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[46250,0,0],[46500,2,0],[46750,3,0],[47000,0,0],[47750,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[48250,0,0],[48500,1,0],[48750,3,0],[49000,0,0],[49750,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[50250,0,0],[50500,1,0],[50750,3,0],[51000,0,0],[51750,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[52000,3,0],[52250,1,0],[52750,2,0],[53000,3,0],[53250,1,0],[53750,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[54000,3,0],[54250,1,0],[54750,2,0],[55000,3,0],[55250,1,0],[55750,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[56000,3,0],[56500,0,0],[57000,1,0],[57250,1,0],[57500,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[58000,1,0],[58500,3,0],[58750,0,0],[59000,2,0],[59500,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[60000,3,0],[60500,0,0],[61000,1,0],[61250,1,0],[61500,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[62000,1,0],[62500,3,0],[62750,0,0],[63000,2,0],[63500,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[64500,0,0],[64750,3,0],[65000,1,0],[65250,3,0],[65500,1,0],[65750,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[66500,3,0],[66250,0,0],[66750,0,0],[67125,2,250],[67500,1,250]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[68500,0,0],[68750,3,0],[69000,1,0],[69250,3,0],[69500,1,0],[69750,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[70500,3,0],[70250,0,0],[70750,0,0],[71125,2,250],[71500,1,250]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[72000,1,0],[72500,3,0],[73125,1,0],[73375,2,0],[73625,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[74000,1,0],[74500,3,0],[75125,1,0],[75375,2,0],[75625,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[76000,1,0],[76500,3,0],[77125,1,0],[77250,0,0],[77750,0,0],[77875,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[79750,3,225],[78000,1,0],[78000,1,0],[78500,3,0],[79125,1,0],[79250,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"lengthInSteps":16,"bpm":120,"changeBPM":false,"mustHitSection":true,"sectionNotes":[],"typeOfSection":0}],"bpm":120,"sections":0},"bpm":120,"sections":43,"notes":[{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[0,1,0],[500,3,0],[1125,1,0],[1375,2,0],[1625,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[2000,1,0],[2500,3,0],[3125,1,0],[3375,2,0],[3625,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[4000,1,0],[4500,3,0],[5125,1,0],[5250,0,0],[5750,0,0],[5875,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[7750,3,225],[6000,1,0],[6000,1,0],[6500,3,0],[7125,1,0],[7250,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[8250,0,0],[8500,1,0],[9000,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[10250,0,0],[10500,1,0],[11000,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[12250,0,0],[12500,2,0],[12750,3,0],[13000,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[14250,0,0],[14500,2,0],[14750,3,0],[15000,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[16250,0,0],[16750,3,0],[17000,0,0],[16500,1,0],[17500,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[18250,0,0],[18750,3,0],[19000,0,0],[18500,1,0],[19500,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[20000,3,0],[20250,1,0],[20875,2,0],[21125,3,0],[21750,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[22000,3,0],[22250,1,0],[22875,2,0],[23125,3,0],[23750,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[24000,3,0],[24500,0,0],[25000,1,0],[25250,1,0],[25500,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[26000,1,0],[26500,3,0],[26750,0,0],[27000,2,0],[27500,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[28000,3,0],[28500,0,0],[29000,1,0],[29250,1,0],[29500,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[30000,1,0],[30500,3,0],[30750,0,0],[31000,2,0],[31500,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[32500,0,0],[33500,1,0],[33750,2,0],[33000,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[34500,3,0],[34250,0,0],[34750,0,0],[35125,2,250],[35500,1,250]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[36500,0,0],[37000,1,0],[37500,1,0],[37750,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[38500,3,0],[38250,0,0],[38750,0,0],[39125,2,250],[39500,1,250]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[40250,0,0],[40500,1,0],[41000,2,0],[41500,2,0],[41750,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[42250,0,0],[42500,1,0],[43000,2,0],[43500,2,0],[43750,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[44250,0,0],[44500,2,0],[44750,3,0],[45000,0,0],[45750,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[46250,0,0],[46500,2,0],[46750,3,0],[47000,0,0],[47750,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[48250,0,0],[48500,1,0],[48750,3,0],[49000,0,0],[49750,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[50250,0,0],[50500,1,0],[50750,3,0],[51000,0,0],[51750,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[52000,3,0],[52250,1,0],[52750,2,0],[53000,3,0],[53250,1,0],[53750,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[54000,3,0],[54250,1,0],[54750,2,0],[55000,3,0],[55250,1,0],[55750,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[56000,3,0],[56500,0,0],[57000,1,0],[57250,1,0],[57500,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[58000,1,0],[58500,3,0],[58750,0,0],[59000,2,0],[59500,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[60000,3,0],[60500,0,0],[61000,1,0],[61250,1,0],[61500,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[62000,1,0],[62500,3,0],[62750,0,0],[63000,2,0],[63500,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[64500,0,0],[64750,3,0],[65000,1,0],[65250,3,0],[65500,1,0],[65750,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[66500,3,0],[66250,0,0],[66750,0,0],[67125,2,250],[67500,1,250]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[68500,0,0],[68750,3,0],[69000,1,0],[69250,3,0],[69500,1,0],[69750,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[70500,3,0],[70250,0,0],[70750,0,0],[71125,2,250],[71500,1,250]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[72000,1,0],[72500,3,0],[73125,1,0],[73375,2,0],[73625,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[74000,1,0],[74500,3,0],[75125,1,0],[75375,2,0],[75625,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[76000,1,0],[76500,3,0],[77125,1,0],[77250,0,0],[77750,0,0],[77875,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[79750,3,225],[78000,1,0],[78000,1,0],[78500,3,0],[79125,1,0],[79250,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"lengthInSteps":16,"bpm":120,"changeBPM":false,"mustHitSection":true,"sectionNotes":[],"typeOfSection":0}]}
\ No newline at end of file
diff --git a/assets/data/fresh/fresh-hard.json b/assets/data/fresh/fresh-hard.json
new file mode 100644
index 0000000..882fe7c
--- /dev/null
+++ b/assets/data/fresh/fresh-hard.json
@@ -0,0 +1 @@
+{"song":{"player2":"dad","player1":"bf","speed":1.8000000000000007,"needsVoices":true,"sectionLengths":[],"song":"Fresh","notes":[{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[0,1,0],[250,1,0],[500,3,0],[875,3,0],[1125,1,0],[1250,0,0],[1375,2,0],[1625,1,0],[1750,0,250]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[2000,1,0],[2250,1,0],[2500,3,0],[2875,3,0],[3125,1,0],[3250,0,0],[3375,2,0],[3625,1,0],[3750,0,250]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[4000,1,0],[4250,1,0],[4500,3,0],[4875,3,0],[5125,1,0],[5250,0,0],[5500,2,0],[5750,0,0],[5875,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[6250,1,0],[6500,3,0],[6875,3,0],[7125,1,0],[7250,0,0],[7750,3,225],[6000,1,0],[7375,2,0],[7625,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[8250,0,0],[8500,1,0],[9000,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[10250,0,0],[10500,1,0],[11000,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[12250,0,0],[12500,2,0],[12750,3,0],[13000,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[14250,0,0],[14500,2,0],[14750,3,0],[15000,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[16250,0,0],[16750,3,0],[17000,0,0],[16500,1,0],[17500,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[18250,0,0],[18750,3,0],[19000,0,0],[18500,1,0],[19500,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[20000,3,0],[20250,1,0],[20875,2,0],[21125,3,0],[21375,1,0],[21750,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[22000,3,0],[22250,1,0],[22875,2,0],[23125,3,0],[23375,1,0],[23750,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[24000,3,0],[24500,0,0],[25000,1,0],[25250,1,0],[25500,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[26000,1,0],[26250,2,0],[26500,3,0],[26750,0,0],[27000,2,0],[27250,3,0],[27500,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[28000,3,0],[28500,0,0],[29000,1,0],[29250,1,0],[29500,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[30000,1,0],[30250,2,0],[30500,3,0],[30750,0,0],[31000,2,0],[31250,3,0],[31500,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[32500,0,0],[32750,3,0],[33000,1,0],[33250,3,0],[33500,1,0],[33750,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[34500,3,0],[34250,0,0],[34750,0,0],[35125,2,250],[35500,1,250]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[36500,0,0],[36750,3,0],[37000,1,0],[37250,3,0],[37500,1,0],[37750,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[38500,3,0],[38250,0,0],[38750,0,0],[39125,2,250],[39500,1,250]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[40250,0,0],[40500,1,0],[41000,2,0],[41500,2,0],[41750,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[42250,0,0],[42500,1,0],[43000,2,0],[43500,2,0],[43750,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[44250,0,0],[44500,2,0],[44750,3,0],[45000,0,0],[45750,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[46250,0,0],[46500,2,0],[46750,3,0],[47000,0,0],[47750,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[48250,0,0],[48500,1,0],[48750,3,0],[49000,0,0],[49750,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[50250,0,0],[50500,1,0],[50750,3,0],[51000,0,0],[51750,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[52000,3,0],[52250,1,0],[52500,1,0],[52750,2,0],[53000,3,0],[53250,1,0],[53750,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[54000,3,0],[54250,1,0],[54500,1,0],[54750,2,0],[55000,3,0],[55250,1,0],[55750,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[56000,3,0],[56500,0,0],[57000,1,0],[57250,1,0],[57500,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[58000,1,0],[58250,2,0],[58500,3,0],[58750,0,0],[59000,2,0],[59250,3,0],[59500,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[60000,3,0],[60500,0,0],[61000,1,0],[61250,1,0],[61500,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[62000,1,0],[62250,2,0],[62500,3,0],[62750,0,0],[63000,2,0],[63250,3,0],[63500,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[64500,0,0],[64750,3,0],[65000,1,0],[65250,3,0],[65500,1,0],[65750,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[66500,3,0],[66250,0,0],[66750,0,0],[67125,2,250],[67500,1,250]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[68500,0,0],[68750,3,0],[69000,1,0],[69250,3,0],[69500,1,0],[69750,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[70500,3,0],[70250,0,0],[70750,0,0],[71125,2,250],[71500,1,250]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[72000,1,0],[72250,1,0],[72500,3,0],[72875,3,0],[73125,1,0],[73250,0,0],[73375,2,0],[73625,1,0],[73750,0,250]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[74000,1,0],[74250,1,0],[74500,3,0],[74875,3,0],[75125,1,0],[75250,0,0],[75500,2,0],[75750,0,0],[75875,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[76000,1,0],[76250,1,0],[76500,3,0],[76875,3,0],[77125,1,0],[77250,0,0],[77500,2,0],[77750,0,0],[77875,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[78250,1,0],[78500,3,0],[78875,3,0],[79125,1,0],[79250,0,0],[78000,1,0],[79375,2,0],[79625,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"lengthInSteps":16,"bpm":120,"changeBPM":false,"mustHitSection":true,"sectionNotes":[],"typeOfSection":0}],"bpm":120,"sections":0},"bpm":120,"sections":43,"notes":[{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[0,1,0],[250,1,0],[500,3,0],[875,3,0],[1125,1,0],[1250,0,0],[1375,2,0],[1625,1,0],[1750,0,250]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[2000,1,0],[2250,1,0],[2500,3,0],[2875,3,0],[3125,1,0],[3250,0,0],[3375,2,0],[3625,1,0],[3750,0,250]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[4000,1,0],[4250,1,0],[4500,3,0],[4875,3,0],[5125,1,0],[5250,0,0],[5500,2,0],[5750,0,0],[5875,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[6250,1,0],[6500,3,0],[6875,3,0],[7125,1,0],[7250,0,0],[7750,3,225],[6000,1,0],[7375,2,0],[7625,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[8250,0,0],[8500,1,0],[9000,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[10250,0,0],[10500,1,0],[11000,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[12250,0,0],[12500,2,0],[12750,3,0],[13000,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[14250,0,0],[14500,2,0],[14750,3,0],[15000,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[16250,0,0],[16750,3,0],[17000,0,0],[16500,1,0],[17500,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[18250,0,0],[18750,3,0],[19000,0,0],[18500,1,0],[19500,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[20000,3,0],[20250,1,0],[20875,2,0],[21125,3,0],[21375,1,0],[21750,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[22000,3,0],[22250,1,0],[22875,2,0],[23125,3,0],[23375,1,0],[23750,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[24000,3,0],[24500,0,0],[25000,1,0],[25250,1,0],[25500,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[26000,1,0],[26250,2,0],[26500,3,0],[26750,0,0],[27000,2,0],[27250,3,0],[27500,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[28000,3,0],[28500,0,0],[29000,1,0],[29250,1,0],[29500,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[30000,1,0],[30250,2,0],[30500,3,0],[30750,0,0],[31000,2,0],[31250,3,0],[31500,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[32500,0,0],[32750,3,0],[33000,1,0],[33250,3,0],[33500,1,0],[33750,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[34500,3,0],[34250,0,0],[34750,0,0],[35125,2,250],[35500,1,250]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[36500,0,0],[36750,3,0],[37000,1,0],[37250,3,0],[37500,1,0],[37750,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[38500,3,0],[38250,0,0],[38750,0,0],[39125,2,250],[39500,1,250]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[40250,0,0],[40500,1,0],[41000,2,0],[41500,2,0],[41750,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[42250,0,0],[42500,1,0],[43000,2,0],[43500,2,0],[43750,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[44250,0,0],[44500,2,0],[44750,3,0],[45000,0,0],[45750,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[46250,0,0],[46500,2,0],[46750,3,0],[47000,0,0],[47750,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[48250,0,0],[48500,1,0],[48750,3,0],[49000,0,0],[49750,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[50250,0,0],[50500,1,0],[50750,3,0],[51000,0,0],[51750,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[52000,3,0],[52250,1,0],[52500,1,0],[52750,2,0],[53000,3,0],[53250,1,0],[53750,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[54000,3,0],[54250,1,0],[54500,1,0],[54750,2,0],[55000,3,0],[55250,1,0],[55750,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[56000,3,0],[56500,0,0],[57000,1,0],[57250,1,0],[57500,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[58000,1,0],[58250,2,0],[58500,3,0],[58750,0,0],[59000,2,0],[59250,3,0],[59500,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[60000,3,0],[60500,0,0],[61000,1,0],[61250,1,0],[61500,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[62000,1,0],[62250,2,0],[62500,3,0],[62750,0,0],[63000,2,0],[63250,3,0],[63500,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[64500,0,0],[64750,3,0],[65000,1,0],[65250,3,0],[65500,1,0],[65750,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[66500,3,0],[66250,0,0],[66750,0,0],[67125,2,250],[67500,1,250]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[68500,0,0],[68750,3,0],[69000,1,0],[69250,3,0],[69500,1,0],[69750,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[70500,3,0],[70250,0,0],[70750,0,0],[71125,2,250],[71500,1,250]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[72000,1,0],[72250,1,0],[72500,3,0],[72875,3,0],[73125,1,0],[73250,0,0],[73375,2,0],[73625,1,0],[73750,0,250]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[74000,1,0],[74250,1,0],[74500,3,0],[74875,3,0],[75125,1,0],[75250,0,0],[75500,2,0],[75750,0,0],[75875,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[76000,1,0],[76250,1,0],[76500,3,0],[76875,3,0],[77125,1,0],[77250,0,0],[77500,2,0],[77750,0,0],[77875,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[78250,1,0],[78500,3,0],[78875,3,0],[79125,1,0],[79250,0,0],[78000,1,0],[79375,2,0],[79625,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"lengthInSteps":16,"bpm":120,"changeBPM":false,"mustHitSection":true,"sectionNotes":[],"typeOfSection":0}]}
\ No newline at end of file
diff --git a/assets/images/FNF_main_menu_assets.png b/assets/images/FNF_main_menu_assets.png
new file mode 100644
index 0000000..4399ed2
Binary files /dev/null and b/assets/images/FNF_main_menu_assets.png differ
diff --git a/assets/images/FNF_main_menu_assets.xml b/assets/images/FNF_main_menu_assets.xml
new file mode 100644
index 0000000..01d1a5e
--- /dev/null
+++ b/assets/images/FNF_main_menu_assets.xml
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/images/alphabet.xml b/assets/images/alphabet.xml
index ca5eecc..a473eed 100644
--- a/assets/images/alphabet.xml
+++ b/assets/images/alphabet.xml
@@ -2,14 +2,14 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -106,10 +106,10 @@
-
-
-
-
+
+
+
+
@@ -178,10 +178,10 @@
-
-
-
-
+
+
+
+
diff --git a/assets/images/campaign_menu_UI_characters.png b/assets/images/campaign_menu_UI_characters.png
index 75de6a5..1efc44d 100644
Binary files a/assets/images/campaign_menu_UI_characters.png and b/assets/images/campaign_menu_UI_characters.png differ
diff --git a/assets/images/campaign_menu_UI_characters.xml b/assets/images/campaign_menu_UI_characters.xml
index 80b7ab2..114f533 100644
--- a/assets/images/campaign_menu_UI_characters.xml
+++ b/assets/images/campaign_menu_UI_characters.xml
@@ -2,78 +2,104 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/images/halloween_bg.png b/assets/images/halloween_bg.png
new file mode 100644
index 0000000..af6893c
Binary files /dev/null and b/assets/images/halloween_bg.png differ
diff --git a/assets/images/halloween_bg.xml b/assets/images/halloween_bg.xml
new file mode 100644
index 0000000..21c788d
--- /dev/null
+++ b/assets/images/halloween_bg.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/images/menuBG.png b/assets/images/menuBG.png
new file mode 100644
index 0000000..6586348
Binary files /dev/null and b/assets/images/menuBG.png differ
diff --git a/assets/images/menuBGMagenta.png b/assets/images/menuBGMagenta.png
new file mode 100644
index 0000000..a3fb56a
Binary files /dev/null and b/assets/images/menuBGMagenta.png differ
diff --git a/assets/images/newgrounds_logo.png b/assets/images/newgrounds_logo.png
new file mode 100644
index 0000000..ef13642
Binary files /dev/null and b/assets/images/newgrounds_logo.png differ
diff --git a/assets/sounds/GF_1.mp3 b/assets/sounds/GF_1.mp3
new file mode 100644
index 0000000..50e4a30
Binary files /dev/null and b/assets/sounds/GF_1.mp3 differ
diff --git a/assets/sounds/GF_1.ogg b/assets/sounds/GF_1.ogg
new file mode 100644
index 0000000..b7521ab
Binary files /dev/null and b/assets/sounds/GF_1.ogg differ
diff --git a/assets/sounds/GF_2.mp3 b/assets/sounds/GF_2.mp3
new file mode 100644
index 0000000..d3e11e4
Binary files /dev/null and b/assets/sounds/GF_2.mp3 differ
diff --git a/assets/sounds/GF_2.ogg b/assets/sounds/GF_2.ogg
new file mode 100644
index 0000000..32bfea1
Binary files /dev/null and b/assets/sounds/GF_2.ogg differ
diff --git a/assets/sounds/GF_3.mp3 b/assets/sounds/GF_3.mp3
new file mode 100644
index 0000000..cdbcf4d
Binary files /dev/null and b/assets/sounds/GF_3.mp3 differ
diff --git a/assets/sounds/GF_3.ogg b/assets/sounds/GF_3.ogg
new file mode 100644
index 0000000..c855a40
Binary files /dev/null and b/assets/sounds/GF_3.ogg differ
diff --git a/assets/sounds/GF_4.mp3 b/assets/sounds/GF_4.mp3
new file mode 100644
index 0000000..63c0c07
Binary files /dev/null and b/assets/sounds/GF_4.mp3 differ
diff --git a/assets/sounds/GF_4.ogg b/assets/sounds/GF_4.ogg
new file mode 100644
index 0000000..89c48e0
Binary files /dev/null and b/assets/sounds/GF_4.ogg differ
diff --git a/assets/sounds/cancelMenu.mp3 b/assets/sounds/cancelMenu.mp3
new file mode 100644
index 0000000..c70e8cd
Binary files /dev/null and b/assets/sounds/cancelMenu.mp3 differ
diff --git a/assets/sounds/cancelMenu.ogg b/assets/sounds/cancelMenu.ogg
new file mode 100644
index 0000000..d56d11d
Binary files /dev/null and b/assets/sounds/cancelMenu.ogg differ
diff --git a/assets/sounds/confirmMenu.mp3 b/assets/sounds/confirmMenu.mp3
new file mode 100644
index 0000000..345797a
Binary files /dev/null and b/assets/sounds/confirmMenu.mp3 differ
diff --git a/assets/sounds/confirmMenu.ogg b/assets/sounds/confirmMenu.ogg
new file mode 100644
index 0000000..f60010e
Binary files /dev/null and b/assets/sounds/confirmMenu.ogg differ
diff --git a/assets/sounds/scrollMenu.mp3 b/assets/sounds/scrollMenu.mp3
new file mode 100644
index 0000000..8a5e866
Binary files /dev/null and b/assets/sounds/scrollMenu.mp3 differ
diff --git a/assets/sounds/scrollMenu.ogg b/assets/sounds/scrollMenu.ogg
new file mode 100644
index 0000000..e5697c9
Binary files /dev/null and b/assets/sounds/scrollMenu.ogg differ
diff --git a/source/Alphabet.hx b/source/Alphabet.hx
index 20556e3..4e04631 100644
--- a/source/Alphabet.hx
+++ b/source/Alphabet.hx
@@ -34,20 +34,26 @@ class Alphabet extends FlxSpriteGroup
var splitWords:Array = [];
+ var isBold:Bool = false;
+
public function new(x:Float, y:Float, text:String = "", ?bold:Bool = false, typed:Bool = false)
{
super(x, y);
_finalText = text;
this.text = text;
+ isBold = bold;
- if (typed)
+ if (text != "")
{
- startTypedText();
- }
- else
- {
- addText();
+ if (typed)
+ {
+ startTypedText();
+ }
+ else
+ {
+ addText();
+ }
}
}
@@ -55,6 +61,7 @@ class Alphabet extends FlxSpriteGroup
{
doSplitWords();
+ var xPos:Float = 0;
for (character in splitWords)
{
// if (character.fastCodeAt() == " ")
@@ -68,10 +75,9 @@ class Alphabet extends FlxSpriteGroup
if (AlphaCharacter.alphabet.contains(character.toLowerCase()))
{
- var xPos:Float = 0;
if (lastSprite != null)
{
- xPos = lastSprite.x + lastSprite.frameWidth;
+ xPos = lastSprite.x + lastSprite.width;
}
if (lastWasSpace)
@@ -82,7 +88,14 @@ class Alphabet extends FlxSpriteGroup
// var letter:AlphaCharacter = new AlphaCharacter(30 * loopNum, 0);
var letter:AlphaCharacter = new AlphaCharacter(xPos, 0);
- letter.createBold(character);
+
+ if (isBold)
+ letter.createBold(character);
+ else
+ {
+ letter.createLetter(character);
+ }
+
add(letter);
lastSprite = letter;
@@ -97,6 +110,8 @@ class Alphabet extends FlxSpriteGroup
splitWords = _finalText.split("");
}
+ public var personTalking:String = 'gf';
+
public function startTypedText():Void
{
_finalText = text;
@@ -106,34 +121,79 @@ class Alphabet extends FlxSpriteGroup
var loopNum:Int = 0;
+ var xPos:Float = 0;
+ var curRow:Int = 0;
+
new FlxTimer().start(0.05, function(tmr:FlxTimer)
{
- var xPos:Float = 0;
-
// trace(_finalText.fastCodeAt(loopNum) + " " + _finalText.charAt(loopNum));
if (_finalText.fastCodeAt(loopNum) == "\n".code)
{
yMulti += 1;
xPosResetted = true;
- // xPos = 0;
+ xPos = 0;
+ curRow += 1;
}
- if (AlphaCharacter.alphabet.contains(splitWords[loopNum].toLowerCase()))
+ if (splitWords[loopNum] == " ")
+ {
+ lastWasSpace = true;
+ }
+
+ var isNumber:Bool = AlphaCharacter.numbers.contains(splitWords[loopNum]);
+ var isSymbol:Bool = AlphaCharacter.symbols.contains(splitWords[loopNum]);
+ if (AlphaCharacter.alphabet.contains(splitWords[loopNum].toLowerCase()) || isNumber || isSymbol)
{
if (lastSprite != null && !xPosResetted)
{
- xPos = lastSprite.x + lastSprite.frameWidth - 40;
+ lastSprite.updateHitbox();
+ xPos += lastSprite.width + 3;
+ // if (isBold)
+ // xPos -= 80;
}
else
{
xPosResetted = false;
}
+ if (lastWasSpace)
+ {
+ xPos += 20;
+ lastWasSpace = false;
+ }
// trace(_finalText.fastCodeAt(loopNum) + " " + _finalText.charAt(loopNum));
// var letter:AlphaCharacter = new AlphaCharacter(30 * loopNum, 0);
var letter:AlphaCharacter = new AlphaCharacter(xPos, 55 * yMulti);
- letter.createBold(splitWords[loopNum]);
+ letter.row = curRow;
+ if (isBold)
+ {
+ letter.createBold(splitWords[loopNum]);
+ }
+ else
+ {
+ if (isNumber)
+ {
+ letter.createNumber(splitWords[loopNum]);
+ }
+ else if (isSymbol)
+ {
+ letter.createSymbol(splitWords[loopNum]);
+ }
+ else
+ {
+ letter.createLetter(splitWords[loopNum]);
+ }
+
+ letter.x += 90;
+ }
+
+ if (FlxG.random.bool(40))
+ {
+ var daSound:String = "GF_";
+ FlxG.sound.play('assets/sounds/' + daSound + FlxG.random.int(1, 4) + TitleState.soundExt, 0.4);
+ }
+
add(letter);
lastSprite = letter;
@@ -141,7 +201,7 @@ class Alphabet extends FlxSpriteGroup
loopNum += 1;
- tmr.time = FlxG.random.float(0.03, 0.09);
+ tmr.time = FlxG.random.float(0.04, 0.09);
}, splitWords.length);
}
@@ -155,8 +215,11 @@ class AlphaCharacter extends FlxSprite
{
public static var alphabet:String = "abcdefghijklmnopqrstuvwxyz";
- var numbers:String = "1234567890";
- var symbols:String = "|~#$%()*+-:;<=>@[]^_";
+ public static var numbers:String = "1234567890";
+
+ public static var symbols:String = "|~#$%()*+-:;<=>@[]^_.,'!?";
+
+ public var row:Int = 0;
public function new(x:Float, y:Float)
{
@@ -184,5 +247,42 @@ class AlphaCharacter extends FlxSprite
animation.addByPrefix(letter, letter + " " + letterCase, 24);
animation.play(letter);
+ updateHitbox();
+
+ FlxG.log.add('the row' + row);
+
+ y = (110 - height);
+ y += row * 60;
+ }
+
+ public function createNumber(letter:String):Void
+ {
+ animation.addByPrefix(letter, letter, 24);
+ animation.play(letter);
+
+ updateHitbox();
+ }
+
+ public function createSymbol(letter:String)
+ {
+ switch (letter)
+ {
+ case '.':
+ animation.addByPrefix(letter, 'period', 24);
+ animation.play(letter);
+ y += 50;
+ case "'":
+ animation.addByPrefix(letter, 'apostraphie', 24);
+ animation.play(letter);
+ y -= 0;
+ case "?":
+ animation.addByPrefix(letter, 'question mark', 24);
+ animation.play(letter);
+ case "!":
+ animation.addByPrefix(letter, 'exclamation point', 24);
+ animation.play(letter);
+ }
+
+ updateHitbox();
}
}
diff --git a/source/ChartingState.hx b/source/ChartingState.hx
index a4cf96c..3ebeb10 100644
--- a/source/ChartingState.hx
+++ b/source/ChartingState.hx
@@ -18,6 +18,7 @@ import flixel.group.FlxGroup.FlxTypedGroup;
import flixel.group.FlxGroup;
import flixel.math.FlxMath;
import flixel.math.FlxPoint;
+import flixel.system.FlxSound;
import flixel.text.FlxText;
import flixel.ui.FlxButton;
import flixel.ui.FlxSpriteButton;
@@ -71,6 +72,8 @@ class ChartingState extends MusicBeatState
var tempBpm:Int = 0;
+ var vocals:FlxSound;
+
override function create()
{
gridBG = FlxGridOverlay.create(GRID_SIZE, GRID_SIZE, GRID_SIZE * 8, GRID_SIZE * 16);
@@ -276,12 +279,24 @@ class ChartingState extends MusicBeatState
function loadSong(daSong:String):Void
{
if (FlxG.sound.music != null)
+ {
FlxG.sound.music.stop();
+ // vocals.stop();
+ }
+
+ FlxG.sound.playMusic('assets/music/' + daSong + "_Inst" + TitleState.soundExt, 0.6);
+
+ // WONT WORK FOR TUTORIAL! REDO LATER
+ vocals = new FlxSound().loadEmbedded("assets/music/" + daSong + "_Voices" + TitleState.soundExt);
+ FlxG.sound.list.add(vocals);
- FlxG.sound.playMusic('assets/music/' + daSong + TitleState.soundExt, 0.6);
FlxG.sound.music.pause();
+ vocals.pause();
+
FlxG.sound.music.onComplete = function()
{
+ vocals.pause();
+ vocals.time = 0;
FlxG.sound.music.pause();
FlxG.sound.music.time = 0;
};
@@ -430,6 +445,7 @@ class ChartingState extends MusicBeatState
{
PlayState.SONG = _song;
FlxG.sound.music.stop();
+ vocals.stop();
FlxG.switchState(new PlayState());
}
@@ -440,9 +456,13 @@ class ChartingState extends MusicBeatState
if (FlxG.sound.music.playing)
{
FlxG.sound.music.pause();
+ vocals.pause();
}
else
+ {
+ vocals.play();
FlxG.sound.music.play();
+ }
}
if (FlxG.keys.justPressed.R)
@@ -456,6 +476,7 @@ class ChartingState extends MusicBeatState
if (FlxG.keys.pressed.W || FlxG.keys.pressed.S)
{
FlxG.sound.music.pause();
+ vocals.pause();
var daTime:Float = 700 * FlxG.elapsed;
@@ -465,6 +486,8 @@ class ChartingState extends MusicBeatState
}
else
FlxG.sound.music.time += daTime;
+
+ vocals.time = FlxG.sound.music.time;
}
}
@@ -497,6 +520,7 @@ class ChartingState extends MusicBeatState
if (updateMusic)
{
FlxG.sound.music.pause();
+ vocals.pause();
var daNum:Int = 0;
var daLength:Int = 0;
@@ -507,6 +531,7 @@ class ChartingState extends MusicBeatState
}
FlxG.sound.music.time = (daLength - (_song.notes[sec].lengthInSteps)) * Conductor.stepCrochet;
+ vocals.time = FlxG.sound.music.time;
updateCurStep();
}
diff --git a/source/Controls.hx b/source/Controls.hx
index c90b850..b5715a6 100644
--- a/source/Controls.hx
+++ b/source/Controls.hx
@@ -11,7 +11,8 @@ import flixel.input.gamepad.FlxGamepadButton;
import flixel.input.gamepad.FlxGamepadInputID;
import flixel.input.keyboard.FlxKey;
-@:enum abstract Action(String) to String from String
+#if (haxe >= "4.0.0")
+enum abstract Action(String) to String from String
{
var UP = "up";
var LEFT = "left";
@@ -30,6 +31,28 @@ import flixel.input.keyboard.FlxKey;
var PAUSE = "pause";
var RESET = "reset";
}
+#else
+@:enum
+abstract Action(String) to String from String
+{
+ var UP = "up";
+ var LEFT = "left";
+ var RIGHT = "right";
+ var DOWN = "down";
+ var UP_P = "up-press";
+ var LEFT_P = "left-press";
+ var RIGHT_P = "right-press";
+ var DOWN_P = "down-press";
+ var UP_R = "up-release";
+ var LEFT_R = "left-release";
+ var RIGHT_R = "right-release";
+ var DOWN_R = "down-release";
+ var ACCEPT = "accept";
+ var BACK = "back";
+ var PAUSE = "pause";
+ var RESET = "reset";
+}
+#end
enum Device
{
@@ -402,9 +425,9 @@ class Controls extends FlxActionSet
inline bindKeys(Control.DOWN, [S, FlxKey.DOWN]);
inline bindKeys(Control.LEFT, [A, FlxKey.LEFT]);
inline bindKeys(Control.RIGHT, [D, FlxKey.RIGHT]);
- inline bindKeys(Control.ACCEPT, [Z, SPACE]);
- inline bindKeys(Control.BACK, [X]);
- inline bindKeys(Control.PAUSE, [P, ENTER]);
+ inline bindKeys(Control.ACCEPT, [Z, SPACE, ENTER]);
+ inline bindKeys(Control.BACK, [BACKSPACE, ESCAPE]);
+ inline bindKeys(Control.PAUSE, [P, ENTER, ESCAPE]);
inline bindKeys(Control.RESET, [R]);
case Duo(true):
inline bindKeys(Control.UP, [W]);
diff --git a/source/DialogueBox.hx b/source/DialogueBox.hx
new file mode 100644
index 0000000..488fe35
--- /dev/null
+++ b/source/DialogueBox.hx
@@ -0,0 +1,86 @@
+package;
+
+import flixel.FlxG;
+import flixel.FlxSprite;
+import flixel.graphics.frames.FlxAtlasFrames;
+import flixel.group.FlxSpriteGroup;
+import flixel.input.FlxKeyManager;
+
+class DialogueBox extends FlxSpriteGroup
+{
+ var box:FlxSprite;
+
+ var dialogue:Alphabet;
+ var dialogueList:Array = [];
+
+ public var finishThing:Void->Void;
+
+ public function new(talkingRight:Bool = true, ?dialogueList:Array)
+ {
+ super();
+
+ box = new FlxSprite(40);
+ box.frames = FlxAtlasFrames.fromSparrow(AssetPaths.speech_bubble_talking__png, AssetPaths.speech_bubble_talking__xml);
+ box.animation.addByPrefix('normalOpen', 'Speech Bubble Normal Open', 24, false);
+ box.animation.addByPrefix('normal', 'speech bubble normal', 24);
+ box.animation.play('normalOpen');
+ add(box);
+
+ if (!talkingRight)
+ {
+ box.flipX = true;
+ }
+
+ dialogue = new Alphabet(0, 80, "", false, true);
+ // dialogue.x = 90;
+ add(dialogue);
+
+ this.dialogueList = dialogueList;
+ }
+
+ var dialogueOpened:Bool = false;
+ var dialogueStarted:Bool = false;
+
+ override function update(elapsed:Float)
+ {
+ if (box.animation.curAnim != null)
+ {
+ if (box.animation.curAnim.name == 'normalOpen' && box.animation.curAnim.finished)
+ {
+ box.animation.play('normal');
+ dialogueOpened = true;
+ }
+ }
+
+ if (dialogueOpened && !dialogueStarted)
+ {
+ startDialogue();
+ dialogueStarted = true;
+ }
+
+ if (FlxG.keys.justPressed.SPACE)
+ {
+ remove(dialogue);
+
+ if (dialogueList[1] == null)
+ {
+ finishThing();
+ kill();
+ }
+ else
+ {
+ dialogueList.remove(dialogueList[0]);
+ startDialogue();
+ }
+ }
+
+ super.update(elapsed);
+ }
+
+ function startDialogue():Void
+ {
+ var theDialog:Alphabet = new Alphabet(0, 70, dialogueList[0], false, true);
+ dialogue = theDialog;
+ add(theDialog);
+ }
+}
diff --git a/source/FreeplayState.hx b/source/FreeplayState.hx
index f2a717f..0927dd7 100644
--- a/source/FreeplayState.hx
+++ b/source/FreeplayState.hx
@@ -87,6 +87,7 @@ class FreeplayState extends MusicBeatState
if (accepted)
{
PlayState.SONG = Song.loadFromJson(songs[curSelected].toLowerCase());
+ PlayState.isStoryMode = false;
FlxG.switchState(new PlayState());
FlxG.sound.music.stop();
}
@@ -95,6 +96,7 @@ class FreeplayState extends MusicBeatState
if (gamepad.anyJustPressed(["B"])) //"B" is swapped with "A" on Switch
{
PlayState.SONG = Song.loadFromJson(songs[curSelected].toLowerCase());
+ PlayState.isStoryMode = false;
FlxG.switchState(new PlayState());
FlxG.sound.music.stop();
}
diff --git a/source/MainMenuState.hx b/source/MainMenuState.hx
new file mode 100644
index 0000000..687f619
--- /dev/null
+++ b/source/MainMenuState.hx
@@ -0,0 +1,168 @@
+package;
+
+import flixel.FlxG;
+import flixel.FlxObject;
+import flixel.FlxSprite;
+import flixel.effects.FlxFlicker;
+import flixel.graphics.frames.FlxAtlasFrames;
+import flixel.group.FlxGroup.FlxTypedGroup;
+import flixel.tweens.FlxEase;
+import flixel.tweens.FlxTween;
+
+class MainMenuState extends MusicBeatState
+{
+ var curSelected:Int = 0;
+
+ var menuItems:FlxTypedGroup;
+
+ var optionShit:Array = ['story mode', 'freeplay', 'donate'];
+
+ var magenta:FlxSprite;
+ var camFollow:FlxObject;
+
+ override function create()
+ {
+ persistentUpdate = persistentDraw = true;
+
+ var bg:FlxSprite = new FlxSprite(-80).loadGraphic(AssetPaths.menuBG__png);
+ bg.scrollFactor.x = 0;
+ bg.scrollFactor.y = 0.18;
+ bg.setGraphicSize(Std.int(bg.width * 1.1));
+ bg.updateHitbox();
+ bg.screenCenter();
+ bg.antialiasing = true;
+ add(bg);
+
+ camFollow = new FlxObject(0, 0, 1, 1);
+ add(camFollow);
+
+ magenta = new FlxSprite(-80).loadGraphic(AssetPaths.menuBGMagenta__png);
+ magenta.scrollFactor.x = 0;
+ magenta.scrollFactor.y = 0.18;
+ magenta.setGraphicSize(Std.int(magenta.width * 1.1));
+ magenta.updateHitbox();
+ magenta.screenCenter();
+ magenta.visible = false;
+ magenta.antialiasing = true;
+ add(magenta);
+ // magenta.scrollFactor.set();
+
+ menuItems = new FlxTypedGroup();
+ add(menuItems);
+
+ var tex = FlxAtlasFrames.fromSparrow(AssetPaths.FNF_main_menu_assets__png, AssetPaths.FNF_main_menu_assets__xml);
+
+ for (i in 0...optionShit.length)
+ {
+ var menuItem:FlxSprite = new FlxSprite(0, 60 + (i * 160));
+ menuItem.frames = tex;
+ menuItem.animation.addByPrefix('idle', optionShit[i] + " basic", 24);
+ menuItem.animation.addByPrefix('selected', optionShit[i] + " white", 24);
+ menuItem.animation.play('idle');
+ menuItem.ID = i;
+ menuItem.screenCenter(X);
+ menuItems.add(menuItem);
+ menuItem.scrollFactor.set();
+ menuItem.antialiasing = true;
+ }
+
+ FlxG.camera.follow(camFollow, null, 0.06);
+
+ changeItem();
+
+ super.create();
+ }
+
+ override function update(elapsed:Float)
+ {
+ if (controls.UP_P)
+ {
+ FlxG.sound.play('assets/sounds/scrollMenu' + TitleState.soundExt);
+ changeItem(-1);
+ }
+
+ if (controls.DOWN_P)
+ {
+ FlxG.sound.play('assets/sounds/scrollMenu' + TitleState.soundExt);
+ changeItem(1);
+ }
+
+ if (controls.BACK)
+ {
+ FlxG.switchState(new TitleState());
+ }
+
+ super.update(elapsed);
+
+ if (controls.ACCEPT)
+ {
+ if (optionShit[curSelected] == 'donate')
+ {
+ FlxG.openURL('https://ninja-muffin24.itch.io/funkin');
+ }
+ else
+ {
+ FlxG.sound.play('assets/sounds/confirmMenu' + TitleState.soundExt);
+
+ FlxFlicker.flicker(magenta, 1.1, 0.15, false);
+
+ menuItems.forEach(function(spr:FlxSprite)
+ {
+ if (curSelected != spr.ID)
+ {
+ FlxTween.tween(spr, {alpha: 0}, 0.4, {
+ ease: FlxEase.quadOut,
+ onComplete: function(twn:FlxTween)
+ {
+ spr.kill();
+ }
+ });
+ }
+ else
+ {
+ FlxFlicker.flicker(spr, 1, 0.06, false, false, function(flick:FlxFlicker)
+ {
+ var daChoice:String = optionShit[curSelected];
+
+ switch (daChoice)
+ {
+ case 'story mode':
+ FlxG.switchState(new StoryMenuState());
+ case 'freeplay':
+ FlxG.switchState(new FreeplayState());
+ }
+ });
+ }
+ });
+ }
+ }
+
+ menuItems.forEach(function(spr:FlxSprite)
+ {
+ spr.screenCenter(X);
+ });
+ }
+
+ function changeItem(huh:Int = 0)
+ {
+ curSelected += huh;
+
+ if (curSelected >= menuItems.length)
+ curSelected = 0;
+ if (curSelected < 0)
+ curSelected = menuItems.length - 1;
+
+ menuItems.forEach(function(spr:FlxSprite)
+ {
+ spr.animation.play('idle');
+
+ if (spr.ID == curSelected)
+ {
+ spr.animation.play('selected');
+ camFollow.setPosition(spr.getGraphicMidpoint().x, spr.getGraphicMidpoint().y);
+ }
+
+ spr.updateHitbox();
+ });
+ }
+}
diff --git a/source/MenuCharacter.hx b/source/MenuCharacter.hx
new file mode 100644
index 0000000..6835daa
--- /dev/null
+++ b/source/MenuCharacter.hx
@@ -0,0 +1,28 @@
+package;
+
+import flixel.FlxSprite;
+import flixel.graphics.frames.FlxAtlasFrames;
+
+class MenuCharacter extends FlxSprite
+{
+ public var character:String;
+
+ public function new(x:Float, character:String = 'bf')
+ {
+ super(x);
+
+ this.character = character;
+
+ var tex = FlxAtlasFrames.fromSparrow(AssetPaths.campaign_menu_UI_characters__png, AssetPaths.campaign_menu_UI_characters__xml);
+ frames = tex;
+
+ animation.addByPrefix('bf', "BF idle dance white", 24);
+ animation.addByPrefix('bfConfirm', 'BF HEY!!', 24, false);
+ animation.addByPrefix('gf', "GF Dancing Beat WHITE", 24);
+ animation.addByPrefix('dad', "Dad idle dance BLACK LINE", 24);
+ animation.addByPrefix('spooky', "spooky dance idle BLACK LINES", 24);
+
+ animation.play(character);
+ updateHitbox();
+ }
+}
diff --git a/source/MenuItem.hx b/source/MenuItem.hx
index 5e7ddc7..5aae4ee 100644
--- a/source/MenuItem.hx
+++ b/source/MenuItem.hx
@@ -8,6 +8,7 @@ import flixel.math.FlxMath;
class MenuItem extends FlxSpriteGroup
{
public var targetY:Float = 0;
+ public var week:FlxSprite;
public function new(x:Float, y:Float, weekNum:Int = 0, unlocked:Bool = false)
{
@@ -15,13 +16,14 @@ class MenuItem extends FlxSpriteGroup
var tex = FlxAtlasFrames.fromSparrow(AssetPaths.campaign_menu_UI_assets__png, AssetPaths.campaign_menu_UI_assets__xml);
- var week:FlxSprite = new FlxSprite();
+ week = new FlxSprite();
week.frames = tex;
week.animation.addByPrefix('week0', "WEEK1 select", 24);
week.animation.addByPrefix('week1', "week2 select", 24);
add(week);
week.animation.play('week' + weekNum);
+ week.animation.pause();
week.updateHitbox();
if (!unlocked)
diff --git a/source/PlayState.hx b/source/PlayState.hx
index 9f4784d..29aeb73 100644
--- a/source/PlayState.hx
+++ b/source/PlayState.hx
@@ -16,6 +16,7 @@ import flixel.graphics.atlas.FlxAtlas;
import flixel.graphics.frames.FlxAtlasFrames;
import flixel.group.FlxGroup.FlxTypedGroup;
import flixel.math.FlxMath;
+import flixel.math.FlxPoint;
import flixel.system.FlxSound;
import flixel.text.FlxText;
import flixel.tweens.FlxEase;
@@ -33,8 +34,13 @@ using StringTools;
class PlayState extends MusicBeatState
{
- public static var curLevel:String = 'Bopeebo';
+ public static var curLevel:String = 'Tutorial';
public static var SONG:SwagSong;
+ public static var isStoryMode:Bool = false;
+ public static var storyPlaylist:Array = [];
+ public static var storyDifficulty:Int = 1;
+
+ var halloweenLevel:Bool = false;
private var vocals:FlxSound;
@@ -69,6 +75,12 @@ class PlayState extends MusicBeatState
private var camHUD:FlxCamera;
private var camGame:FlxCamera;
+ var dialogue:Array = ['blah blah blah', 'coolswag'];
+
+ var halloweenBG:FlxSprite;
+
+ var talking:Bool = true;
+
override public function create()
{
// var gameCam:FlxCamera = FlxG.camera;
@@ -89,28 +101,68 @@ class PlayState extends MusicBeatState
Conductor.changeBPM(SONG.bpm);
- var bg:FlxSprite = new FlxSprite(-600, -200).loadGraphic(AssetPaths.stageback__png);
- // bg.setGraphicSize(Std.int(bg.width * 2.5));
- // bg.updateHitbox();
- bg.antialiasing = true;
- bg.scrollFactor.set(0.9, 0.9);
- bg.active = false;
- add(bg);
+ switch (SONG.song.toLowerCase())
+ {
+ case 'tutorial':
+ dialogue = ["Hey you're pretty cute.", 'Use the arrow keys to keep up \nwith me singing.'];
+ case 'bopeebo':
+ dialogue = [
+ 'HEY!',
+ "You think you can just sing\nwith my daughter like that?",
+ "If you want to date her...",
+ "You're going to have to go \nthrough ME first!"
+ ];
+ case 'fresh':
+ dialogue = ["Not too shabby boy.", ""];
+ case 'dadbattle':
+ dialogue = [
+ "gah you think you're hot stuff?",
+ "If you can beat me here...",
+ "Only then I will even CONSIDER letting you\ndate my daughter!"
+ ];
+ }
- var stageFront:FlxSprite = new FlxSprite(-650, 600).loadGraphic(AssetPaths.stagefront__png);
- stageFront.setGraphicSize(Std.int(stageFront.width * 1.1));
- stageFront.updateHitbox();
- stageFront.antialiasing = true;
- stageFront.scrollFactor.set(0.9, 0.9);
- stageFront.active = false;
- add(stageFront);
+ if (SONG.song.toLowerCase() == 'spookeez' || SONG.song.toLowerCase() == 'monster' || SONG.song.toLowerCase() == 'south')
+ {
+ halloweenLevel = true;
- var stageCurtains:FlxSprite = new FlxSprite(-500, -300).loadGraphic(AssetPaths.stagecurtains__png);
- stageCurtains.setGraphicSize(Std.int(stageCurtains.width * 0.9));
- stageCurtains.updateHitbox();
- stageCurtains.antialiasing = true;
- stageCurtains.scrollFactor.set(1.3, 1.3);
- stageCurtains.active = false;
+ var hallowTex = FlxAtlasFrames.fromSparrow(AssetPaths.halloween_bg__png, AssetPaths.halloween_bg__xml);
+
+ halloweenBG = new FlxSprite(-200, -100);
+ halloweenBG.frames = hallowTex;
+ halloweenBG.animation.addByPrefix('idle', 'halloweem bg0');
+ halloweenBG.animation.addByPrefix('lightning', 'halloweem bg lightning strike', 24, false);
+ halloweenBG.animation.play('idle');
+ halloweenBG.antialiasing = true;
+ add(halloweenBG);
+ }
+ else
+ {
+ var bg:FlxSprite = new FlxSprite(-600, -200).loadGraphic(AssetPaths.stageback__png);
+ // bg.setGraphicSize(Std.int(bg.width * 2.5));
+ // bg.updateHitbox();
+ bg.antialiasing = true;
+ bg.scrollFactor.set(0.9, 0.9);
+ bg.active = false;
+ add(bg);
+
+ var stageFront:FlxSprite = new FlxSprite(-650, 600).loadGraphic(AssetPaths.stagefront__png);
+ stageFront.setGraphicSize(Std.int(stageFront.width * 1.1));
+ stageFront.updateHitbox();
+ stageFront.antialiasing = true;
+ stageFront.scrollFactor.set(0.9, 0.9);
+ stageFront.active = false;
+ add(stageFront);
+
+ var stageCurtains:FlxSprite = new FlxSprite(-500, -300).loadGraphic(AssetPaths.stagecurtains__png);
+ stageCurtains.setGraphicSize(Std.int(stageCurtains.width * 0.9));
+ stageCurtains.updateHitbox();
+ stageCurtains.antialiasing = true;
+ stageCurtains.scrollFactor.set(1.3, 1.3);
+ stageCurtains.active = false;
+
+ add(stageCurtains);
+ }
gf = new Character(400, 130, 'gf');
gf.scrollFactor.set(0.95, 0.95);
@@ -120,21 +172,37 @@ class PlayState extends MusicBeatState
dad = new Character(100, 100, SONG.player2);
add(dad);
+ var camPos:FlxPoint = new FlxPoint(dad.getGraphicMidpoint().x, dad.getGraphicMidpoint().y);
+
switch (SONG.player2)
{
case 'gf':
dad.setPosition(gf.x, gf.y);
gf.visible = false;
+ if (isStoryMode)
+ {
+ camPos.x += 600;
+ tweenCamIn();
+ }
+
case "spooky":
dad.y += 200;
case "monster":
dad.y += 100;
+ case 'dad':
+ camPos.x += 400;
}
boyfriend = new Boyfriend(770, 450);
add(boyfriend);
- add(stageCurtains);
+ var doof:DialogueBox = new DialogueBox(false, dialogue);
+ // doof.x += 70;
+ doof.y = FlxG.height * 0.5;
+ doof.scrollFactor.set();
+ doof.finishThing = startCountdown;
+
+ Conductor.songPosition = -5000;
strumLine = new FlxSprite(0, 50).makeGraphic(FlxG.width, 10);
strumLine.scrollFactor.set();
@@ -146,14 +214,15 @@ class PlayState extends MusicBeatState
startingSong = true;
- startCountdown();
+ // startCountdown();
generateSong(SONG.song);
// add(strumLine);
camFollow = new FlxObject(0, 0, 1, 1);
- camFollow.setPosition(dad.getGraphicMidpoint().x, dad.getGraphicMidpoint().y);
+
+ camFollow.setPosition(camPos.x, camPos.y);
add(camFollow);
FlxG.camera.follow(camFollow, LOCKON, 0.04);
@@ -186,11 +255,22 @@ class PlayState extends MusicBeatState
healthHeads.antialiasing = true;
add(healthHeads);
+ // healthBar.visible = healthHeads.visible = healthBarBG.visible = false;
+ if (isStoryMode)
+ {
+ // TEMP for now, later get rid of startCountdown()
+ // add(doof);
+ startCountdown();
+ }
+ else
+ startCountdown();
+
strumLineNotes.cameras = [camHUD];
notes.cameras = [camHUD];
healthBar.cameras = [camHUD];
healthBarBG.cameras = [camHUD];
healthHeads.cameras = [camHUD];
+ doof.cameras = [camHUD];
// if (SONG.song == 'South')
// FlxG.camera.alpha = 0.7;
@@ -205,6 +285,10 @@ class PlayState extends MusicBeatState
function startCountdown():Void
{
+ generateStaticArrows(0);
+ generateStaticArrows(1);
+
+ talking = false;
startedCountdown = true;
Conductor.songPosition = 0;
Conductor.songPosition -= Conductor.crochet * 5;
@@ -278,7 +362,8 @@ class PlayState extends MusicBeatState
lastReportedPlayheadPosition = 0;
startingSong = false;
- FlxG.sound.playMusic("assets/music/" + SONG.song + "_Inst" + TitleState.soundExt);
+ FlxG.sound.playMusic("assets/music/" + SONG.song + "_Inst" + TitleState.soundExt, 1, false);
+ FlxG.sound.music.onComplete = endSong;
vocals.play();
}
@@ -288,9 +373,6 @@ class PlayState extends MusicBeatState
{
// FlxG.log.add(ChartParser.parse());
- generateStaticArrows(0);
- generateStaticArrows(1);
-
var songData = SONG;
Conductor.changeBPM(songData.bpm);
@@ -448,6 +530,11 @@ class PlayState extends MusicBeatState
}
}
+ function tweenCamIn():Void
+ {
+ FlxTween.tween(FlxG.camera, {zoom: 1.3}, (Conductor.stepCrochet * 4 / 1000), {ease: FlxEase.elasticInOut});
+ }
+
override function openSubState(SubState:FlxSubState)
{
if (paused)
@@ -495,7 +582,7 @@ class PlayState extends MusicBeatState
// trace("SONG POS: " + Conductor.songPosition);
// FlxG.sound.music.pitch = 2;
- if (FlxG.keys.justPressed.ENTER)
+ if (FlxG.keys.justPressed.ENTER && startedCountdown)
{
persistentUpdate = false;
persistentDraw = true;
@@ -570,7 +657,7 @@ class PlayState extends MusicBeatState
if (SONG.song.toLowerCase() == 'tutorial')
{
- FlxTween.tween(FlxG.camera, {zoom: 1.3}, (Conductor.stepCrochet * 4 / 1000), {ease: FlxEase.elasticInOut});
+ tweenCamIn();
}
}
@@ -606,9 +693,9 @@ class PlayState extends MusicBeatState
case 112:
gfSpeed = 1;
case 163:
- FlxG.sound.music.stop();
- curLevel = 'Bopeebo';
- FlxG.switchState(new TitleState());
+ // FlxG.sound.music.stop();
+ // curLevel = 'Bopeebo';
+ // FlxG.switchState(new TitleState());
}
}
@@ -617,9 +704,9 @@ class PlayState extends MusicBeatState
switch (totalBeats)
{
case 127:
- FlxG.sound.music.stop();
- curLevel = 'Fresh';
- FlxG.switchState(new PlayState());
+ // FlxG.sound.music.stop();
+ // curLevel = 'Fresh';
+ // FlxG.switchState(new PlayState());
}
}
// better streaming of shit
@@ -697,7 +784,7 @@ class PlayState extends MusicBeatState
{
if (daNote.tooLate)
{
- health -= 0.03;
+ health -= 0.04;
vocals.volume = 0;
}
@@ -714,6 +801,42 @@ class PlayState extends MusicBeatState
keyShit();
}
+ function endSong():Void
+ {
+ trace('SONG DONE' + isStoryMode);
+
+ if (isStoryMode)
+ {
+ storyPlaylist.remove(storyPlaylist[0]);
+
+ if (storyPlaylist.length <= 0)
+ {
+ FlxG.switchState(new TitleState());
+
+ StoryMenuState.weekUnlocked[1] = true;
+ }
+ else
+ {
+ var difficulty:String = "";
+
+ if (storyDifficulty == 0)
+ difficulty = '-easy';
+
+ if (storyDifficulty == 2)
+ difficulty == '-hard';
+
+ PlayState.SONG = Song.loadFromJson(PlayState.storyPlaylist[0].toLowerCase() + difficulty, PlayState.storyPlaylist[0]);
+ FlxG.switchState(new PlayState());
+ }
+ }
+ else
+ {
+ FlxG.switchState(new FreeplayState());
+ }
+ }
+
+ var endingSong:Bool = false;
+
private function popUpScore(strumtime:Float):Void
{
var noteDiff:Float = Math.abs(strumtime - Conductor.songPosition);
@@ -972,7 +1095,7 @@ class PlayState extends MusicBeatState
{
if (!boyfriend.stunned)
{
- health -= 0.055;
+ health -= 0.06;
if (combo > 5)
{
gf.playAnim('sad');
@@ -1068,9 +1191,9 @@ class PlayState extends MusicBeatState
}
if (note.noteData >= 0)
- health += 0.03;
+ health += 0.023;
else
- health += 0.007;
+ health += 0.004;
switch (note.noteData)
{
@@ -1131,22 +1254,25 @@ class PlayState extends MusicBeatState
notes.sort(FlxSort.byY, FlxSort.DESCENDING);
}
- FlxG.log.add('change bpm' + SONG.notes[Std.int(curStep / 16)].changeBPM);
- if (SONG.notes[Std.int(curStep / 16)].changeBPM)
+ if (SONG.notes[Math.floor(curStep / 16)] != null)
{
- Conductor.changeBPM(SONG.notes[Std.int(curStep / 16)].bpm);
- FlxG.log.add('CHANGED BPM!');
+ if (SONG.notes[Math.floor(curStep / 16)].changeBPM)
+ {
+ Conductor.changeBPM(SONG.notes[Math.floor(curStep / 16)].bpm);
+ FlxG.log.add('CHANGED BPM!');
+ }
+ else
+ Conductor.changeBPM(SONG.bpm);
+
+ // Dad doesnt interupt his own notes
+ if (SONG.notes[Math.floor(curStep / 16)].mustHitSection)
+ dad.dance();
}
- else
- Conductor.changeBPM(SONG.bpm);
+ // FlxG.log.add('change bpm' + SONG.notes[Std.int(curStep / 16)].changeBPM);
if (camZooming && FlxG.camera.zoom < 1.35 && totalBeats % 4 == 0)
FlxG.camera.zoom += 0.025;
- // Dad doesnt interupt his own notes
- if (SONG.notes[Std.int(curStep / 16)].mustHitSection)
- dad.dance();
-
healthHeads.setGraphicSize(Std.int(healthHeads.width + 20));
if (totalBeats % gfSpeed == 0)
diff --git a/source/Song.hx b/source/Song.hx
index 3c2ac41..aa75d39 100644
--- a/source/Song.hx
+++ b/source/Song.hx
@@ -47,9 +47,9 @@ class Song
}
}
- public static function loadFromJson(jsonInput:String):SwagSong
+ public static function loadFromJson(jsonInput:String, ?folder:String):SwagSong
{
- var rawJson = Assets.getText('assets/data/' + jsonInput.toLowerCase() + '/' + jsonInput.toLowerCase() + '.json').trim();
+ var rawJson = Assets.getText('assets/data/' + folder.toLowerCase() + '/' + jsonInput.toLowerCase() + '.json').trim();
while (!rawJson.endsWith("}"))
{
diff --git a/source/StoryMenuState.hx b/source/StoryMenuState.hx
index bae5703..0937464 100644
--- a/source/StoryMenuState.hx
+++ b/source/StoryMenuState.hx
@@ -6,6 +6,9 @@ import flixel.graphics.frames.FlxAtlasFrames;
import flixel.group.FlxGroup.FlxTypedGroup;
import flixel.group.FlxGroup;
import flixel.text.FlxText;
+import flixel.tweens.FlxTween;
+import flixel.util.FlxTimer;
+import lime.net.curl.CURLCode;
using StringTools;
@@ -13,31 +16,38 @@ class StoryMenuState extends MusicBeatState
{
var scoreText:FlxText;
- var weekData:Array = [['Tutorial', 'Bopeebo', 'Fresh', 'Dad Battle'], ['Spookeez', 'South', 'Monster']];
- var weekUnlocked:Array = [true, false];
+ var weekData:Array = [['Tutorial', 'Bopeebo', 'Fresh', 'Dadbattle'], ['Spookeez', 'South', 'Monster']];
+ var curDifficulty:Int = 1;
+ public static var weekUnlocked:Array = [true, false];
+
+ var weekCharacters:Array = [['dad', 'bf', 'gf'], ['spooky', 'bf', 'gf']];
var curWeek:Int = 0;
var txtTracklist:FlxText;
var grpWeekText:FlxTypedGroup