Code edit (2 edits merged)
Please save this source code
User prompt
level 4 için SevenStripeArmey isimli müzik asseti çalsın, ve menüdeki ismini "Beginner: Coming Soon!"dan "Beginner: SevenStripe-Armey" olarak değiştir
User prompt
ana menüdeki developer mode tuşu eğer açıksa yani :on durumunda ise levellerin hepsinin kilidi açık olsun
User prompt
oyuna başlanıldığında sadece beginner leveli tıklanabilir olsun diğer level başarıldığında ise sırasıyla diğer levellerin de kilidi açılsın. sıra şu şekilde: beginner>easy>medium>hard. kilitli olan levellerin ise yazı ve arkasında bulunan assetini silik yarı saydam bir şekilde göster. kilidi açık olanlar ise normal dursun ↪💡 Consider importing and using the following plugins: @upit/storage.v1, @upit/tween.v1
User prompt
gelen notalara göre doğru zamanda drum padlere vurarak otomatik olarak oyna
User prompt
padlere doğru zamanda vurarak oyunu otomatik olarak oyna bu sayede notaların doğru olup olmadığını duyarak kontrol edeceğim
User prompt
gelen notaları doğru zamanda otomatik olarak padlere vur
User prompt
gelen notaları otomaitk olarak çalsın ve duyayım
User prompt
Level 4: Custom Challange yazan yeri "Beginner: Coming Soon!" olarak değiştir
User prompt
level 4 için WeWontRockYou isimli müzik asseti çalsın
User prompt
level 4 ekle
User prompt
yeni bir 4. level ekle ve ismi "Beginner: Soon!" olsun
User prompt
o yazıyı alt alta yap ve biraz daha küçült
User prompt
başarısız olunduğunda çıkan Failed yazısını "Not Quite My Tempo!!" olarak değiştir
User prompt
back butonunun boyutunu küçült ve daralt
User prompt
menüler arasında geri gitme tuşu ekle
User prompt
developer mode:on olduğu zaman yeşil :off olduğu zaman kırmızı olacak ve oyun açıldığında her zaman default olarak :off olacak ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
developer mode butonunu daha da küçült
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot set properties of undefined (setting 'fill')' in or related to this line: 'devModeBtn.style.fill = isDeveloperMode ? "#00FF00" : "#FF6666";' Line Number: 6160
User prompt
Developer mode butonunu daha da küçülterek biraz daha yukarı taşı çok göz önünde gözükmesin ayrıca :on olduğu zaman yazı yeşil olsun
User prompt
giriş ekranına play tuşunun 200 pixel üstüne küçük minik bir buton ekle bu buton levellarda olan kayıt tuşunu aktif etme butonu olsun. oyun ilk başladığında bu buton default olarak kapalı olsun. Butonda şöyle yazsın: "Developer mode" :on veya :off olsun ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
yanlış söylemişim "Easy: AB/CD Back in Track" Olacaktı
User prompt
Level 3ün level yerine yazan ismini "AB/CD Back in Track" olarak değiştir
Code edit (1 edits merged)
Please save this source code
User prompt
level 3 ün notalarını şu şekilde değiştir: var songNotes = [ { tick: 0, type: 'kick' }, { tick: 0, type: 'crash1' }, { tick: 18, type: 'hihat' }, { tick: 37, type: 'hihat' }, { tick: 38, type: 'snare' }, { tick: 55, type: 'hihat' }, { tick: 73, type: 'hihat' }, { tick: 74, type: 'kick' }, { tick: 91, type: 'hihat' }, { tick: 109, type: 'snare' }, { tick: 109, type: 'hihat' }, { tick: 128, type: 'hihat' }, { tick: 145, type: 'kick' }, { tick: 145, type: 'hihat' }, { tick: 162, type: 'hihat' }, { tick: 180, type: 'hihat' }, { tick: 180, type: 'snare' }, { tick: 197, type: 'hihat' }, { tick: 216, type: 'hihat' }, { tick: 217, type: 'kick' }, { tick: 236, type: 'hihat' }, { tick: 252, type: 'snare' }, { tick: 253, type: 'hihat' }, { tick: 271, type: 'hihat' }, { tick: 289, type: 'hihat' }, { tick: 289, type: 'kick' }, { tick: 306, type: 'hihat' }, { tick: 323, type: 'hihat' }, { tick: 324, type: 'snare' }, { tick: 342, type: 'hihat' }, { tick: 360, type: 'hihat' }, { tick: 360, type: 'kick' }, { tick: 379, type: 'hihat' }, { tick: 397, type: 'hihat' }, { tick: 398, type: 'snare' }, { tick: 415, type: 'hihat' }, { tick: 433, type: 'hihat' }, { tick: 433, type: 'kick' }, { tick: 450, type: 'hihat' }, { tick: 468, type: 'snare' }, { tick: 475, type: 'tom1' }, { tick: 497, type: 'snare' }, { tick: 503, type: 'tom1' }, { tick: 527, type: 'snare' }, { tick: 532, type: 'tom1' }, { tick: 554, type: 'snare' }, { tick: 558, type: 'tom1' }, { tick: 582, type: 'crash1' }, { tick: 582, type: 'kick' }, { tick: 603, type: 'hihat' }, { tick: 618, type: 'snare' }, { tick: 618, type: 'hihat' }, { tick: 636, type: 'hihat' }, { tick: 654, type: 'hihat' }, { tick: 654, type: 'kick' }, { tick: 671, type: 'hihat' }, { tick: 689, type: 'snare' }, { tick: 691, type: 'hihat' }, { tick: 710, type: 'hihat' }, { tick: 727, type: 'hihat' }, { tick: 728, type: 'kick' }, { tick: 743, type: 'hihat' }, { tick: 763, type: 'hihat' }, { tick: 763, type: 'snare' }, { tick: 781, type: 'hihat' }, { tick: 798, type: 'hihat' }, { tick: 798, type: 'kick' }, { tick: 814, type: 'hihat' }, { tick: 832, type: 'snare' }, { tick: 832, type: 'hihat' }, { tick: 850, type: 'hihat' }, { tick: 868, type: 'hihat' }, { tick: 870, type: 'kick' }, { tick: 887, type: 'hihat' }, { tick: 904, type: 'snare' }, { tick: 905, type: 'hihat' }, { tick: 925, type: 'hihat' }, { tick: 942, type: 'hihat' }, { tick: 942, type: 'kick' }, { tick: 961, type: 'hihat' }, { tick: 978, type: 'snare' }, { tick: 978, type: 'hihat' }, { tick: 997, type: 'hihat' }, { tick: 1015, type: 'hihat' }, { tick: 1016, type: 'kick' }, { tick: 1032, type: 'hihat' }, { tick: 1051, type: 'snare' }, { tick: 1058, type: 'tom1' }, { tick: 1080, type: 'snare' }, { tick: 1086, type: 'tom1' }, { tick: 1108, type: 'snare' }, { tick: 1113, type: 'tom1' }, { tick: 1135, type: 'snare' }, { tick: 1141, type: 'tom1' }, { tick: 1163, type: 'kick' }, { tick: 1163, type: 'crash1' }, { tick: 1181, type: 'hihat' }, { tick: 1200, type: 'hihat' }, { tick: 1200, type: 'snare' }, { tick: 1219, type: 'hihat' }, { tick: 1235, type: 'hihat' }, { tick: 1235, type: 'kick' }, { tick: 1253, type: 'hihat' }, { tick: 1270, type: 'snare' }, { tick: 1270, type: 'hihat' }, { tick: 1290, type: 'hihat' }, { tick: 1308, type: 'hihat' }, { tick: 1308, type: 'kick' }, { tick: 1325, type: 'hihat' }, { tick: 1344, type: 'hihat' }, { tick: 1345, type: 'snare' }, { tick: 1363, type: 'hihat' }, { tick: 1382, type: 'hihat' }, { tick: 1382, type: 'kick' }, { tick: 1398, type: 'hihat' }, { tick: 1417, type: 'hihat' }, { tick: 1418, type: 'snare' }, { tick: 1434, type: 'hihat' }, { tick: 1452, type: 'hihat' }, { tick: 1453, type: 'kick' }, { tick: 1471, type: 'hihat' }, { tick: 1489, type: 'hihat' }, { tick: 1489, type: 'snare' }, { tick: 1508, type: 'hihat' }, { tick: 1526, type: 'hihat' }, { tick: 1526, type: 'kick' }, { tick: 1544, type: 'hihat' }, { tick: 1562, type: 'hihat' }, { tick: 1563, type: 'snare' }, { tick: 1579, type: 'hihat' }, { tick: 1597, type: 'hihat' }, { tick: 1599, type: 'kick' }, { tick: 1616, type: 'hihat' }, { tick: 1637, type: 'snare' }, { tick: 1642, type: 'tom1' }, { tick: 1664, type: 'snare' }, { tick: 1669, type: 'tom1' }, { tick: 1689, type: 'snare' }, { tick: 1695, type: 'tom1' }, { tick: 1715, type: 'snare' }, { tick: 1721, type: 'tom1' }, { tick: 1743, type: 'crash1' }, { tick: 1744, type: 'kick' }, { tick: 1761, type: 'hihat' }, { tick: 1778, type: 'snare' }, { tick: 1780, type: 'hihat' }, { tick: 1798, type: 'hihat' }, { tick: 1816, type: 'hihat' }, { tick: 1817, type: 'kick' }, { tick: 1834, type: 'hihat' }, { tick: 1850, type: 'snare' }, { tick: 1851, type: 'hihat' }, { tick: 1869, type: 'hihat' }, { tick: 1886, type: 'hihat' }, { tick: 1888, type: 'kick' }, { tick: 1905, type: 'hihat' }, { tick: 1920, type: 'hihat' }, { tick: 1920, type: 'snare' }, { tick: 1941, type: 'hihat' }, { tick: 1961, type: 'hihat' }, { tick: 1961, type: 'kick' }, { tick: 1978, type: 'hihat' }, { tick: 1997, type: 'snare' }, { tick: 1997, type: 'hihat' }, { tick: 2015, type: 'hihat' }, { tick: 2034, type: 'kick' }, { tick: 2035, type: 'hihat' }, { tick: 2051, type: 'hihat' }, { tick: 2069, type: 'snare' }, { tick: 2069, type: 'hihat' }, { tick: 2087, type: 'hihat' }, { tick: 2104, type: 'hihat' }, { tick: 2104, type: 'kick' }, { tick: 2122, type: 'hihat' }, { tick: 2141, type: 'hihat' }, { tick: 2142, type: 'snare' }, { tick: 2159, type: 'hihat' }, { tick: 2177, type: 'hihat' }, { tick: 2177, type: 'kick' }, { tick: 2195, type: 'hihat' }, { tick: 2214, type: 'snare' }, { tick: 2221, type: 'tom1' }, { tick: 2241, type: 'snare' }, { tick: 2248, type: 'tom1' }, { tick: 2270, type: 'snare' }, { tick: 2276, type: 'tom1' }, { tick: 2296, type: 'snare' }, { tick: 2302, type: 'tom1' }, { tick: 2323, type: 'crash1' }, { tick: 2324, type: 'kick' }, { tick: 2342, type: 'hihat' }, { tick: 2360, type: 'snare' }, { tick: 2361, type: 'hihat' }, { tick: 2378, type: 'hihat' }, { tick: 2396, type: 'kick' }, { tick: 2397, type: 'hihat' }, { tick: 2415, type: 'hihat' }, { tick: 2432, type: 'snare' }, { tick: 2432, type: 'hihat' }, { tick: 2452, type: 'hihat' }, { tick: 2471, type: 'crash1' }, { tick: 2471, type: 'kick' }, { tick: 2493, type: 'hihat' }, { tick: 2507, type: 'snare' }, { tick: 2508, type: 'hihat' }, { tick: 2524, type: 'hihat' }, { tick: 2542, type: 'hihat' }, { tick: 2542, type: 'kick' }, { tick: 2558, type: 'hihat' }, { tick: 2576, type: 'snare' }, { tick: 2577, type: 'hihat' }, { tick: 2596, type: 'hihat' }, { tick: 2615, type: 'crash1' }, { tick: 2615, type: 'kick' }, { tick: 2636, type: 'hihat' }, { tick: 2651, type: 'snare' }, { tick: 2651, type: 'hihat' }, { tick: 2668, type: 'hihat' }, { tick: 2686, type: 'kick' }, { tick: 2686, type: 'hihat' }, { tick: 2705, type: 'hihat' }, { tick: 2722, type: 'snare' }, { tick: 2722, type: 'hihat' }, { tick: 2738, type: 'hihat' }, { tick: 2758, type: 'kick' }, { tick: 2759, type: 'crash1' }, { tick: 2776, type: 'hihat' }, { tick: 2795, type: 'hihat' }, { tick: 2795, type: 'snare' }, { tick: 2814, type: 'hihat' }, { tick: 2831, type: 'kick' }, { tick: 2831, type: 'hihat' }, { tick: 2851, type: 'hihat' }, { tick: 2868, type: 'hihat' }, { tick: 2868, type: 'snare' }, { tick: 2884, type: 'hihat' }, { tick: 2902, type: 'crash1' }, { tick: 2903, type: 'kick' }, { tick: 2922, type: 'hihat' }, { tick: 2941, type: 'hihat' }, { tick: 2941, type: 'snare' }, { tick: 2958, type: 'hihat' }, { tick: 2977, type: 'kick' }, { tick: 2977, type: 'hihat' }, { tick: 2994, type: 'hihat' }, { tick: 3012, type: 'hihat' }, { tick: 3012, type: 'snare' }, { tick: 3031, type: 'hihat' }, { tick: 3048, type: 'crash1' }, { tick: 3049, type: 'kick' }, { tick: 3067, type: 'hihat' }, { tick: 3084, type: 'snare' }, { tick: 3085, type: 'hihat' }, { tick: 3103, type: 'hihat' }, { tick: 3121, type: 'kick' }, { tick: 3121, type: 'hihat' }, { tick: 3138, type: 'hihat' }, { tick: 3157, type: 'snare' }, { tick: 3158, type: 'hihat' }, { tick: 3176, type: 'hihat' }, { tick: 3192, type: 'crash1' }, { tick: 3193, type: 'kick' }, { tick: 3211, type: 'hihat' }, { tick: 3229, type: 'snare' }, { tick: 3229, type: 'hihat' }, { tick: 3246, type: 'hihat' }, { tick: 3265, type: 'kick' }, { tick: 3265, type: 'hihat' }, { tick: 3283, type: 'hihat' }, { tick: 3301, type: 'snare' }, { tick: 3302, type: 'hihat' }, { tick: 3320, type: 'hihat' }, { tick: 3337, type: 'kick' }, { tick: 3337, type: 'crash1' }, { tick: 3365, type: 'crash1' }, { tick: 3365, type: 'kick' }, { tick: 3392, type: 'crash1' }, { tick: 3392, type: 'kick' }, { tick: 3441, type: 'snare' }, { tick: 3484, type: 'crash1' }, { tick: 3484, type: 'kick' }, { tick: 3503, type: 'hihat' }, { tick: 3521, type: 'hihat' }, { tick: 3521, type: 'snare' }, { tick: 3540, type: 'hihat' }, { tick: 3558, type: 'hihat' }, { tick: 3559, type: 'kick' }, { tick: 3577, type: 'hihat' }, { tick: 3594, type: 'snare' }, { tick: 3594, type: 'hihat' }, { tick: 3612, type: 'hihat' }, { tick: 3631, type: 'hihat' }, { tick: 3631, type: 'kick' }, { tick: 3651, type: 'hihat' }, { tick: 3667, type: 'snare' }, { tick: 3667, type: 'hihat' }, { tick: 3685, type: 'hihat' }, { tick: 3702, type: 'hihat' }, { tick: 3703, type: 'kick' }, { tick: 3721, type: 'hihat' }, { tick: 3740, type: 'snare' }, { tick: 3740, type: 'hihat' }, { tick: 3756, type: 'hihat' }, { tick: 3777, type: 'hihat' }, { tick: 3778, type: 'kick' }, { tick: 3793, type: 'hihat' }, { tick: 3811, type: 'hihat' }, { tick: 3812, type: 'snare' }, { tick: 3829, type: 'hihat' }, { tick: 3847, type: 'hihat' }, { tick: 3847, type: 'kick' }, { tick: 3865, type: 'hihat' }, { tick: 3883, type: 'hihat' }, { tick: 3883, type: 'snare' }, { tick: 3899, type: 'hihat' }, { tick: 3917, type: 'hihat' }, { tick: 3917, type: 'kick' }, { tick: 3936, type: 'hihat' }, { tick: 3958, type: 'snare' }, { tick: 3986, type: 'snare' }, { tick: 3990, type: 'tom1' }, { tick: 4012, type: 'snare' }, { tick: 4018, type: 'tom1' }, { tick: 4040, type: 'snare' }, { tick: 4046, type: 'tom1' }, { tick: 4065, type: 'kick' }, { tick: 4066, type: 'crash1' }, { tick: 4085, type: 'hihat' }, { tick: 4103, type: 'hihat' }, { tick: 4103, type: 'snare' }, { tick: 4121, type: 'hihat' }, { tick: 4138, type: 'kick' }, { tick: 4140, type: 'hihat' }, { tick: 4157, type: 'hihat' }, { tick: 4175, type: 'snare' }, { tick: 4175, type: 'hihat' }, { tick: 4193, type: 'hihat' }, { tick: 4210, type: 'kick' }, { tick: 4211, type: 'hihat' }, { tick: 4229, type: 'hihat' }, { tick: 4247, type: 'snare' }, { tick: 4248, type: 'hihat' }, { tick: 4266, type: 'hihat' }, { tick: 4284, type: 'hihat' }, { tick: 4285, type: 'kick' }, { tick: 4303, type: 'hihat' }, { tick: 4320, type: 'hihat' }, { tick: 4321, type: 'snare' }, { tick: 4340, type: 'hihat' }, { tick: 4357, type: 'kick' }, { tick: 4358, type: 'hihat' }, { tick: 4376, type: 'hihat' }, { tick: 4393, type: 'hihat' }, { tick: 4394, type: 'snare' }, { tick: 4411, type: 'hihat' }, { tick: 4430, type: 'hihat' }, { tick: 4431, type: 'kick' }, { tick: 4448, type: 'hihat' }, { tick: 4465, type: 'hihat' }, { tick: 4465, type: 'snare' }, { tick: 4484, type: 'hihat' }, { tick: 4501, type: 'hihat' }, { tick: 4502, type: 'kick' }, { tick: 4518, type: 'hihat' }, { tick: 4532, type: 'snare' }, { tick: 4544, type: 'tom1' }, { tick: 4568, type: 'snare' }, { tick: 4574, type: 'tom1' }, { tick: 4598, type: 'snare' }, { tick: 4602, type: 'tom1' }, { tick: 4624, type: 'snare' }, { tick: 4629, type: 'tom1' }, { tick: 4648, type: 'crash1' }, { tick: 4648, type: 'kick' }, { tick: 4665, type: 'hihat' }, { tick: 4683, type: 'snare' }, { tick: 4684, type: 'hihat' }, { tick: 4702, type: 'hihat' }, { tick: 4720, type: 'kick' }, { tick: 4721, type: 'hihat' }, { tick: 4739, type: 'hihat' }, { tick: 4756, type: 'snare' }, { tick: 4756, type: 'hihat' }, { tick: 4775, type: 'hihat' }, { tick: 4793, type: 'crash1' }, { tick: 4793, type: 'kick' }, { tick: 4810, type: 'hihat' }, { tick: 4827, type: 'snare' }, { tick: 4829, type: 'hihat' }, { tick: 4847, type: 'hihat' }, { tick: 4864, type: 'kick' }, { tick: 4865, type: 'hihat' }, { tick: 4883, type: 'hihat' }, { tick: 4900, type: 'snare' }, { tick: 4900, type: 'hihat' }, { tick: 4918, type: 'hihat' }, { tick: 4936, type: 'crash1' }, { tick: 4936, type: 'kick' }, { tick: 4956, type: 'hihat' }, { tick: 4974, type: 'snare' }, { tick: 4974, type: 'hihat' }, { tick: 4991, type: 'hihat' }, { tick: 5009, type: 'hihat' }, { tick: 5010, type: 'kick' }, { tick: 5026, type: 'hihat' }, { tick: 5044, type: 'hihat' }, { tick: 5045, type: 'snare' }, { tick: 5064, type: 'hihat' }, { tick: 5082, type: 'kick' }, { tick: 5082, type: 'crash1' }, { tick: 5104, type: 'hihat' }, { tick: 5119, type: 'snare' }, { tick: 5120, type: 'hihat' }, { tick: 5137, type: 'hihat' }, { tick: 5156, type: 'kick' }, { tick: 5156, type: 'hihat' }, { tick: 5172, type: 'hihat' }, { tick: 5191, type: 'hihat' }, { tick: 5191, type: 'snare' }, { tick: 5209, type: 'hihat' }, { tick: 5227, type: 'crash1' }, { tick: 5227, type: 'kick' }, { tick: 5247, type: 'hihat' }, { tick: 5264, type: 'snare' }, { tick: 5264, type: 'hihat' }, { tick: 5282, type: 'hihat' }, { tick: 5300, type: 'hihat' }, { tick: 5300, type: 'kick' }, { tick: 5318, type: 'hihat' }, { tick: 5334, type: 'snare' }, { tick: 5335, type: 'hihat' }, { tick: 5355, type: 'hihat' }, { tick: 5373, type: 'crash1' }, { tick: 5373, type: 'kick' }, { tick: 5394, type: 'hihat' }, { tick: 5409, type: 'snare' }, { tick: 5411, type: 'hihat' }, { tick: 5427, type: 'hihat' }, { tick: 5445, type: 'hihat' }, { tick: 5446, type: 'kick' }, { tick: 5463, type: 'hihat' }, { tick: 5480, type: 'hihat' }, { tick: 5481, type: 'snare' }, { tick: 5500, type: 'hihat' }, { tick: 5516, type: 'crash1' }, { tick: 5518, type: 'kick' }, { tick: 5535, type: 'hihat' }, { tick: 5551, type: 'snare' }, { tick: 5552, type: 'hihat' }, { tick: 5571, type: 'hihat' }, { tick: 5589, type: 'hihat' }, { tick: 5589, type: 'kick' }, { tick: 5607, type: 'hihat' }, { tick: 5626, type: 'hihat' }, { tick: 5626, type: 'snare' }, { tick: 5642, type: 'hihat' }, { tick: 5662, type: 'crash1' }, { tick: 5663, type: 'kick' }, { tick: 5688, type: 'crash1' }, { tick: 5689, type: 'kick' }, { tick: 5715, type: 'crash1' }, { tick: 5715, type: 'kick' }, { tick: 5761, type: 'snare' }, { tick: 5809, type: 'kick' }, { tick: 5809, type: 'crash1' }, ];
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); var storage = LK.import("@upit/storage.v1"); /**** * Classes ****/ // DrumPad: Interactive drum pad at the bottom var DrumPad = Container.expand(function () { var self = Container.call(this); // .padType: 'kick', 'snare', etc. (set after creation) self.padType = null; self.asset = null; // .isPressed: for visual feedback self.isPressed = false; // Set up asset self.setPadType = function (type) { self.padType = type; var assetId = type + 'Pad'; if (self.asset) { self.removeChild(self.asset); } var size = PAD_SIZES[type]; self.asset = self.attachAsset(assetId, { anchorX: 0.5, anchorY: 0.5, width: size ? size.w : undefined, height: size ? size.h : undefined }); }; // Visual feedback on press self.flash = function () { if (!self.asset) { return; } tween(self.asset, { alpha: 0.5 }, { duration: 60, onFinish: function onFinish() { tween(self.asset, { alpha: 1 }, { duration: 120 }); } }); }; return self; }); // Note: Falling note bar var Note = Container.expand(function () { var self = Container.call(this); // .noteType: 'kick', 'snare', etc. self.noteType = null; self.asset = null; self.hit = false; // If already hit self.setNoteType = function (type) { self.noteType = type; var assetId = type + 'Note'; if (self.asset) { self.removeChild(self.asset); } self.asset = self.attachAsset(assetId, { anchorX: 0.5, anchorY: 0.5 }); }; // Called every tick self.update = function () { // Store initial scale if not set if (self.initialScale === undefined) { self.initialScale = 0.6; // Start smaller than normal self.asset.scaleX = self.initialScale; self.asset.scaleY = self.initialScale; } // Calculate progress from spawn to target (0 to 1) var totalDistance = NOTE_TARGET_Y - NOTE_START_Y; var currentDistance = self.y - NOTE_START_Y; var progress = Math.max(0, Math.min(1, currentDistance / totalDistance)); // Scale from 0.6 to 1.8 (gradually growing larger) var targetScale = self.initialScale + 1.2 * progress; // 0.6 + (1.2 * progress) = 0.6 to 1.8 self.asset.scaleX = targetScale; self.asset.scaleY = targetScale; self.y += noteSpeed; }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x181818 }); /**** * Game Code ****/ // Add customizable background var gameBackground = LK.getAsset('gameBackground', { anchorX: 0, anchorY: 0, x: 0, y: 0, width: GAME_W, height: GAME_H }); game.addChild(gameBackground); // Health bar visual assets // Drum pad sounds // Music track // Sounds for each drum // Note bars (falling notes) // Drum pads (kick, snare, hi-hat, tom1, tom2, crash1, crash2) // --- Game constants --- var PAD_TYPES = ['kick', 'snare', 'hihat', 'tom1', 'crash1']; var PAD_COLS = PAD_TYPES.length; var GAME_W = 2048, GAME_H = 2732; var PAD_Y = GAME_H - 320; // Y position for pads // --- Pad Sizing and Full-Width Layout --- // Each pad will be as wide as possible, with no side gaps, and all pads will be adjacent. var PAD_SIZES = {}; var PAD_X_POSITIONS = {}; var padWidth = GAME_W / PAD_COLS; var padCenterY = PAD_Y; for (var i = 0; i < PAD_COLS; i++) { var type = PAD_TYPES[i]; // Pad width: fill the column, pad height: keep previous aspect ratio (or max of previous) // We'll use the original aspect ratio for each pad type, but scale width to padWidth // Use original aspect ratios from previous PAD_SIZES var origSizes = { 'kick': { w: 420, h: 210 }, 'snare': { w: 340, h: 170 }, 'hihat': { w: 300, h: 150 }, 'tom1': { w: 320, h: 160 }, 'crash1': { w: 340, h: 170 } }; var aspect = origSizes[type].h / origSizes[type].w; var w = padWidth; var h = w * aspect; PAD_SIZES[type] = { w: w, h: h }; // Center of each pad: left edge + half width + i*padWidth PAD_X_POSITIONS[type] = i * padWidth + padWidth / 2; } // Swap hihat and tom1 X positions var tmpX = PAD_X_POSITIONS['hihat']; PAD_X_POSITIONS['hihat'] = PAD_X_POSITIONS['tom1']; PAD_X_POSITIONS['tom1'] = tmpX; // Note spawn area (top) var NOTE_START_Y = -60; var NOTE_TARGET_Y = PAD_Y - 80; // Where notes should be hit // Note speed (pixels per frame) var noteSpeed = 18; // Timing window (pixels): how close to NOTE_TARGET_Y is a "hit" var HIT_WINDOW = 100; // --- State --- // NOTE_OFFSET_TICKS: Delay (in ticks) to align first note with music start (positive = notes spawn later) var NOTE_OFFSET_TICKS = 0; // Default 0, adjust for perfect sync (e.g. try 20, 30, 40, ...) var pads = []; var notes = []; var score = 0; var combo = 0; var maxCombo = 0; var lastTick = 0; var noteIndex = 0; var isPlaying = false; var songStartTick = 0; // --- Health Bar State --- var health = 150; var maxHealth = 150; var healthBarContainer = null; var healthBarBg = null; var healthBarFg = null; // --- UI --- var scoreTxt = new Text2('0', { size: 120, fill: "#fff" }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); var comboTxt = new Text2('', { size: 70, fill: 0xFFE066 }); comboTxt.anchor.set(0.5, 0); LK.gui.top.addChild(comboTxt); comboTxt.y = 130; // --- Song Data for all levels --- // Each entry: {tick: <when to spawn>, type: <padType>} // Level 1: MasterofUpit, original notes var LEVELS = [{ name: "Hard: Master of Upit", music: "MasterofUpit", notes: [{ tick: 1, type: 'kick' }, { tick: 1, type: 'crash1' }, { tick: 62, type: 'crash1' }, { tick: 63, type: 'kick' }, { tick: 78, type: 'crash1' }, { tick: 78, type: 'kick' }, { tick: 93, type: 'crash1' }, { tick: 93, type: 'kick' }, { tick: 193, type: 'crash1' }, { tick: 193, type: 'kick' }, { tick: 266, type: 'hihat' }, { tick: 283, type: 'hihat' }, { tick: 299, type: 'hihat' }, { tick: 316, type: 'hihat' }, { tick: 334, type: 'hihat' }, { tick: 351, type: 'hihat' }, { tick: 368, type: 'hihat' }, { tick: 386, type: 'hihat' }, { tick: 403, type: 'hihat' }, { tick: 420, type: 'hihat' }, { tick: 438, type: 'hihat' }, { tick: 451, type: 'kick' }, { tick: 452, type: 'crash1' }, { tick: 470, type: 'crash1' }, { tick: 471, type: 'kick' }, { tick: 490, type: 'hihat' }, { tick: 505, type: 'hihat' }, { tick: 522, type: 'hihat' }, { tick: 538, type: 'kick' }, { tick: 539, type: 'crash1' }, { tick: 556, type: 'crash1' }, { tick: 558, type: 'kick' }, { tick: 572, type: 'crash1' }, { tick: 572, type: 'kick' }, { tick: 590, type: 'hihat' }, { tick: 607, type: 'hihat' }, { tick: 625, type: 'hihat' }, { tick: 640, type: 'hihat' }, { tick: 658, type: 'hihat' }, { tick: 676, type: 'hihat' }, { tick: 694, type: 'hihat' }, { tick: 710, type: 'hihat' }, { tick: 725, type: 'crash1' }, { tick: 727, type: 'kick' }, { tick: 742, type: 'kick' }, { tick: 742, type: 'crash1' }, { tick: 758, type: 'hihat' }, { tick: 776, type: 'hihat' }, { tick: 795, type: 'hihat' }, { tick: 812, type: 'crash1' }, { tick: 812, type: 'kick' }, { tick: 829, type: 'crash1' }, { tick: 829, type: 'kick' }, { tick: 847, type: 'crash1' }, { tick: 847, type: 'kick' }, { tick: 863, type: 'hihat' }, { tick: 881, type: 'hihat' }, { tick: 899, type: 'hihat' }, { tick: 916, type: 'hihat' }, { tick: 933, type: 'hihat' }, { tick: 951, type: 'hihat' }, { tick: 969, type: 'hihat' }, { tick: 986, type: 'hihat' }, { tick: 1003, type: 'kick' }, { tick: 1003, type: 'crash1' }, { tick: 1020, type: 'crash1' }, { tick: 1021, type: 'kick' }, { tick: 1036, type: 'hihat' }, { tick: 1054, type: 'hihat' }, { tick: 1070, type: 'hihat' }, { tick: 1087, type: 'crash1' }, { tick: 1087, type: 'kick' }, { tick: 1104, type: 'crash1' }, { tick: 1105, type: 'kick' }, { tick: 1122, type: 'crash1' }, { tick: 1122, type: 'kick' }, { tick: 1155, type: 'snare' }, { tick: 1166, type: 'snare' }, { tick: 1173, type: 'snare' }, { tick: 1183, type: 'snare' }, { tick: 1189, type: 'snare' }, { tick: 1198, type: 'snare' }, { tick: 1206, type: 'snare' }, { tick: 1215, type: 'snare' }, { tick: 1223, type: 'snare' }, { tick: 1231, type: 'snare' }, { tick: 1239, type: 'snare' }, { tick: 1249, type: 'snare' }, { tick: 1257, type: 'snare' }, { tick: 1267, type: 'snare' }, { tick: 1275, type: 'snare' }, { tick: 1293, type: 'kick' }, { tick: 1293, type: 'crash1' }, { tick: 1500, type: 'crash1' }, { tick: 1500, type: 'kick' }, { tick: 1527, type: 'crash1' }, { tick: 1528, type: 'kick' }, { tick: 1549, type: 'crash1' }, { tick: 1549, type: 'kick' }, { tick: 1566, type: 'crash1' }, { tick: 1566, type: 'kick' }, { tick: 1775, type: 'crash1' }, { tick: 1776, type: 'kick' }, { tick: 1802, type: 'kick' }, { tick: 1802, type: 'crash1' }, { tick: 1825, type: 'crash1' }, { tick: 1826, type: 'kick' }, { tick: 1842, type: 'crash1' }, { tick: 1842, type: 'kick' }, { tick: 1856, type: 'hihat' }, { tick: 1860, type: 'snare' }, { tick: 1876, type: 'hihat' }, { tick: 1884, type: 'kick' }, { tick: 1892, type: 'hihat' }, { tick: 1892, type: 'snare' }, { tick: 1910, type: 'hihat' }, { tick: 1911, type: 'kick' }, { tick: 1927, type: 'snare' }, { tick: 1928, type: 'hihat' }, { tick: 1946, type: 'hihat' }, { tick: 1954, type: 'kick' }, { tick: 1961, type: 'hihat' }, { tick: 1963, type: 'snare' }, { tick: 1980, type: 'hihat' }, { tick: 1981, type: 'kick' }, { tick: 1996, type: 'snare' }, { tick: 1996, type: 'hihat' }, { tick: 2014, type: 'hihat' }, { tick: 2021, type: 'kick' }, { tick: 2028, type: 'hihat' }, { tick: 2031, type: 'snare' }, { tick: 2048, type: 'hihat' }, { tick: 2049, type: 'kick' }, { tick: 2066, type: 'hihat' }, { tick: 2066, type: 'snare' }, { tick: 2086, type: 'hihat' }, { tick: 2096, type: 'kick' }, { tick: 2102, type: 'crash1' }, { tick: 2105, type: 'kick' }, { tick: 2119, type: 'kick' }, { tick: 2119, type: 'crash1' }, { tick: 2165, type: 'hihat' }, { tick: 2168, type: 'snare' }, { tick: 2185, type: 'hihat' }, { tick: 2187, type: 'kick' }, { tick: 2202, type: 'snare' }, { tick: 2202, type: 'hihat' }, { tick: 2219, type: 'hihat' }, { tick: 2229, type: 'kick' }, { tick: 2235, type: 'hihat' }, { tick: 2237, type: 'snare' }, { tick: 2245, type: 'snare' }, { tick: 2252, type: 'snare' }, { tick: 2257, type: 'crash1' }, { tick: 2261, type: 'kick' }, { tick: 2273, type: 'snare' }, { tick: 2273, type: 'hihat' }, { tick: 2290, type: 'hihat' }, { tick: 2305, type: 'hihat' }, { tick: 2308, type: 'snare' }, { tick: 2324, type: 'crash1' }, { tick: 2325, type: 'kick' }, { tick: 2350, type: 'kick' }, { tick: 2350, type: 'crash1' }, { tick: 2376, type: 'crash1' }, { tick: 2376, type: 'kick' }, { tick: 2392, type: 'crash1' }, { tick: 2392, type: 'kick' }, { tick: 2407, type: 'hihat' }, { tick: 2409, type: 'snare' }, { tick: 2427, type: 'hihat' }, { tick: 2436, type: 'kick' }, { tick: 2442, type: 'hihat' }, { tick: 2444, type: 'snare' }, { tick: 2460, type: 'hihat' }, { tick: 2462, type: 'kick' }, { tick: 2479, type: 'hihat' }, { tick: 2479, type: 'snare' }, { tick: 2496, type: 'hihat' }, { tick: 2506, type: 'kick' }, { tick: 2511, type: 'hihat' }, { tick: 2515, type: 'snare' }, { tick: 2530, type: 'hihat' }, { tick: 2532, type: 'kick' }, { tick: 2546, type: 'hihat' }, { tick: 2546, type: 'snare' }, { tick: 2564, type: 'hihat' }, { tick: 2573, type: 'kick' }, { tick: 2581, type: 'hihat' }, { tick: 2584, type: 'snare' }, { tick: 2599, type: 'hihat' }, { tick: 2600, type: 'kick' }, { tick: 2615, type: 'snare' }, { tick: 2615, type: 'hihat' }, { tick: 2635, type: 'hihat' }, { tick: 2641, type: 'kick' }, { tick: 2651, type: 'snare' }, { tick: 2654, type: 'crash1' }, { tick: 2669, type: 'kick' }, { tick: 2671, type: 'hihat' }, { tick: 2686, type: 'snare' }, { tick: 2686, type: 'hihat' }, { tick: 2704, type: 'hihat' }, { tick: 2713, type: 'kick' }, { tick: 2719, type: 'hihat' }, { tick: 2724, type: 'kick' }, { tick: 2739, type: 'hihat' }, { tick: 2750, type: 'snare' }, { tick: 2759, type: 'snare' }, { tick: 2769, type: 'snare' }, { tick: 2773, type: 'snare' }, { tick: 2781, type: 'snare' }, { tick: 2792, type: 'tom1' }, { tick: 2808, type: 'crash1' }, { tick: 2809, type: 'kick' }, { tick: 2822, type: 'hihat' }, { tick: 2823, type: 'snare' }, { tick: 2840, type: 'hihat' }, { tick: 2848, type: 'kick' }, { tick: 2855, type: 'hihat' }, { tick: 2856, type: 'snare' }, { tick: 2873, type: 'crash1' }, { tick: 2873, type: 'kick' }, { tick: 2899, type: 'kick' }, { tick: 2899, type: 'crash1' }, { tick: 2921, type: 'crash1' }, { tick: 2924, type: 'kick' }, { tick: 2939, type: 'crash1' }, { tick: 2939, type: 'kick' }, { tick: 2964, type: 'crash1' }, { tick: 2965, type: 'kick' }, { tick: 2988, type: 'crash1' }, { tick: 2988, type: 'kick' }, { tick: 3006, type: 'crash1' }, { tick: 3006, type: 'kick' }, { tick: 3024, type: 'hihat' }, { tick: 3044, type: 'hihat' }, { tick: 3060, type: 'hihat' }, { tick: 3079, type: 'hihat' }, { tick: 3097, type: 'hihat' }, { tick: 3114, type: 'hihat' }, { tick: 3132, type: 'hihat' }, { tick: 3149, type: 'crash1' }, { tick: 3149, type: 'kick' }, { tick: 3165, type: 'hihat' }, { tick: 3165, type: 'snare' }, { tick: 3183, type: 'hihat' }, { tick: 3192, type: 'kick' }, { tick: 3198, type: 'hihat' }, { tick: 3200, type: 'snare' }, { tick: 3217, type: 'hihat' }, { tick: 3231, type: 'kick' }, { tick: 3235, type: 'hihat' }, { tick: 3239, type: 'snare' }, { tick: 3254, type: 'hihat' }, { tick: 3254, type: 'kick' }, { tick: 3269, type: 'hihat' }, { tick: 3269, type: 'snare' }, { tick: 3285, type: 'hihat' }, { tick: 3288, type: 'kick' }, { tick: 3303, type: 'hihat' }, { tick: 3304, type: 'snare' }, { tick: 3321, type: 'hihat' }, { tick: 3329, type: 'kick' }, { tick: 3336, type: 'hihat' }, { tick: 3337, type: 'snare' }, { tick: 3354, type: 'hihat' }, { tick: 3361, type: 'snare' }, { tick: 3362, type: 'crash1' }, { tick: 3381, type: 'crash1' }, { tick: 3381, type: 'kick' }, { tick: 3399, type: 'hihat' }, { tick: 3399, type: 'kick' }, { tick: 3415, type: 'hihat' }, { tick: 3416, type: 'snare' }, { tick: 3434, type: 'hihat' }, { tick: 3443, type: 'kick' }, { tick: 3449, type: 'hihat' }, { tick: 3452, type: 'snare' }, { tick: 3469, type: 'hihat' }, { tick: 3478, type: 'snare' }, { tick: 3485, type: 'snare' }, { tick: 3501, type: 'tom1' }, { tick: 3519, type: 'tom1' }, { tick: 3537, type: 'kick' }, { tick: 3539, type: 'crash1' }, { tick: 3553, type: 'snare' }, { tick: 3554, type: 'hihat' }, { tick: 3570, type: 'hihat' }, { tick: 3578, type: 'kick' }, { tick: 3585, type: 'hihat' }, { tick: 3587, type: 'snare' }, { tick: 3603, type: 'hihat' }, { tick: 3612, type: 'crash1' }, { tick: 3613, type: 'kick' }, { tick: 3630, type: 'crash1' }, { tick: 3630, type: 'kick' }, { tick: 3647, type: 'hihat' }, { tick: 3663, type: 'hihat' }, { tick: 3664, type: 'snare' }, { tick: 3681, type: 'hihat' }, { tick: 3690, type: 'kick' }, { tick: 3697, type: 'hihat' }, { tick: 3699, type: 'snare' }, { tick: 3721, type: 'snare' }, { tick: 3729, type: 'snare' }, { tick: 3748, type: 'snare' }, { tick: 3756, type: 'snare' }, { tick: 3765, type: 'tom1' }, { tick: 3772, type: 'tom1' }, { tick: 3782, type: 'crash1' }, { tick: 3782, type: 'kick' }, { tick: 3798, type: 'snare' }, { tick: 3798, type: 'hihat' }, { tick: 3815, type: 'hihat' }, { tick: 3826, type: 'kick' }, { tick: 3831, type: 'hihat' }, { tick: 3834, type: 'snare' }, { tick: 3850, type: 'crash1' }, { tick: 3859, type: 'crash1' }, { tick: 3859, type: 'kick' }, { tick: 3878, type: 'crash1' }, { tick: 3878, type: 'kick' }, { tick: 3896, type: 'kick' }, { tick: 3896, type: 'hihat' }, { tick: 3912, type: 'hihat' }, { tick: 3913, type: 'snare' }, { tick: 3930, type: 'hihat' }, { tick: 3942, type: 'kick' }, { tick: 3947, type: 'hihat' }, { tick: 3950, type: 'snare' }, { tick: 3964, type: 'hihat' }, { tick: 3973, type: 'snare' }, { tick: 3981, type: 'snare' }, { tick: 3998, type: 'snare' }, { tick: 4006, type: 'snare' }, { tick: 4012, type: 'snare' }, { tick: 4020, type: 'tom1' }, { tick: 4027, type: 'tom1' }, { tick: 4035, type: 'kick' }, { tick: 4036, type: 'crash1' }, { tick: 4051, type: 'snare' }, { tick: 4052, type: 'hihat' }, { tick: 4068, type: 'hihat' }, { tick: 4078, type: 'kick' }, { tick: 4083, type: 'hihat' }, { tick: 4086, type: 'snare' }, { tick: 4101, type: 'hihat' }, { tick: 4106, type: 'kick' }, { tick: 4112, type: 'kick' }, { tick: 4112, type: 'crash1' }, { tick: 4128, type: 'crash1' }, { tick: 4128, type: 'kick' }, { tick: 4145, type: 'hihat' }, { tick: 4163, type: 'hihat' }, { tick: 4163, type: 'snare' }, { tick: 4180, type: 'hihat' }, { tick: 4190, type: 'kick' }, { tick: 4196, type: 'hihat' }, { tick: 4200, type: 'snare' }, { tick: 4224, type: 'snare' }, { tick: 4233, type: 'snare' }, { tick: 4249, type: 'snare' }, { tick: 4258, type: 'snare' }, { tick: 4265, type: 'tom1' }, { tick: 4273, type: 'tom1' }, { tick: 4282, type: 'crash1' }, { tick: 4283, type: 'kick' }, { tick: 4299, type: 'hihat' }, { tick: 4300, type: 'snare' }, { tick: 4317, type: 'hihat' }, { tick: 4329, type: 'kick' }, { tick: 4333, type: 'hihat' }, { tick: 4336, type: 'snare' }, { tick: 4351, type: 'hihat' }, { tick: 4361, type: 'crash1' }, { tick: 4361, type: 'kick' }, { tick: 4378, type: 'crash1' }, { tick: 4379, type: 'kick' }, { tick: 4394, type: 'crash1' }, { tick: 4396, type: 'kick' }, { tick: 4411, type: 'hihat' }, { tick: 4412, type: 'snare' }, { tick: 4429, type: 'hihat' }, { tick: 4439, type: 'kick' }, { tick: 4445, type: 'hihat' }, { tick: 4449, type: 'snare' }, { tick: 4464, type: 'hihat' }, { tick: 4474, type: 'snare' }, { tick: 4481, type: 'snare' }, { tick: 4497, type: 'snare' }, { tick: 4506, type: 'snare' }, { tick: 4519, type: 'tom1' }, { tick: 4531, type: 'kick' }, { tick: 4531, type: 'crash1' }, { tick: 4548, type: 'snare' }, { tick: 4548, type: 'hihat' }, { tick: 4565, type: 'hihat' }, { tick: 4574, type: 'kick' }, { tick: 4580, type: 'hihat' }, { tick: 4583, type: 'snare' }, { tick: 4599, type: 'hihat' }, { tick: 4602, type: 'kick' }, { tick: 4609, type: 'crash1' }, { tick: 4610, type: 'kick' }, { tick: 4627, type: 'crash1' }, { tick: 4627, type: 'kick' }, { tick: 4642, type: 'hihat' }, { tick: 4660, type: 'hihat' }, { tick: 4661, type: 'snare' }, { tick: 4678, type: 'hihat' }, { tick: 4688, type: 'snare' }, { tick: 4694, type: 'hihat' }, { tick: 4699, type: 'snare' }, { tick: 4725, type: 'snare' }, { tick: 4732, type: 'snare' }, { tick: 4748, type: 'snare' }, { tick: 4756, type: 'snare' }, { tick: 4763, type: 'tom1' }, { tick: 4772, type: 'kick' }, { tick: 4779, type: 'kick' }, { tick: 4780, type: 'crash1' }, { tick: 4797, type: 'snare' }, { tick: 4797, type: 'hihat' }, { tick: 4814, type: 'hihat' }, { tick: 4823, type: 'kick' }, { tick: 4830, type: 'hihat' }, { tick: 4832, type: 'snare' }, { tick: 4849, type: 'crash1' }, { tick: 4850, type: 'kick' }, { tick: 4856, type: 'crash1' }, { tick: 4857, type: 'kick' }, { tick: 4874, type: 'kick' }, { tick: 4875, type: 'crash1' }, { tick: 4891, type: 'hihat' }, { tick: 4907, type: 'hihat' }, { tick: 4907, type: 'snare' }, { tick: 4924, type: 'hihat' }, { tick: 4932, type: 'kick' }, { tick: 4940, type: 'hihat' }, { tick: 4942, type: 'snare' }, { tick: 4958, type: 'hihat' }, { tick: 4968, type: 'snare' }, { tick: 4975, type: 'snare' }, { tick: 4993, type: 'snare' }, { tick: 5000, type: 'snare' }, { tick: 5007, type: 'tom1' }, { tick: 5015, type: 'tom1' }, { tick: 5026, type: 'kick' }, { tick: 5029, type: 'crash1' }, { tick: 5046, type: 'hihat' }, { tick: 5046, type: 'snare' }, { tick: 5063, type: 'hihat' }, { tick: 5074, type: 'kick' }, { tick: 5079, type: 'hihat' }, { tick: 5083, type: 'snare' }, { tick: 5096, type: 'hihat' }, { tick: 5105, type: 'kick' }, { tick: 5106, type: 'crash1' }, { tick: 5124, type: 'crash1' }, { tick: 5125, type: 'kick' }, { tick: 5140, type: 'kick' }, { tick: 5150, type: 'snare' }, { tick: 5159, type: 'snare' }, { tick: 5168, type: 'snare' }, { tick: 5177, type: 'snare' }, { tick: 5182, type: 'snare' }, { tick: 5190, type: 'snare' }, { tick: 5198, type: 'snare' }, { tick: 5210, type: 'crash1' }, { tick: 5210, type: 'kick' }, { tick: 5245, type: 'hihat' }, { tick: 5246, type: 'snare' }, { tick: 5262, type: 'snare' }, { tick: 5262, type: 'hihat' }, { tick: 5278, type: 'crash1' }, { tick: 5312, type: 'hihat' }, { tick: 5313, type: 'snare' }, { tick: 5330, type: 'snare' }, { tick: 5330, type: 'hihat' }, { tick: 5347, type: 'hihat' }, { tick: 5348, type: 'kick' }, { tick: 5367, type: 'kick' }, { tick: 5368, type: 'hihat' }, { tick: 5381, type: 'hihat' }, { tick: 5383, type: 'snare' }, { tick: 5400, type: 'hihat' }, { tick: 5400, type: 'snare' }, { tick: 5416, type: 'snare' }, { tick: 5424, type: 'snare' }, { tick: 5431, type: 'snare' }, { tick: 5440, type: 'snare' }, { tick: 5447, type: 'tom1' }, { tick: 5456, type: 'tom1' }, { tick: 5463, type: 'snare' }, { tick: 5471, type: 'snare' }, { tick: 5482, type: 'kick' }, { tick: 5483, type: 'crash1' }, { tick: 5516, type: 'hihat' }, { tick: 5519, type: 'snare' }, { tick: 5534, type: 'hihat' }, { tick: 5535, type: 'snare' }, { tick: 5551, type: 'crash1' }, { tick: 5554, type: 'kick' }, { tick: 5569, type: 'kick' }, { tick: 5582, type: 'kick' }, { tick: 5584, type: 'hihat' }, { tick: 5601, type: 'snare' }, { tick: 5602, type: 'hihat' }, { tick: 5617, type: 'crash1' }, { tick: 5619, type: 'kick' }, { tick: 5637, type: 'kick' }, { tick: 5647, type: 'kick' }, { tick: 5653, type: 'hihat' }, { tick: 5655, type: 'snare' }, { tick: 5671, type: 'snare' }, { tick: 5687, type: 'snare' }, { tick: 5696, type: 'snare' }, { tick: 5703, type: 'snare' }, { tick: 5713, type: 'snare' }, { tick: 5721, type: 'tom1' }, { tick: 5729, type: 'tom1' }, { tick: 5739, type: 'snare' }, { tick: 5747, type: 'snare' }, { tick: 5757, type: 'crash1' }, { tick: 5758, type: 'kick' }, { tick: 5777, type: 'kick' }, { tick: 5786, type: 'kick' }, { tick: 5793, type: 'hihat' }, { tick: 5794, type: 'snare' }, { tick: 5809, type: 'snare' }, { tick: 5825, type: 'hihat' }, { tick: 5827, type: 'kick' }, { tick: 5842, type: 'kick' }, { tick: 5851, type: 'kick' }, { tick: 5859, type: 'hihat' }, { tick: 5861, type: 'snare' }, { tick: 5877, type: 'snare' }, { tick: 5895, type: 'hihat' }, { tick: 5896, type: 'kick' }, { tick: 5913, type: 'kick' }, { tick: 5914, type: 'hihat' }, { tick: 5931, type: 'snare' }, { tick: 5934, type: 'hihat' }, { tick: 5947, type: 'snare' }, { tick: 5964, type: 'snare' }, { tick: 5981, type: 'snare' }, { tick: 5998, type: 'tom1' }, { tick: 6008, type: 'snare' }, { tick: 6017, type: 'snare' }, { tick: 6025, type: 'snare' }, { tick: 6034, type: 'crash1' }, { tick: 6035, type: 'kick' }, { tick: 6054, type: 'kick' }, { tick: 6063, type: 'kick' }, { tick: 6067, type: 'hihat' }, { tick: 6072, type: 'snare' }, { tick: 6086, type: 'hihat' }, { tick: 6086, type: 'snare' }, { tick: 6103, type: 'hihat' }, { tick: 6103, type: 'kick' }, { tick: 6121, type: 'kick' }, { tick: 6133, type: 'hihat' }, { tick: 6134, type: 'snare' }, { tick: 6151, type: 'hihat' }, { tick: 6151, type: 'snare' }, { tick: 6168, type: 'hihat' }, { tick: 6169, type: 'kick' }, { tick: 6184, type: 'kick' }, { tick: 6193, type: 'kick' }, { tick: 6201, type: 'hihat' }, { tick: 6202, type: 'snare' }, { tick: 6220, type: 'snare' }, { tick: 6220, type: 'hihat' }, { tick: 6237, type: 'snare' }, { tick: 6243, type: 'snare' }, { tick: 6248, type: 'snare' }, { tick: 6254, type: 'snare' }, { tick: 6273, type: 'tom1' }, { tick: 6290, type: 'tom1' }, { tick: 6310, type: 'kick' }, { tick: 6310, type: 'crash1' }, { tick: 6324, type: 'kick' }, { tick: 6324, type: 'crash1' }, { tick: 6374, type: 'crash1' }, { tick: 6374, type: 'kick' }, { tick: 6390, type: 'kick' }, { tick: 6390, type: 'crash1' }] }, { name: "Medium: Blast Funk-Wet Puppy", music: "BlastFunkWetPuppy", notes: [{ tick: 0, type: 'snare' }, { tick: 0, type: 'hihat' }, { tick: 26, type: 'kick' }, { tick: 27, type: 'hihat' }, { tick: 43, type: 'kick' }, { tick: 54, type: 'hihat' }, { tick: 55, type: 'snare' }, { tick: 82, type: 'hihat' }, { tick: 86, type: 'kick' }, { tick: 113, type: 'snare' }, { tick: 113, type: 'hihat' }, { tick: 141, type: 'kick' }, { tick: 143, type: 'hihat' }, { tick: 170, type: 'snare' }, { tick: 171, type: 'hihat' }, { tick: 197, type: 'hihat' }, { tick: 202, type: 'kick' }, { tick: 227, type: 'snare' }, { tick: 227, type: 'hihat' }, { tick: 250, type: 'kick' }, { tick: 255, type: 'kick' }, { tick: 255, type: 'hihat' }, { tick: 270, type: 'kick' }, { tick: 284, type: 'snare' }, { tick: 287, type: 'hihat' }, { tick: 314, type: 'kick' }, { tick: 317, type: 'hihat' }, { tick: 343, type: 'snare' }, { tick: 343, type: 'hihat' }, { tick: 364, type: 'kick' }, { tick: 371, type: 'kick' }, { tick: 373, type: 'hihat' }, { tick: 386, type: 'kick' }, { tick: 400, type: 'hihat' }, { tick: 402, type: 'snare' }, { tick: 417, type: 'hihat' }, { tick: 430, type: 'hihat' }, { tick: 430, type: 'hihat' }, { tick: 431, type: 'kick' }, { tick: 446, type: 'hihat' }, { tick: 459, type: 'hihat' }, { tick: 460, type: 'snare' }, { tick: 482, type: 'kick' }, { tick: 485, type: 'hihat' }, { tick: 488, type: 'kick' }, { tick: 503, type: 'kick' }, { tick: 514, type: 'hihat' }, { tick: 518, type: 'snare' }, { tick: 529, type: 'hihat' }, { tick: 545, type: 'kick' }, { tick: 552, type: 'hihat' }, { tick: 565, type: 'hihat' }, { tick: 571, type: 'hihat' }, { tick: 572, type: 'snare' }, { tick: 587, type: 'hihat' }, { tick: 598, type: 'kick' }, { tick: 601, type: 'hihat' }, { tick: 605, type: 'kick' }, { tick: 616, type: 'hihat' }, { tick: 619, type: 'kick' }, { tick: 630, type: 'hihat' }, { tick: 631, type: 'snare' }, { tick: 645, type: 'hihat' }, { tick: 658, type: 'hihat' }, { tick: 659, type: 'kick' }, { tick: 671, type: 'hihat' }, { tick: 675, type: 'hihat' }, { tick: 687, type: 'hihat' }, { tick: 688, type: 'snare' }, { tick: 701, type: 'hihat' }, { tick: 708, type: 'kick' }, { tick: 714, type: 'kick' }, { tick: 717, type: 'hihat' }, { tick: 730, type: 'kick' }, { tick: 732, type: 'hihat' }, { tick: 744, type: 'snare' }, { tick: 747, type: 'hihat' }, { tick: 761, type: 'hihat' }, { tick: 773, type: 'kick' }, { tick: 774, type: 'hihat' }, { tick: 774, type: 'hihat' }, { tick: 791, type: 'hihat' }, { tick: 803, type: 'snare' }, { tick: 805, type: 'hihat' }, { tick: 820, type: 'hihat' }, { tick: 829, type: 'kick' }, { tick: 835, type: 'hihat' }, { tick: 851, type: 'hihat' }, { tick: 858, type: 'snare' }, { tick: 864, type: 'hihat' }, { tick: 879, type: 'hihat' }, { tick: 887, type: 'kick' }, { tick: 901, type: 'hihat' }, { tick: 916, type: 'snare' }, { tick: 918, type: 'hihat' }, { tick: 929, type: 'hihat' }, { tick: 942, type: 'hihat' }, { tick: 944, type: 'kick' }, { tick: 959, type: 'hihat' }, { tick: 974, type: 'snare' }, { tick: 974, type: 'hihat' }, { tick: 990, type: 'hihat' }, { tick: 1004, type: 'hihat' }, { tick: 1005, type: 'kick' }, { tick: 1020, type: 'hihat' }, { tick: 1033, type: 'snare' }, { tick: 1033, type: 'hihat' }, { tick: 1048, type: 'hihat' }, { tick: 1061, type: 'kick' }, { tick: 1063, type: 'hihat' }, { tick: 1078, type: 'hihat' }, { tick: 1089, type: 'snare' }, { tick: 1093, type: 'hihat' }, { tick: 1108, type: 'hihat' }, { tick: 1117, type: 'kick' }, { tick: 1121, type: 'hihat' }, { tick: 1121, type: 'hihat' }, { tick: 1136, type: 'hihat' }, { tick: 1146, type: 'snare' }, { tick: 1150, type: 'hihat' }, { tick: 1165, type: 'hihat' }, { tick: 1176, type: 'kick' }, { tick: 1180, type: 'hihat' }, { tick: 1194, type: 'hihat' }, { tick: 1204, type: 'snare' }, { tick: 1208, type: 'hihat' }, { tick: 1223, type: 'hihat' }, { tick: 1233, type: 'kick' }, { tick: 1235, type: 'hihat' }, { tick: 1248, type: 'hihat' }, { tick: 1261, type: 'hihat' }, { tick: 1262, type: 'snare' }, { tick: 1275, type: 'hihat' }, { tick: 1288, type: 'hihat' }, { tick: 1290, type: 'hihat' }, { tick: 1291, type: 'kick' }, { tick: 1307, type: 'hihat' }, { tick: 1319, type: 'snare' }, { tick: 1322, type: 'hihat' }, { tick: 1337, type: 'hihat' }, { tick: 1348, type: 'kick' }, { tick: 1351, type: 'hihat' }, { tick: 1365, type: 'hihat' }, { tick: 1377, type: 'hihat' }, { tick: 1379, type: 'snare' }, { tick: 1392, type: 'hihat' }, { tick: 1405, type: 'hihat' }, { tick: 1405, type: 'hihat' }, { tick: 1407, type: 'kick' }, { tick: 1421, type: 'hihat' }, { tick: 1434, type: 'hihat' }, { tick: 1435, type: 'snare' }, { tick: 1451, type: 'hihat' }, { tick: 1464, type: 'hihat' }, { tick: 1466, type: 'kick' }, { tick: 1478, type: 'hihat' }, { tick: 1491, type: 'hihat' }, { tick: 1493, type: 'snare' }, { tick: 1507, type: 'hihat' }, { tick: 1512, type: 'hihat' }, { tick: 1518, type: 'hihat' }, { tick: 1522, type: 'kick' }, { tick: 1533, type: 'hihat' }, { tick: 1548, type: 'hihat' }, { tick: 1551, type: 'snare' }, { tick: 1565, type: 'hihat' }, { tick: 1580, type: 'kick' }, { tick: 1582, type: 'hihat' }, { tick: 1595, type: 'hihat' }, { tick: 1606, type: 'snare' }, { tick: 1609, type: 'hihat' }, { tick: 1623, type: 'hihat' }, { tick: 1635, type: 'kick' }, { tick: 1636, type: 'hihat' }, { tick: 1636, type: 'hihat' }, { tick: 1653, type: 'hihat' }, { tick: 1662, type: 'snare' }, { tick: 1668, type: 'hihat' }, { tick: 1683, type: 'hihat' }, { tick: 1693, type: 'kick' }, { tick: 1695, type: 'hihat' }, { tick: 1708, type: 'hihat' }, { tick: 1722, type: 'snare' }, { tick: 1723, type: 'hihat' }, { tick: 1737, type: 'hihat' }, { tick: 1744, type: 'kick' }, { tick: 1749, type: 'kick' }, { tick: 1752, type: 'hihat' }, { tick: 1764, type: 'kick' }, { tick: 1767, type: 'hihat' }, { tick: 1779, type: 'snare' }, { tick: 1781, type: 'hihat' }, { tick: 1796, type: 'hihat' }, { tick: 1809, type: 'kick' }, { tick: 1811, type: 'hihat' }, { tick: 1825, type: 'hihat' }, { tick: 1839, type: 'hihat' }, { tick: 1840, type: 'snare' }, { tick: 1853, type: 'hihat' }, { tick: 1867, type: 'hihat' }, { tick: 1868, type: 'kick' }, { tick: 1882, type: 'hihat' }, { tick: 1896, type: 'snare' }, { tick: 1896, type: 'hihat' }, { tick: 1911, type: 'hihat' }, { tick: 1924, type: 'kick' }, { tick: 1924, type: 'hihat' }, { tick: 1925, type: 'hihat' }, { tick: 1939, type: 'hihat' }, { tick: 1953, type: 'hihat' }, { tick: 1954, type: 'snare' }, { tick: 1967, type: 'hihat' }, { tick: 1980, type: 'hihat' }, { tick: 1981, type: 'kick' }, { tick: 1996, type: 'hihat' }, { tick: 2007, type: 'snare' }, { tick: 2010, type: 'hihat' }, { tick: 2026, type: 'hihat' }, { tick: 2032, type: 'hihat' }, { tick: 2038, type: 'hihat' }, { tick: 2039, type: 'kick' }, { tick: 2054, type: 'hihat' }, { tick: 2069, type: 'snare' }, { tick: 2069, type: 'hihat' }, { tick: 2083, type: 'hihat' }, { tick: 2097, type: 'hihat' }, { tick: 2100, type: 'kick' }, { tick: 2111, type: 'hihat' }, { tick: 2126, type: 'snare' }, { tick: 2126, type: 'hihat' }, { tick: 2142, type: 'hihat' }, { tick: 2154, type: 'kick' }, { tick: 2154, type: 'hihat' }, { tick: 2155, type: 'hihat' }, { tick: 2168, type: 'hihat' }, { tick: 2183, type: 'snare' }, { tick: 2183, type: 'hihat' }, { tick: 2197, type: 'hihat' }, { tick: 2209, type: 'kick' }, { tick: 2212, type: 'hihat' }, { tick: 2226, type: 'hihat' }, { tick: 2239, type: 'snare' }, { tick: 2239, type: 'hihat' }, { tick: 2262, type: 'hihat' }, { tick: 2270, type: 'kick' }, { tick: 2278, type: 'hihat' }, { tick: 2291, type: 'hihat' }, { tick: 2303, type: 'snare' }, { tick: 2304, type: 'hihat' }, { tick: 2317, type: 'hihat' }, { tick: 2327, type: 'kick' }, { tick: 2330, type: 'hihat' }, { tick: 2343, type: 'hihat' }, { tick: 2355, type: 'snare' }, { tick: 2355, type: 'hihat' }, { tick: 2370, type: 'hihat' }, { tick: 2383, type: 'hihat' }, { tick: 2384, type: 'kick' }, { tick: 2384, type: 'hihat' }, { tick: 2399, type: 'hihat' }, { tick: 2412, type: 'snare' }, { tick: 2414, type: 'hihat' }, { tick: 2429, type: 'hihat' }, { tick: 2434, type: 'kick' }, { tick: 2441, type: 'kick' }, { tick: 2442, type: 'hihat' }, { tick: 2454, type: 'kick' }, { tick: 2458, type: 'hihat' }, { tick: 2467, type: 'snare' }, { tick: 2473, type: 'hihat' }, { tick: 2490, type: 'hihat' }, { tick: 2496, type: 'kick' }, { tick: 2503, type: 'hihat' }, { tick: 2515, type: 'hihat' }, { tick: 2527, type: 'snare' }, { tick: 2530, type: 'hihat' }, { tick: 2545, type: 'hihat' }, { tick: 2554, type: 'kick' }, { tick: 2557, type: 'hihat' }, { tick: 2571, type: 'hihat' }, { tick: 2584, type: 'snare' }, { tick: 2586, type: 'hihat' }, { tick: 2600, type: 'hihat' }, { tick: 2611, type: 'kick' }, { tick: 2613, type: 'hihat' }, { tick: 2629, type: 'hihat' }, { tick: 2639, type: 'snare' }, { tick: 2643, type: 'hihat' }, { tick: 2657, type: 'hihat' }, { tick: 2660, type: 'kick' }, { tick: 2667, type: 'kick' }, { tick: 2671, type: 'hihat' }, { tick: 2682, type: 'kick' }, { tick: 2683, type: 'hihat' }, { tick: 2697, type: 'snare' }, { tick: 2699, type: 'hihat' }, { tick: 2714, type: 'hihat' }, { tick: 2727, type: 'hihat' }, { tick: 2727, type: 'hihat' }, { tick: 2728, type: 'kick' }, { tick: 2742, type: 'hihat' }, { tick: 2758, type: 'snare' }, { tick: 2758, type: 'hihat' }, { tick: 2774, type: 'hihat' }, { tick: 2783, type: 'kick' }, { tick: 2788, type: 'hihat' }, { tick: 2803, type: 'hihat' }, { tick: 2814, type: 'snare' }, { tick: 2816, type: 'hihat' }, { tick: 2829, type: 'hihat' }, { tick: 2842, type: 'kick' }, { tick: 2843, type: 'hihat' }, { tick: 2857, type: 'hihat' }, { tick: 2871, type: 'snare' }, { tick: 2872, type: 'hihat' }, { tick: 2886, type: 'hihat' }, { tick: 2900, type: 'hihat' }, { tick: 2901, type: 'kick' }, { tick: 2916, type: 'hihat' }, { tick: 2930, type: 'hihat' }, { tick: 2932, type: 'snare' }, { tick: 2943, type: 'hihat' }, { tick: 2958, type: 'kick' }, { tick: 2958, type: 'hihat' }, { tick: 2973, type: 'hihat' }, { tick: 2988, type: 'hihat' }, { tick: 2989, type: 'snare' }, { tick: 3003, type: 'hihat' }, { tick: 3015, type: 'kick' }, { tick: 3017, type: 'hihat' }, { tick: 3032, type: 'hihat' }, { tick: 3043, type: 'snare' }, { tick: 3045, type: 'hihat' }, { tick: 3061, type: 'hihat' }, { tick: 3073, type: 'hihat' }, { tick: 3074, type: 'kick' }, { tick: 3088, type: 'hihat' }, { tick: 3102, type: 'snare' }, { tick: 3103, type: 'hihat' }, { tick: 3117, type: 'hihat' }, { tick: 3130, type: 'hihat' }, { tick: 3131, type: 'hihat' }, { tick: 3132, type: 'kick' }, { tick: 3146, type: 'hihat' }, { tick: 3159, type: 'snare' }, { tick: 3159, type: 'hihat' }, { tick: 3175, type: 'hihat' }, { tick: 3188, type: 'hihat' }, { tick: 3191, type: 'kick' }, { tick: 3203, type: 'hihat' }, { tick: 3216, type: 'hihat' }, { tick: 3217, type: 'snare' }, { tick: 3231, type: 'hihat' }, { tick: 3240, type: 'kick' }, { tick: 3244, type: 'hihat' }, { tick: 3245, type: 'hihat' }, { tick: 3246, type: 'kick' }, { tick: 3260, type: 'kick' }, { tick: 3262, type: 'hihat' }, { tick: 3274, type: 'snare' }, { tick: 3275, type: 'hihat' }, { tick: 3288, type: 'hihat' }, { tick: 3302, type: 'kick' }, { tick: 3303, type: 'hihat' }, { tick: 3317, type: 'hihat' }, { tick: 3331, type: 'snare' }, { tick: 3334, type: 'hihat' }, { tick: 3348, type: 'hihat' }, { tick: 3353, type: 'kick' }, { tick: 3360, type: 'kick' }, { tick: 3360, type: 'hihat' }, { tick: 3374, type: 'kick' }, { tick: 3376, type: 'hihat' }, { tick: 3389, type: 'snare' }, { tick: 3390, type: 'hihat' }, { tick: 3405, type: 'hihat' }, { tick: 3419, type: 'hihat' }, { tick: 3420, type: 'kick' }, { tick: 3435, type: 'hihat' }, { tick: 3445, type: 'snare' }, { tick: 3450, type: 'hihat' }, { tick: 3463, type: 'hihat' }, { tick: 3473, type: 'kick' }, { tick: 3477, type: 'hihat' }, { tick: 3490, type: 'hihat' }, { tick: 3491, type: 'kick' }, { tick: 3503, type: 'hihat' }, { tick: 3505, type: 'snare' }, { tick: 3516, type: 'hihat' }, { tick: 3529, type: 'hihat' }, { tick: 3532, type: 'kick' }, { tick: 3542, type: 'hihat' }, { tick: 3557, type: 'hihat' }, { tick: 3562, type: 'snare' }, { tick: 3572, type: 'hihat' }, { tick: 3589, type: 'kick' }, { tick: 3589, type: 'hihat' }, { tick: 3603, type: 'hihat' }, { tick: 3605, type: 'kick' }, { tick: 3618, type: 'hihat' }, { tick: 3620, type: 'snare' }, { tick: 3633, type: 'hihat' }, { tick: 3646, type: 'hihat' }, { tick: 3647, type: 'kick' }, { tick: 3647, type: 'hihat' }, { tick: 3664, type: 'hihat' }, { tick: 3675, type: 'snare' }, { tick: 3677, type: 'hihat' }, { tick: 3692, type: 'hihat' }, { tick: 3704, type: 'kick' }, { tick: 3705, type: 'hihat' }, { tick: 3720, type: 'hihat' }, { tick: 3732, type: 'snare' }, { tick: 3734, type: 'hihat' }, { tick: 3750, type: 'hihat' }, { tick: 3763, type: 'kick' }, { tick: 3765, type: 'hihat' }, { tick: 3781, type: 'hihat' }, { tick: 3791, type: 'snare' }, { tick: 3794, type: 'hihat' }, { tick: 3807, type: 'hihat' }, { tick: 3820, type: 'kick' }, { tick: 3820, type: 'hihat' }, { tick: 3821, type: 'hihat' }, { tick: 3838, type: 'hihat' }, { tick: 3848, type: 'snare' }, { tick: 3851, type: 'hihat' }, { tick: 3864, type: 'hihat' }, { tick: 3877, type: 'kick' }, { tick: 3878, type: 'hihat' }, { tick: 3893, type: 'hihat' }, { tick: 3905, type: 'snare' }, { tick: 3908, type: 'hihat' }, { tick: 3923, type: 'hihat' }, { tick: 3934, type: 'kick' }, { tick: 3936, type: 'hihat' }, { tick: 3937, type: 'hihat' }, { tick: 3952, type: 'hihat' }, { tick: 3963, type: 'snare' }, { tick: 3965, type: 'hihat' }, { tick: 3979, type: 'hihat' }, { tick: 3992, type: 'kick' }, { tick: 3992, type: 'hihat' }, { tick: 4007, type: 'hihat' }, { tick: 4021, type: 'snare' }, { tick: 4022, type: 'hihat' }, { tick: 4035, type: 'hihat' }, { tick: 4042, type: 'kick' }, { tick: 4049, type: 'kick' }, { tick: 4049, type: 'hihat' }, { tick: 4063, type: 'kick' }, { tick: 4064, type: 'hihat' }, { tick: 4077, type: 'snare' }, { tick: 4077, type: 'hihat' }, { tick: 4091, type: 'hihat' }, { tick: 4104, type: 'hihat' }, { tick: 4104, type: 'hihat' }, { tick: 4108, type: 'kick' }, { tick: 4121, type: 'hihat' }, { tick: 4134, type: 'hihat' }, { tick: 4136, type: 'snare' }, { tick: 4149, type: 'hihat' }, { tick: 4164, type: 'hihat' }, { tick: 4166, type: 'kick' }, { tick: 4181, type: 'hihat' }, { tick: 4195, type: 'snare' }, { tick: 4196, type: 'hihat' }, { tick: 4209, type: 'hihat' }, { tick: 4222, type: 'hihat' }, { tick: 4223, type: 'hihat' }, { tick: 4224, type: 'kick' }, { tick: 4237, type: 'hihat' }, { tick: 4251, type: 'hihat' }, { tick: 4253, type: 'snare' }, { tick: 4267, type: 'hihat' }, { tick: 4280, type: 'hihat' }, { tick: 4282, type: 'kick' }, { tick: 4296, type: 'hihat' }, { tick: 4308, type: 'snare' }, { tick: 4310, type: 'hihat' }, { tick: 4323, type: 'hihat' }, { tick: 4336, type: 'hihat' }, { tick: 4337, type: 'hihat' }, { tick: 4338, type: 'kick' }, { tick: 4354, type: 'hihat' }, { tick: 4367, type: 'snare' }, { tick: 4368, type: 'hihat' }, { tick: 4382, type: 'hihat' }, { tick: 4396, type: 'kick' }, { tick: 4397, type: 'hihat' }, { tick: 4411, type: 'hihat' }, { tick: 4424, type: 'snare' }, { tick: 4424, type: 'hihat' }, { tick: 4438, type: 'hihat' }, { tick: 4451, type: 'hihat' }, { tick: 4451, type: 'hihat' }, { tick: 4452, type: 'kick' }, { tick: 4466, type: 'hihat' }, { tick: 4481, type: 'snare' }, { tick: 4482, type: 'hihat' }, { tick: 4494, type: 'hihat' }, { tick: 4503, type: 'kick' }, { tick: 4510, type: 'kick' }, { tick: 4510, type: 'hihat' }, { tick: 4524, type: 'kick' }, { tick: 4525, type: 'hihat' }, { tick: 4538, type: 'snare' }, { tick: 4538, type: 'hihat' }, { tick: 4552, type: 'hihat' }, { tick: 4565, type: 'hihat' }, { tick: 4567, type: 'kick' }, { tick: 4567, type: 'hihat' }, { tick: 4580, type: 'hihat' }, { tick: 4585, type: 'hihat' }, { tick: 4597, type: 'snare' }, { tick: 4599, type: 'hihat' }, { tick: 4613, type: 'hihat' }, { tick: 4624, type: 'kick' }, { tick: 4627, type: 'hihat' }, { tick: 4640, type: 'hihat' }, { tick: 4654, type: 'snare' }, { tick: 4654, type: 'hihat' }, { tick: 4669, type: 'hihat' }, { tick: 4682, type: 'hihat' }, { tick: 4683, type: 'kick' }, { tick: 4683, type: 'hihat' }, { tick: 4696, type: 'hihat' }, { tick: 4710, type: 'hihat' }, { tick: 4711, type: 'snare' }, { tick: 4725, type: 'hihat' }, { tick: 4740, type: 'hihat' }, { tick: 4741, type: 'kick' }, { tick: 4756, type: 'hihat' }, { tick: 4769, type: 'snare' }, { tick: 4771, type: 'hihat' }, { tick: 4785, type: 'hihat' }, { tick: 4797, type: 'kick' }, { tick: 4798, type: 'hihat' }, { tick: 4799, type: 'hihat' }, { tick: 4813, type: 'hihat' }, { tick: 4827, type: 'snare' }, { tick: 4828, type: 'hihat' }, { tick: 4842, type: 'hihat' }, { tick: 4856, type: 'kick' }, { tick: 4857, type: 'hihat' }, { tick: 4871, type: 'hihat' }, { tick: 4884, type: 'snare' }, { tick: 4884, type: 'hihat' }, { tick: 4898, type: 'hihat' }, { tick: 4911, type: 'hihat' }, { tick: 4914, type: 'kick' }, { tick: 4927, type: 'hihat' }, { tick: 4941, type: 'snare' }, { tick: 4942, type: 'hihat' }, { tick: 4956, type: 'hihat' }, { tick: 4962, type: 'kick' }, { tick: 4969, type: 'kick' }, { tick: 4971, type: 'hihat' }, { tick: 4983, type: 'kick' }, { tick: 4985, type: 'hihat' }, { tick: 4996, type: 'snare' }, { tick: 5001, type: 'hihat' }, { tick: 5014, type: 'hihat' }, { tick: 5027, type: 'kick' }, { tick: 5027, type: 'hihat' }, { tick: 5027, type: 'hihat' }, { tick: 5041, type: 'hihat' }, { tick: 5055, type: 'snare' }, { tick: 5056, type: 'hihat' }, { tick: 5071, type: 'hihat' }, { tick: 5079, type: 'kick' }, { tick: 5085, type: 'hihat' }, { tick: 5099, type: 'kick' }, { tick: 5100, type: 'hihat' }, { tick: 5114, type: 'hihat' }, { tick: 5115, type: 'snare' }, { tick: 5128, type: 'hihat' }, { tick: 5141, type: 'hihat' }, { tick: 5141, type: 'hihat' }, { tick: 5143, type: 'kick' }, { tick: 5158, type: 'hihat' }, { tick: 5171, type: 'snare' }, { tick: 5173, type: 'hihat' }, { tick: 5187, type: 'hihat' }, { tick: 5200, type: 'kick' }, { tick: 5202, type: 'hihat' }, { tick: 5217, type: 'hihat' }, { tick: 5229, type: 'snare' }, { tick: 5231, type: 'hihat' }, { tick: 5244, type: 'hihat' }, { tick: 5257, type: 'hihat' }, { tick: 5257, type: 'hihat' }, { tick: 5258, type: 'kick' }, { tick: 5272, type: 'hihat' }, { tick: 5286, type: 'snare' }, { tick: 5286, type: 'hihat' }, { tick: 5301, type: 'hihat' }, { tick: 5314, type: 'kick' }, { tick: 5317, type: 'hihat' }, { tick: 5330, type: 'hihat' }, { tick: 5341, type: 'snare' }, { tick: 5345, type: 'hihat' }, { tick: 5360, type: 'hihat' }, { tick: 5371, type: 'hihat' }, { tick: 5372, type: 'kick' }, { tick: 5384, type: 'hihat' }, { tick: 5397, type: 'hihat' }, { tick: 5399, type: 'snare' }, { tick: 5410, type: 'hihat' }, { tick: 5420, type: 'kick' }, { tick: 5423, type: 'hihat' }, { tick: 5427, type: 'kick' }, { tick: 5436, type: 'hihat' }, { tick: 5442, type: 'kick' }, { tick: 5457, type: 'snare' }, { tick: 5459, type: 'hihat' }, { tick: 5486, type: 'hihat' }, { tick: 5488, type: 'kick' }, { tick: 5516, type: 'hihat' }, { tick: 5517, type: 'snare' }, { tick: 5545, type: 'hihat' }, { tick: 5547, type: 'kick' }, { tick: 5573, type: 'snare' }, { tick: 5573, type: 'hihat' }, { tick: 5588, type: 'hihat' }, { tick: 5601, type: 'hihat' }, { tick: 5602, type: 'kick' }, { tick: 5614, type: 'hihat' }, { tick: 5629, type: 'hihat' }, { tick: 5630, type: 'snare' }, { tick: 5652, type: 'kick' }, { tick: 5658, type: 'kick' }, { tick: 5658, type: 'hihat' }, { tick: 5674, type: 'kick' }, { tick: 5686, type: 'hihat' }, { tick: 5689, type: 'snare' }, { tick: 5709, type: 'hihat' }, { tick: 5718, type: 'kick' }, { tick: 5725, type: 'hihat' }, { tick: 5731, type: 'hihat' }, { tick: 5746, type: 'hihat' }, { tick: 5747, type: 'snare' }, { tick: 5760, type: 'hihat' }, { tick: 5769, type: 'kick' }, { tick: 5775, type: 'kick' }, { tick: 5775, type: 'hihat' }, { tick: 5789, type: 'kick' }, { tick: 5803, type: 'hihat' }, { tick: 5804, type: 'snare' }, { tick: 5825, type: 'hihat' }, { tick: 5833, type: 'kick' }, { tick: 5842, type: 'hihat' }, { tick: 5848, type: 'hihat' }, { tick: 5861, type: 'snare' }, { tick: 5861, type: 'hihat' }, { tick: 5885, type: 'kick' }, { tick: 5890, type: 'hihat' }, { tick: 5904, type: 'kick' }, { tick: 5917, type: 'hihat' }, { tick: 5918, type: 'snare' }, { tick: 5934, type: 'hihat' }, { tick: 5940, type: 'hihat' }, { tick: 5945, type: 'kick' }, { tick: 5946, type: 'hihat' }, { tick: 5961, type: 'hihat' }, { tick: 5974, type: 'snare' }, { tick: 5977, type: 'hihat' }, { tick: 5995, type: 'kick' }, { tick: 6002, type: 'kick' }, { tick: 6006, type: 'hihat' }, { tick: 6018, type: 'kick' }, { tick: 6030, type: 'hihat' }, { tick: 6033, type: 'snare' }, { tick: 6045, type: 'hihat' }, { tick: 6058, type: 'hihat' }, { tick: 6061, type: 'hihat' }, { tick: 6062, type: 'kick' }, { tick: 6074, type: 'hihat' }, { tick: 6089, type: 'snare' }, { tick: 6090, type: 'hihat' }, { tick: 6105, type: 'hihat' }, { tick: 6110, type: 'kick' }, { tick: 6117, type: 'kick' }, { tick: 6118, type: 'hihat' }, { tick: 6132, type: 'kick' }, { tick: 6133, type: 'hihat' }, { tick: 6147, type: 'snare' }, { tick: 6147, type: 'hihat' }, { tick: 6161, type: 'hihat' }, { tick: 6174, type: 'hihat' }, { tick: 6174, type: 'hihat' }, { tick: 6176, type: 'kick' }, { tick: 6187, type: 'hihat' }, { tick: 6200, type: 'hihat' }, { tick: 6206, type: 'snare' }, { tick: 6213, type: 'hihat' }, { tick: 6226, type: 'hihat' }, { tick: 6228, type: 'kick' }, { tick: 6235, type: 'kick' }, { tick: 6239, type: 'hihat' }, { tick: 6250, type: 'kick' }, { tick: 6251, type: 'hihat' }, { tick: 6263, type: 'hihat' }, { tick: 6264, type: 'snare' }, { tick: 6278, type: 'hihat' }, { tick: 6284, type: 'hihat' }, { tick: 6289, type: 'kick' }, { tick: 6301, type: 'hihat' }, { tick: 6316, type: 'hihat' }, { tick: 6320, type: 'snare' }, { tick: 6344, type: 'kick' }, { tick: 6348, type: 'hihat' }, { tick: 6362, type: 'hihat' }, { tick: 6365, type: 'kick' }, { tick: 6377, type: 'hihat' }, { tick: 6380, type: 'snare' }, { tick: 6391, type: 'hihat' }, { tick: 6405, type: 'hihat' }, { tick: 6408, type: 'kick' }, { tick: 6421, type: 'hihat' }, { tick: 6435, type: 'hihat' }, { tick: 6437, type: 'snare' }, { tick: 6450, type: 'hihat' }, { tick: 6465, type: 'kick' }, { tick: 6465, type: 'hihat' }, { tick: 6480, type: 'hihat' }, { tick: 6494, type: 'snare' }, { tick: 6494, type: 'hihat' }, { tick: 6509, type: 'hihat' }, { tick: 6521, type: 'kick' }, { tick: 6522, type: 'hihat' }, { tick: 6535, type: 'hihat' }, { tick: 6551, type: 'snare' }, { tick: 6551, type: 'hihat' }, { tick: 6566, type: 'hihat' }, { tick: 6576, type: 'kick' }, { tick: 6579, type: 'hihat' }, { tick: 6583, type: 'kick' }, { tick: 6593, type: 'hihat' }, { tick: 6596, type: 'kick' }, { tick: 6607, type: 'hihat' }, { tick: 6610, type: 'snare' }, { tick: 6622, type: 'hihat' }, { tick: 6635, type: 'hihat' }, { tick: 6637, type: 'kick' }, { tick: 6650, type: 'hihat' }, { tick: 6665, type: 'snare' }, { tick: 6665, type: 'hihat' }, { tick: 6686, type: 'kick' }, { tick: 6692, type: 'kick' }, { tick: 6692, type: 'hihat' }, { tick: 6707, type: 'hihat' }, { tick: 6708, type: 'kick' }, { tick: 6720, type: 'hihat' }, { tick: 6724, type: 'snare' }, { tick: 6734, type: 'hihat' }, { tick: 6748, type: 'hihat' }, { tick: 6752, type: 'kick' }, { tick: 6763, type: 'hihat' }, { tick: 6779, type: 'snare' }, { tick: 6780, type: 'hihat' }, { tick: 6794, type: 'hihat' }, { tick: 6803, type: 'kick' }, { tick: 6808, type: 'hihat' }, { tick: 6809, type: 'kick' }, { tick: 6824, type: 'kick' }, { tick: 6824, type: 'hihat' }, { tick: 6836, type: 'hihat' }, { tick: 6839, type: 'snare' }, { tick: 6850, type: 'hihat' }, { tick: 6863, type: 'hihat' }, { tick: 6866, type: 'kick' }, { tick: 6874, type: 'hihat' }, { tick: 6889, type: 'hihat' }, { tick: 6895, type: 'snare' }, { tick: 6905, type: 'hihat' }, { tick: 6920, type: 'hihat' }, { tick: 6924, type: 'kick' }, { tick: 6935, type: 'hihat' }, { tick: 6950, type: 'snare' }, { tick: 6950, type: 'hihat' }, { tick: 6963, type: 'hihat' }, { tick: 6977, type: 'hihat' }, { tick: 6979, type: 'kick' }, { tick: 6991, type: 'hihat' }, { tick: 7008, type: 'hihat' }, { tick: 7010, type: 'snare' }, { tick: 7024, type: 'hihat' }, { tick: 7038, type: 'kick' }, { tick: 7039, type: 'hihat' }, { tick: 7051, type: 'hihat' }, { tick: 7066, type: 'hihat' }, { tick: 7067, type: 'snare' }, { tick: 7081, type: 'hihat' }, { tick: 7094, type: 'hihat' }, { tick: 7095, type: 'kick' }, { tick: 7095, type: 'hihat' }, { tick: 7110, type: 'hihat' }, { tick: 7126, type: 'snare' }, { tick: 7127, type: 'hihat' }, { tick: 7142, type: 'hihat' }, { tick: 7154, type: 'kick' }, { tick: 7155, type: 'hihat' }, { tick: 7169, type: 'hihat' }, { tick: 7172, type: 'kick' }, { tick: 7182, type: 'hihat' }, { tick: 7185, type: 'snare' }, { tick: 7196, type: 'hihat' }, { tick: 7211, type: 'hihat' }, { tick: 7213, type: 'kick' }, { tick: 7224, type: 'hihat' }, { tick: 7239, type: 'snare' }, { tick: 7240, type: 'hihat' }, { tick: 7254, type: 'hihat' }, { tick: 7264, type: 'kick' }, { tick: 7269, type: 'hihat' }, { tick: 7282, type: 'kick' }, { tick: 7285, type: 'hihat' }, { tick: 7287, type: 'kick' }, { tick: 7299, type: 'hihat' }, { tick: 7307, type: 'snare' }, { tick: 7313, type: 'hihat' }, { tick: 7327, type: 'hihat' }, { tick: 7341, type: 'hihat' }, { tick: 7356, type: 'hihat' }, { tick: 7360, type: 'snare' }, { tick: 7371, type: 'hihat' }, { tick: 7384, type: 'hihat' }, { tick: 7399, type: 'hihat' }, { tick: 7411, type: 'snare' }, { tick: 7412, type: 'hihat' }, { tick: 7429, type: 'hihat' }, { tick: 7442, type: 'kick' }, { tick: 7442, type: 'hihat' }, { tick: 7455, type: 'hihat' }, { tick: 7468, type: 'snare' }, { tick: 7469, type: 'hihat' }, { tick: 7484, type: 'hihat' }, { tick: 7492, type: 'kick' }, { tick: 7497, type: 'hihat' }, { tick: 7498, type: 'hihat' }, { tick: 7509, type: 'kick' }, { tick: 7515, type: 'hihat' }, { tick: 7517, type: 'kick' }, { tick: 7528, type: 'snare' }, { tick: 7528, type: 'hihat' }, { tick: 7540, type: 'hihat' }, { tick: 7553, type: 'hihat' }, { tick: 7555, type: 'kick' }, { tick: 7567, type: 'hihat' }, { tick: 7581, type: 'hihat' }, { tick: 7582, type: 'snare' }, { tick: 7598, type: 'hihat' }, { tick: 7605, type: 'kick' }, { tick: 7612, type: 'hihat' }, { tick: 7623, type: 'kick' }, { tick: 7626, type: 'hihat' }, { tick: 7631, type: 'kick' }, { tick: 7641, type: 'hihat' }, { tick: 7643, type: 'snare' }, { tick: 7657, type: 'hihat' }, { tick: 7671, type: 'kick' }, { tick: 7671, type: 'hihat' }, { tick: 7685, type: 'hihat' }, { tick: 7700, type: 'snare' }, { tick: 7700, type: 'hihat' }, { tick: 7717, type: 'hihat' }, { tick: 7724, type: 'kick' }, { tick: 7740, type: 'kick' }, { tick: 7746, type: 'kick' }, { tick: 7758, type: 'snare' }] }, { name: "Level 3", music: "ABCDBackinDark", notes: [{ tick: 30, type: 'kick' }, { tick: 30, type: 'crash1' }, { tick: 48, type: 'hihat' }, { tick: 67, type: 'hihat' }, { tick: 68, type: 'snare' }, { tick: 85, type: 'hihat' }, { tick: 103, type: 'hihat' }, { tick: 104, type: 'kick' }, { tick: 121, type: 'hihat' }, { tick: 139, type: 'snare' }, { tick: 139, type: 'hihat' }, { tick: 158, type: 'hihat' }, { tick: 175, type: 'kick' }, { tick: 175, type: 'hihat' }, { tick: 192, type: 'hihat' }, { tick: 210, type: 'hihat' }, { tick: 210, type: 'snare' }, { tick: 227, type: 'hihat' }, { tick: 246, type: 'hihat' }, { tick: 247, type: 'kick' }, { tick: 266, type: 'hihat' }, { tick: 282, type: 'snare' }, { tick: 283, type: 'hihat' }, { tick: 301, type: 'hihat' }, { tick: 319, type: 'hihat' }, { tick: 319, type: 'kick' }, { tick: 336, type: 'hihat' }, { tick: 353, type: 'hihat' }, { tick: 354, type: 'snare' }, { tick: 372, type: 'hihat' }, { tick: 390, type: 'hihat' }, { tick: 390, type: 'kick' }, { tick: 409, type: 'hihat' }, { tick: 427, type: 'hihat' }, { tick: 428, type: 'snare' }, { tick: 445, type: 'hihat' }, { tick: 463, type: 'hihat' }, { tick: 463, type: 'kick' }, { tick: 480, type: 'hihat' }, { tick: 498, type: 'snare' }, { tick: 505, type: 'tom1' }, { tick: 527, type: 'snare' }, { tick: 533, type: 'tom1' }, { tick: 557, type: 'snare' }, { tick: 562, type: 'tom1' }, { tick: 584, type: 'snare' }, { tick: 588, type: 'tom1' }, { tick: 612, type: 'crash1' }, { tick: 612, type: 'kick' }, { tick: 633, type: 'hihat' }, { tick: 648, type: 'snare' }, { tick: 648, type: 'hihat' }, { tick: 666, type: 'hihat' }, { tick: 684, type: 'hihat' }, { tick: 684, type: 'kick' }, { tick: 701, type: 'hihat' }, { tick: 719, type: 'snare' }, { tick: 721, type: 'hihat' }, { tick: 740, type: 'hihat' }, { tick: 757, type: 'hihat' }, { tick: 758, type: 'kick' }, { tick: 773, type: 'hihat' }, { tick: 793, type: 'hihat' }, { tick: 793, type: 'snare' }, { tick: 811, type: 'hihat' }, { tick: 828, type: 'hihat' }, { tick: 828, type: 'kick' }, { tick: 844, type: 'hihat' }, { tick: 862, type: 'snare' }, { tick: 862, type: 'hihat' }, { tick: 880, type: 'hihat' }, { tick: 898, type: 'hihat' }, { tick: 900, type: 'kick' }, { tick: 917, type: 'hihat' }, { tick: 934, type: 'snare' }, { tick: 935, type: 'hihat' }, { tick: 955, type: 'hihat' }, { tick: 972, type: 'hihat' }, { tick: 972, type: 'kick' }, { tick: 991, type: 'hihat' }, { tick: 1008, type: 'snare' }, { tick: 1008, type: 'hihat' }, { tick: 1027, type: 'hihat' }, { tick: 1045, type: 'hihat' }, { tick: 1046, type: 'kick' }, { tick: 1062, type: 'hihat' }, { tick: 1081, type: 'snare' }, { tick: 1088, type: 'tom1' }, { tick: 1110, type: 'snare' }, { tick: 1116, type: 'tom1' }, { tick: 1138, type: 'snare' }, { tick: 1143, type: 'tom1' }, { tick: 1165, type: 'snare' }, { tick: 1171, type: 'tom1' }, { tick: 1193, type: 'kick' }, { tick: 1193, type: 'crash1' }, { tick: 1211, type: 'hihat' }, { tick: 1230, type: 'hihat' }, { tick: 1230, type: 'snare' }, { tick: 1249, type: 'hihat' }, { tick: 1265, type: 'hihat' }, { tick: 1265, type: 'kick' }, { tick: 1283, type: 'hihat' }, { tick: 1300, type: 'snare' }, { tick: 1300, type: 'hihat' }, { tick: 1320, type: 'hihat' }, { tick: 1338, type: 'hihat' }, { tick: 1338, type: 'kick' }, { tick: 1355, type: 'hihat' }, { tick: 1374, type: 'hihat' }, { tick: 1375, type: 'snare' }, { tick: 1393, type: 'hihat' }, { tick: 1412, type: 'hihat' }, { tick: 1412, type: 'kick' }, { tick: 1428, type: 'hihat' }, { tick: 1447, type: 'hihat' }, { tick: 1448, type: 'snare' }, { tick: 1464, type: 'hihat' }, { tick: 1482, type: 'hihat' }, { tick: 1483, type: 'kick' }, { tick: 1501, type: 'hihat' }, { tick: 1519, type: 'hihat' }, { tick: 1519, type: 'snare' }, { tick: 1538, type: 'hihat' }, { tick: 1556, type: 'hihat' }, { tick: 1556, type: 'kick' }, { tick: 1574, type: 'hihat' }, { tick: 1592, type: 'hihat' }, { tick: 1593, type: 'snare' }, { tick: 1609, type: 'hihat' }, { tick: 1627, type: 'hihat' }, { tick: 1629, type: 'kick' }, { tick: 1646, type: 'hihat' }, { tick: 1667, type: 'snare' }, { tick: 1672, type: 'tom1' }, { tick: 1694, type: 'snare' }, { tick: 1699, type: 'tom1' }, { tick: 1719, type: 'snare' }, { tick: 1725, type: 'tom1' }, { tick: 1745, type: 'snare' }, { tick: 1751, type: 'tom1' }, { tick: 1773, type: 'crash1' }, { tick: 1774, type: 'kick' }, { tick: 1791, type: 'hihat' }, { tick: 1808, type: 'snare' }, { tick: 1810, type: 'hihat' }, { tick: 1828, type: 'hihat' }, { tick: 1846, type: 'hihat' }, { tick: 1847, type: 'kick' }, { tick: 1864, type: 'hihat' }, { tick: 1880, type: 'snare' }, { tick: 1881, type: 'hihat' }, { tick: 1899, type: 'hihat' }, { tick: 1916, type: 'hihat' }, { tick: 1918, type: 'kick' }, { tick: 1935, type: 'hihat' }, { tick: 1950, type: 'hihat' }, { tick: 1950, type: 'snare' }, { tick: 1971, type: 'hihat' }, { tick: 1991, type: 'hihat' }, { tick: 1991, type: 'kick' }, { tick: 2008, type: 'hihat' }, { tick: 2027, type: 'snare' }, { tick: 2027, type: 'hihat' }, { tick: 2045, type: 'hihat' }, { tick: 2064, type: 'kick' }, { tick: 2065, type: 'hihat' }, { tick: 2081, type: 'hihat' }, { tick: 2099, type: 'snare' }, { tick: 2099, type: 'hihat' }, { tick: 2117, type: 'hihat' }, { tick: 2134, type: 'hihat' }, { tick: 2134, type: 'kick' }, { tick: 2152, type: 'hihat' }, { tick: 2171, type: 'hihat' }, { tick: 2172, type: 'snare' }, { tick: 2189, type: 'hihat' }, { tick: 2207, type: 'hihat' }, { tick: 2207, type: 'kick' }, { tick: 2225, type: 'hihat' }, { tick: 2244, type: 'snare' }, { tick: 2251, type: 'tom1' }, { tick: 2271, type: 'snare' }, { tick: 2278, type: 'tom1' }, { tick: 2300, type: 'snare' }, { tick: 2306, type: 'tom1' }, { tick: 2326, type: 'snare' }, { tick: 2332, type: 'tom1' }, { tick: 2353, type: 'crash1' }, { tick: 2354, type: 'kick' }, { tick: 2372, type: 'hihat' }, { tick: 2390, type: 'snare' }, { tick: 2391, type: 'hihat' }, { tick: 2408, type: 'hihat' }, { tick: 2426, type: 'kick' }, { tick: 2427, type: 'hihat' }, { tick: 2445, type: 'hihat' }, { tick: 2462, type: 'snare' }, { tick: 2462, type: 'hihat' }, { tick: 2482, type: 'hihat' }, { tick: 2501, type: 'crash1' }, { tick: 2501, type: 'kick' }, { tick: 2523, type: 'hihat' }, { tick: 2537, type: 'snare' }, { tick: 2538, type: 'hihat' }, { tick: 2554, type: 'hihat' }, { tick: 2572, type: 'hihat' }, { tick: 2572, type: 'kick' }, { tick: 2588, type: 'hihat' }, { tick: 2606, type: 'snare' }, { tick: 2607, type: 'hihat' }, { tick: 2626, type: 'hihat' }, { tick: 2645, type: 'crash1' }, { tick: 2645, type: 'kick' }, { tick: 2666, type: 'hihat' }, { tick: 2681, type: 'snare' }, { tick: 2681, type: 'hihat' }, { tick: 2698, type: 'hihat' }, { tick: 2716, type: 'kick' }, { tick: 2716, type: 'hihat' }, { tick: 2735, type: 'hihat' }, { tick: 2752, type: 'snare' }, { tick: 2752, type: 'hihat' }, { tick: 2768, type: 'hihat' }, { tick: 2788, type: 'kick' }, { tick: 2789, type: 'crash1' }, { tick: 2806, type: 'hihat' }, { tick: 2825, type: 'hihat' }, { tick: 2825, type: 'snare' }, { tick: 2844, type: 'hihat' }, { tick: 2861, type: 'kick' }, { tick: 2861, type: 'hihat' }, { tick: 2881, type: 'hihat' }, { tick: 2898, type: 'hihat' }, { tick: 2898, type: 'snare' }, { tick: 2914, type: 'hihat' }, { tick: 2932, type: 'crash1' }, { tick: 2933, type: 'kick' }, { tick: 2952, type: 'hihat' }, { tick: 2971, type: 'hihat' }, { tick: 2971, type: 'snare' }, { tick: 2988, type: 'hihat' }, { tick: 3007, type: 'kick' }, { tick: 3007, type: 'hihat' }, { tick: 3024, type: 'hihat' }, { tick: 3042, type: 'hihat' }, { tick: 3042, type: 'snare' }, { tick: 3061, type: 'hihat' }, { tick: 3078, type: 'crash1' }, { tick: 3079, type: 'kick' }, { tick: 3097, type: 'hihat' }, { tick: 3114, type: 'snare' }, { tick: 3115, type: 'hihat' }, { tick: 3133, type: 'hihat' }, { tick: 3151, type: 'kick' }, { tick: 3151, type: 'hihat' }, { tick: 3168, type: 'hihat' }, { tick: 3187, type: 'snare' }, { tick: 3188, type: 'hihat' }, { tick: 3206, type: 'hihat' }, { tick: 3222, type: 'crash1' }, { tick: 3223, type: 'kick' }, { tick: 3241, type: 'hihat' }, { tick: 3259, type: 'snare' }, { tick: 3259, type: 'hihat' }, { tick: 3276, type: 'hihat' }, { tick: 3295, type: 'kick' }, { tick: 3295, type: 'hihat' }, { tick: 3313, type: 'hihat' }, { tick: 3331, type: 'snare' }, { tick: 3332, type: 'hihat' }, { tick: 3350, type: 'hihat' }, { tick: 3367, type: 'kick' }, { tick: 3367, type: 'crash1' }, { tick: 3395, type: 'crash1' }, { tick: 3395, type: 'kick' }, { tick: 3422, type: 'crash1' }, { tick: 3422, type: 'kick' }, { tick: 3471, type: 'snare' }, { tick: 3514, type: 'crash1' }, { tick: 3514, type: 'kick' }, { tick: 3533, type: 'hihat' }, { tick: 3551, type: 'hihat' }, { tick: 3551, type: 'snare' }, { tick: 3570, type: 'hihat' }, { tick: 3588, type: 'hihat' }, { tick: 3589, type: 'kick' }, { tick: 3607, type: 'hihat' }, { tick: 3624, type: 'snare' }, { tick: 3624, type: 'hihat' }, { tick: 3642, type: 'hihat' }, { tick: 3661, type: 'hihat' }, { tick: 3661, type: 'kick' }, { tick: 3681, type: 'hihat' }, { tick: 3697, type: 'snare' }, { tick: 3697, type: 'hihat' }, { tick: 3715, type: 'hihat' }, { tick: 3732, type: 'hihat' }, { tick: 3733, type: 'kick' }, { tick: 3751, type: 'hihat' }, { tick: 3770, type: 'snare' }, { tick: 3770, type: 'hihat' }, { tick: 3786, type: 'hihat' }, { tick: 3807, type: 'hihat' }, { tick: 3808, type: 'kick' }, { tick: 3823, type: 'hihat' }, { tick: 3841, type: 'hihat' }, { tick: 3842, type: 'snare' }, { tick: 3859, type: 'hihat' }, { tick: 3877, type: 'hihat' }, { tick: 3877, type: 'kick' }, { tick: 3895, type: 'hihat' }, { tick: 3913, type: 'hihat' }, { tick: 3913, type: 'snare' }, { tick: 3929, type: 'hihat' }, { tick: 3947, type: 'hihat' }, { tick: 3947, type: 'kick' }, { tick: 3966, type: 'hihat' }, { tick: 3988, type: 'snare' }, { tick: 4016, type: 'snare' }, { tick: 4020, type: 'tom1' }, { tick: 4042, type: 'snare' }, { tick: 4048, type: 'tom1' }, { tick: 4070, type: 'snare' }, { tick: 4076, type: 'tom1' }, { tick: 4095, type: 'kick' }, { tick: 4096, type: 'crash1' }, { tick: 4115, type: 'hihat' }, { tick: 4133, type: 'hihat' }, { tick: 4133, type: 'snare' }, { tick: 4151, type: 'hihat' }, { tick: 4168, type: 'kick' }, { tick: 4170, type: 'hihat' }, { tick: 4187, type: 'hihat' }, { tick: 4205, type: 'snare' }, { tick: 4205, type: 'hihat' }, { tick: 4223, type: 'hihat' }, { tick: 4240, type: 'kick' }, { tick: 4241, type: 'hihat' }, { tick: 4259, type: 'hihat' }, { tick: 4277, type: 'snare' }, { tick: 4278, type: 'hihat' }, { tick: 4296, type: 'hihat' }, { tick: 4314, type: 'hihat' }, { tick: 4315, type: 'kick' }, { tick: 4333, type: 'hihat' }, { tick: 4350, type: 'hihat' }, { tick: 4351, type: 'snare' }, { tick: 4370, type: 'hihat' }, { tick: 4387, type: 'kick' }, { tick: 4388, type: 'hihat' }, { tick: 4406, type: 'hihat' }, { tick: 4423, type: 'hihat' }, { tick: 4424, type: 'snare' }, { tick: 4441, type: 'hihat' }, { tick: 4460, type: 'hihat' }, { tick: 4461, type: 'kick' }, { tick: 4478, type: 'hihat' }, { tick: 4495, type: 'hihat' }, { tick: 4495, type: 'snare' }, { tick: 4514, type: 'hihat' }, { tick: 4531, type: 'hihat' }, { tick: 4532, type: 'kick' }, { tick: 4548, type: 'hihat' }, { tick: 4562, type: 'snare' }, { tick: 4574, type: 'tom1' }, { tick: 4598, type: 'snare' }, { tick: 4604, type: 'tom1' }, { tick: 4628, type: 'snare' }, { tick: 4632, type: 'tom1' }, { tick: 4654, type: 'snare' }, { tick: 4659, type: 'tom1' }, { tick: 4678, type: 'crash1' }, { tick: 4678, type: 'kick' }, { tick: 4695, type: 'hihat' }, { tick: 4713, type: 'snare' }, { tick: 4714, type: 'hihat' }, { tick: 4732, type: 'hihat' }, { tick: 4750, type: 'kick' }, { tick: 4751, type: 'hihat' }, { tick: 4769, type: 'hihat' }, { tick: 4786, type: 'snare' }, { tick: 4786, type: 'hihat' }, { tick: 4805, type: 'hihat' }, { tick: 4823, type: 'crash1' }, { tick: 4823, type: 'kick' }, { tick: 4840, type: 'hihat' }, { tick: 4857, type: 'snare' }, { tick: 4859, type: 'hihat' }, { tick: 4877, type: 'hihat' }, { tick: 4894, type: 'kick' }, { tick: 4895, type: 'hihat' }, { tick: 4913, type: 'hihat' }, { tick: 4930, type: 'snare' }, { tick: 4930, type: 'hihat' }, { tick: 4948, type: 'hihat' }, { tick: 4966, type: 'crash1' }, { tick: 4966, type: 'kick' }, { tick: 4986, type: 'hihat' }, { tick: 5004, type: 'snare' }, { tick: 5004, type: 'hihat' }, { tick: 5021, type: 'hihat' }, { tick: 5039, type: 'hihat' }, { tick: 5040, type: 'kick' }, { tick: 5056, type: 'hihat' }, { tick: 5074, type: 'hihat' }, { tick: 5075, type: 'snare' }, { tick: 5094, type: 'hihat' }, { tick: 5112, type: 'kick' }, { tick: 5112, type: 'crash1' }, { tick: 5134, type: 'hihat' }, { tick: 5149, type: 'snare' }, { tick: 5150, type: 'hihat' }, { tick: 5167, type: 'hihat' }, { tick: 5186, type: 'kick' }, { tick: 5186, type: 'hihat' }, { tick: 5202, type: 'hihat' }, { tick: 5221, type: 'hihat' }, { tick: 5221, type: 'snare' }, { tick: 5239, type: 'hihat' }, { tick: 5257, type: 'crash1' }, { tick: 5257, type: 'kick' }, { tick: 5277, type: 'hihat' }, { tick: 5294, type: 'snare' }, { tick: 5294, type: 'hihat' }, { tick: 5312, type: 'hihat' }, { tick: 5330, type: 'hihat' }, { tick: 5330, type: 'kick' }, { tick: 5348, type: 'hihat' }, { tick: 5364, type: 'snare' }, { tick: 5365, type: 'hihat' }, { tick: 5385, type: 'hihat' }, { tick: 5403, type: 'crash1' }, { tick: 5403, type: 'kick' }, { tick: 5424, type: 'hihat' }, { tick: 5439, type: 'snare' }, { tick: 5441, type: 'hihat' }, { tick: 5457, type: 'hihat' }, { tick: 5475, type: 'hihat' }, { tick: 5476, type: 'kick' }, { tick: 5493, type: 'hihat' }, { tick: 5510, type: 'hihat' }, { tick: 5511, type: 'snare' }, { tick: 5530, type: 'hihat' }, { tick: 5546, type: 'crash1' }, { tick: 5548, type: 'kick' }, { tick: 5565, type: 'hihat' }, { tick: 5581, type: 'snare' }, { tick: 5582, type: 'hihat' }, { tick: 5601, type: 'hihat' }, { tick: 5619, type: 'hihat' }, { tick: 5619, type: 'kick' }, { tick: 5637, type: 'hihat' }, { tick: 5656, type: 'hihat' }, { tick: 5656, type: 'snare' }, { tick: 5672, type: 'hihat' }, { tick: 5692, type: 'crash1' }, { tick: 5693, type: 'kick' }, { tick: 5718, type: 'crash1' }, { tick: 5719, type: 'kick' }, { tick: 5745, type: 'crash1' }, { tick: 5745, type: 'kick' }, { tick: 5791, type: 'snare' }, { tick: 5839, type: 'kick' }, { tick: 5839, type: 'crash1' }] }]; // Current level index and songNotes reference var currentLevelIndex = 0; var songNotes = LEVELS[0].notes; var currentMusic = LEVELS[0].music; // --- Intro Screen UI --- var introContainer = new Container(); introContainer.x = 0; introContainer.y = 0; introContainer.visible = true; LK.gui.center.addChild(introContainer); // Background var introBg = LK.getAsset('introBg', { anchorX: 0, anchorY: 0, x: 0, y: 0, width: LK.gui.center.width, height: LK.gui.center.height }); introContainer.addChild(introBg); // Center column layout for intro var introColumn = new Container(); introColumn.x = LK.gui.center.width / 2; introColumn.y = LK.gui.center.height / 2; introContainer.addChild(introColumn); // Logos - create all three and set up alternating var introLogo1 = LK.getAsset('introLogo', { anchorX: 0.5, anchorY: 0.5, x: 0, y: 0, scaleX: 0.6, scaleY: 0.6 }); var introLogo2 = LK.getAsset('introLogo2', { anchorX: 0.5, anchorY: 0.5, x: 0, y: 0, scaleX: 0.6, scaleY: 0.6 }); var introLogo3 = LK.getAsset('introLogo3', { anchorX: 0.5, anchorY: 0.5, x: 0, y: 0, scaleX: 0.6, scaleY: 0.6 }); // Start with only first logo visible introLogo2.visible = false; introLogo3.visible = false; introColumn.addChild(introLogo1); introColumn.addChild(introLogo2); introColumn.addChild(introLogo3); // Set up alternating timer with cycling through all three logos var currentLogoIndex = 0; var logoSwitchTimer = LK.setInterval(function () { if (introContainer.visible) { // Hide all logos introLogo1.visible = false; introLogo2.visible = false; introLogo3.visible = false; // Show next logo in sequence currentLogoIndex = (currentLogoIndex + 1) % 3; if (currentLogoIndex === 0) { introLogo1.visible = true; } else if (currentLogoIndex === 1) { introLogo2.visible = true; } else { introLogo3.visible = true; } } }, 350); // Switch every 350ms // Play Button (moved to top) var playBtn = new Text2("Play", { size: 120, fill: "#fff", font: "Impact" }); playBtn.anchor.set(0.5, 0.5); playBtn.x = 0; playBtn.y = -LK.gui.center.height / 2 + 150 - 500; // Title Image Asset var introTitle = LK.getAsset('gameTitle', { anchorX: 0.5, anchorY: 0.5, x: 0, y: introLogo1.y + introLogo1.height / 2 + 100 - 200, width: 1400, height: 300 }); introColumn.addChild(introTitle); playBtn.interactive = true; playBtn.buttonMode = true; playBtn.bg = LK.getAsset('playButton', { anchorX: 0.5, anchorY: 0.5, x: playBtn.x, y: playBtn.y, width: 600, height: 180 }); introColumn.addChild(playBtn.bg); introColumn.addChild(playBtn); playBtn.down = function () { introContainer.visible = false; levelSelectContainer.visible = true; // Stop tip cycling when leaving intro if (tipDisplayTimer) { LK.clearInterval(tipDisplayTimer); } }; // --- Level Selection UI --- var levelSelectContainer = new Container(); levelSelectContainer.x = 0; levelSelectContainer.y = 0; levelSelectContainer.visible = false; LK.gui.center.addChild(levelSelectContainer); // Place the column at 30px from left, and vertically at 30px from the top (move further up by 20cm ≈ 720px) var levelSelectColumn = new Container(); // Move further up: 20cm ≈ 720px, so y = 30 - 720 = -690 levelSelectColumn.x = 30; levelSelectColumn.y = -690; levelSelectContainer.addChild(levelSelectColumn); // Title var levelSelectTitle = new Text2("Choose Level", { size: 120, fill: "#fff" }); levelSelectTitle.anchor.set(0.5, 0.5); levelSelectTitle.x = 0; levelSelectTitle.y = 0; levelSelectColumn.addChild(levelSelectTitle); // Level buttons, stacked vertically, centered below the title var levelButtons = []; var levelBtnSpacing = 220; var firstBtnY = levelSelectTitle.y + 180; for (var i = 0; i < LEVELS.length; i++) { (function (idx) { // Button background for touch area var btnBg = LK.getAsset('levelButton', { anchorX: 0.5, anchorY: 0.5, x: 0, y: firstBtnY + idx * levelBtnSpacing, width: 1000, height: 200 }); // Button text var btn = new Text2(LEVELS[idx].name, { size: 100, fill: "#fff", font: "Impact" }); btn.anchor.set(0.5, 0.5); btn.x = 0; btn.y = firstBtnY + idx * levelBtnSpacing; btn.interactive = true; btn.buttonMode = true; btn.down = function () { selectLevel(idx); }; levelSelectColumn.addChild(btnBg); levelSelectColumn.addChild(btn); levelButtons.push(btn); })(i); } // --- Recording UI and Logic --- var recordTxt = new Text2('KAYIT: KAPALI', { size: 70, fill: 0xFF6666 }); recordTxt.anchor.set(0.5, 0); LK.gui.top.addChild(recordTxt); recordTxt.x = LK.gui.top.width / 2; recordTxt.y = 220; // Hide gameplay UI until level is selected scoreTxt.visible = false; comboTxt.visible = false; recordTxt.visible = false; // Level selection handler function selectLevel(idx) { currentLevelIndex = idx; songNotes = LEVELS[idx].notes; currentMusic = LEVELS[idx].music; levelSelectContainer.visible = false; scoreTxt.visible = true; comboTxt.visible = true; recordTxt.visible = true; if (typeof TEST_MODE !== "undefined" && TEST_MODE) { // Update songTotalTicks for timeline songTotalTicks = songNotes.length > 0 ? songNotes[songNotes.length - 1].tick : 1; } startGame(); // Start the game after selecting a level } var isRecording = false; var recordedNotes = []; var recordStartTick = 0; // Toggle recording on tap of recordTxt recordTxt.interactive = true; recordTxt.buttonMode = true; recordTxt.down = function () { if (!isRecording) { // Start recording isRecording = true; recordedNotes = []; recordStartTick = LK.ticks; recordTxt.setText('KAYIT: AÇIK'); comboTxt.setText('KAYIT MODU'); } else { // Stop recording and save as new level isRecording = false; recordTxt.setText('KAYIT: KAPALI'); comboTxt.setText(''); // Convert recordedNotes to songNotes format if (recordedNotes.length > 0) { // Normalize ticks to start at 0 var minTick = recordedNotes.length > 0 ? recordedNotes[0].tick : 0; for (var i = 0; i < recordedNotes.length; i++) { recordedNotes[i].tick -= minTick; } songNotes = []; for (var i = 0; i < recordedNotes.length; i++) { songNotes.push({ tick: recordedNotes[i].tick, type: recordedNotes[i].type }); } // Print recorded notes as code in the console var codeStr = "var songNotes = [\n"; for (var i = 0; i < recordedNotes.length; i++) { codeStr += " { tick: " + recordedNotes[i].tick + ", type: '" + recordedNotes[i].type + "' },\n"; } codeStr += "];"; console.log(codeStr); // Restart game with new level startGame(); } } }; LK.gui.top.addChild(recordTxt); // --- Record pad hits if in recording mode --- function recordPadHit(padType) { if (isRecording) { var tick = LK.ticks - recordStartTick; recordedNotes.push({ tick: tick, type: padType }); } } // --- Create Drum Pads --- for (var i = 0; i < PAD_COLS; i++) { var pad = new DrumPad(); pad.setPadType(PAD_TYPES[i]); pad.x = PAD_X_POSITIONS[PAD_TYPES[i]]; pad.y = PAD_Y; pad.padIndex = i; pads.push(pad); game.addChild(pad); } // --- Pad Touch Handling --- var activePad = null; function getPadAt(x, y) { for (var i = 0; i < pads.length; i++) { var pad = pads[i]; var dx = x - pad.x, dy = y - pad.y; var rx = pad.asset.width / 2, ry = pad.asset.height / 2; if (dx * dx / (rx * rx) + dy * dy / (ry * ry) <= 1) { return pad; } } return null; } game.down = function (x, y, obj) { var pad = getPadAt(x, y); if (pad) { activePad = pad; handlePadHit(pad); } }; game.move = function (x, y, obj) { // For multi-touch, could be extended }; game.up = function (x, y, obj) { activePad = null; }; // --- Note Spawning --- function spawnNote(type) { var note = new Note(); note.setNoteType(type); note.x = PAD_X_POSITIONS[type]; note.y = NOTE_START_Y; note.noteType = type; note.hit = false; notes.push(note); game.addChild(note); } // --- Pad Hit Logic --- function handlePadHit(pad) { // Play sound var soundId = pad.padType + 'Sound'; var sound = LK.getSound(soundId); if (sound) { if (sound.stop) { sound.stop(); } // Stop if already playing to avoid overlap/delay sound.play(); } // Record pad hit if in recording mode recordPadHit(pad.padType); // Visual feedback pad.flash(); // Allow even earlier and later hits by expanding the hit windows further var HIT_WINDOW_EARLY = HIT_WINDOW * 2.2; // allow 120% earlier var HIT_WINDOW_LATE = HIT_WINDOW * 2.5; // allow 150% later - more tolerance for late hits // Find closest note of this type in expanded hit window var bestNote = null, bestDist = HIT_WINDOW_LATE; for (var i = 0; i < notes.length; i++) { var note = notes[i]; if (note.hit) { continue; } if (note.noteType !== pad.padType) { continue; } var dist = Math.abs(note.y - NOTE_TARGET_Y); // Accept if note is within early or late window if (note.y >= NOTE_TARGET_Y - HIT_WINDOW_EARLY && note.y <= NOTE_TARGET_Y + HIT_WINDOW_LATE && dist < bestDist) { bestDist = dist; bestNote = note; } } if (bestNote) { // Hit! bestNote.hit = true; LK.effects.flashObject(bestNote, 0xffffff, 120); tween(bestNote, { alpha: 0 }, { duration: 120, onFinish: function onFinish() { bestNote.destroy(); } }); notes.splice(notes.indexOf(bestNote), 1); score += 100; combo += 1; if (combo > maxCombo) { maxCombo = combo; } scoreTxt.setText(score); comboTxt.setText(combo > 1 ? combo + 'x' : ''); // Reset consecutiveMisses on successful hit if (typeof consecutiveMisses !== "undefined") { consecutiveMisses = 0; } // --- HEALTH BAR: Increase health by (1 * combo), clamp to maxHealth --- if (typeof health !== "undefined") { var addHealth = 1 * (combo > 0 ? combo : 1); health += addHealth; if (health > maxHealth) { health = maxHealth; } // Update health bar UI if (healthBarFg) { healthBarFg.width = health / maxHealth * healthBarBg.width; } } } else { // Miss! LK.effects.flashScreen(0xff0000, 200); // Track consecutive misses for combo reset if (typeof consecutiveMisses === "undefined") { consecutiveMisses = 0; } consecutiveMisses += 1; if (consecutiveMisses >= 2) { combo = 0; comboTxt.setText(''); consecutiveMisses = 0; } // --- HEALTH BAR: Decrease health by 2 (or more if many consecutive misses), clamp to 0 --- if (typeof health !== "undefined") { var missPenalty = 2; if (consecutiveMisses >= 3) { // For every group of 3 consecutive misses, double the penalty missPenalty = 2 * Math.pow(2, Math.floor(consecutiveMisses / 3)); } health -= missPenalty; if (health < 0) { health = 0; } if (healthBarFg) { healthBarFg.width = health / maxHealth * healthBarBg.width; } } } } // --- Game Update --- game.update = function () { if (!isPlaying) { return; } // If recording, do not spawn notes, do not check for misses, do not end game if (isRecording) { // Allow player to play freely, but do not process notes return; } // --- FAIL CHECK: If health is 0, fail the level and return to menu --- if (typeof health !== "undefined" && health <= 0 && isPlaying) { isPlaying = false; LK.stopMusic(); // Update high scores even on failure if needed var newHighScore = false; var newHighCombo = false; if (score > highScore) { highScore = score; storage.highScore = highScore; newHighScore = true; } if (maxCombo > highCombo) { highCombo = maxCombo; storage.highCombo = highCombo; newHighCombo = true; } // Update display texts highScoreTxt.setText("High Score: " + highScore); highComboTxt.setText("Best Combo: " + highCombo); // Show "Failed" text in the center of the screen var failedTxt = new Text2("FAILED", { size: 220, fill: 0xFF4444 }); failedTxt.anchor.set(0.5, 0.5); failedTxt.x = GAME_W / 2; failedTxt.y = GAME_H / 2; game.addChild(failedTxt); // Hide gameplay UI scoreTxt.visible = false; comboTxt.visible = false; recordTxt.visible = false; if (healthBarContainer && healthBarContainer.parent) { healthBarContainer.parent.removeChild(healthBarContainer); } // After 1.2s, remove failed text and return to intro screen LK.setTimeout(function () { if (failedTxt && failedTxt.parent) { failedTxt.parent.removeChild(failedTxt); } // Flash high score displays if new records were set if (newHighScore) { LK.effects.flashObject(highScoreTxt, 0x00FF00, 1000); } if (newHighCombo) { LK.effects.flashObject(highComboTxt, 0x00FF00, 1000); } levelSelectContainer.visible = false; introContainer.visible = true; // Restart tip cycling when returning to intro screen after failure startTipCycling(); }, 1200); return; } // Spawn notes according to songNotes, with NOTE_OFFSET_TICKS for sync var relTick = LK.ticks - songStartTick; while (noteIndex < songNotes.length && songNotes[noteIndex].tick <= relTick + NOTE_OFFSET_TICKS) { spawnNote(songNotes[noteIndex].type); noteIndex++; } // Update notes, check for misses for (var i = notes.length - 1; i >= 0; i--) { var note = notes[i]; note.update(); if (!note.hit && note.y > NOTE_TARGET_Y + HIT_WINDOW * 2.5) { // Missed note LK.effects.flashObject(note, 0xff0000, 120); tween(note, { alpha: 0 }, { duration: 120, onFinish: function onFinish() { note.destroy(); } }); notes.splice(i, 1); // Track consecutive misses for combo reset in update loop if (typeof consecutiveMisses === "undefined") { consecutiveMisses = 0; } consecutiveMisses += 1; if (consecutiveMisses >= 2) { combo = 0; comboTxt.setText(''); consecutiveMisses = 0; } // --- HEALTH BAR: Decrease health by 2 (or more if many consecutive misses), clamp to 0 --- if (typeof health !== "undefined") { var missPenalty = 2; if (consecutiveMisses >= 3) { // For every group of 3 consecutive misses, double the penalty missPenalty = 2 * Math.pow(2, Math.floor(consecutiveMisses / 3)); } health -= missPenalty; if (health < 0) { health = 0; } if (healthBarFg) { healthBarFg.width = health / maxHealth * healthBarBg.width; } } } // Remove notes that go off screen if (note.y > GAME_H + 100) { if (notes.indexOf(note) !== -1) { notes.splice(notes.indexOf(note), 1); } note.destroy(); } } // End of song if (noteIndex >= songNotes.length && notes.length === 0) { isPlaying = false; LK.stopMusic(); // Update high scores if needed var newHighScore = false; var newHighCombo = false; if (score > highScore) { highScore = score; storage.highScore = highScore; newHighScore = true; } if (maxCombo > highCombo) { highCombo = maxCombo; storage.highCombo = highCombo; newHighCombo = true; } // Update display texts highScoreTxt.setText("High Score: " + highScore); highComboTxt.setText("Best Combo: " + highCombo); // Flash high score displays if new records were set if (newHighScore) { LK.effects.flashObject(highScoreTxt, 0x00FF00, 1000); } if (newHighCombo) { LK.effects.flashObject(highComboTxt, 0x00FF00, 1000); } // Instead of showing win popup, return to intro screen levelSelectContainer.visible = false; scoreTxt.visible = false; comboTxt.visible = false; recordTxt.visible = false; if (healthBarContainer && healthBarContainer.parent) { healthBarContainer.parent.removeChild(healthBarContainer); } introContainer.visible = true; // Restart tip cycling when returning to intro screen startTipCycling(); } }; // --- Start Game --- function startGame() { score = 0; combo = 0; maxCombo = 0; scoreTxt.setText('0'); comboTxt.setText(''); notes = []; noteIndex = 0; isPlaying = true; songStartTick = LK.ticks; consecutiveMisses = 0; // Hide tips during gameplay if (tipsContainer) { tipsContainer.visible = false; } // --- Health Bar Setup --- health = 150; maxHealth = 150; // Remove previous health bar if exists if (healthBarContainer && healthBarContainer.parent) { healthBarContainer.parent.removeChild(healthBarContainer); } healthBarContainer = new Container(); var barW = 900, barH = 60; // Use visual assets for health bar healthBarBg = LK.getAsset('healthBarBg', { anchorX: 0.5, anchorY: 0.5, width: barW, height: barH }); healthBarFg = LK.getAsset('healthBarFg', { anchorX: 0.5, anchorY: 0.5, width: barW, height: barH }); healthBarContainer.addChild(healthBarBg); healthBarContainer.addChild(healthBarFg); // Place at bottom center, above pads healthBarContainer.x = GAME_W / 2; healthBarContainer.y = GAME_H - 80; game.addChild(healthBarContainer); // Preload all drum sounds to reduce latency var preloadSounds = ['kickSound', 'snareSound', 'hihatSound', 'tom1Sound', 'crash1Sound']; for (var i = 0; i < preloadSounds.length; i++) { var s = LK.getSound(preloadSounds[i]); if (s && s.play) { // Play at zero volume to warm up, then stop immediately s.volume = 0; s.play(); if (s.stop) { s.stop(); } s.volume = 1; } } // Preload music to reduce latency var preloadMusic = LK.getMusic ? LK.getMusic('MasterofUpit') : null; if (preloadMusic && preloadMusic.play) { preloadMusic.volume = 0; preloadMusic.play(); if (preloadMusic.stop) { preloadMusic.stop(); } preloadMusic.volume = 1; } // Stop any currently playing music to ensure clean start LK.stopMusic(); // Play selected level's music with no fade, no loop, and start at full volume for best sync LK.playMusic(currentMusic, { loop: false, fade: { start: 1, end: 1, duration: 0 } }); } // --- Game Over Handling (missed notes or end of song) --- // Handled by LK.showYouWin() or LK.showGameOver() as needed // --- Responsive UI (center score) --- scoreTxt.x = LK.gui.top.width / 2; comboTxt.x = LK.gui.top.width / 2; // --- Tips Section --- var tipsContainer = new Container(); tipsContainer.x = 0; tipsContainer.y = 0; // Will be positioned relative to intro screen introContainer.addChild(tipsContainer); // Tips text array var tips = ["You can creatively jam as you wish on the home screen.", "Keep a consistent beat to increase the combo!", "I wrote the notes by playing them myself ,they are not all perfect :P", "Still in development.", "I love Upit!", "Recommended to play on mobile device.", "S.a A.s", "I have no idea about software or coding", "Cat GBT is my best friend"]; // Shuffle tips array randomly function shuffleArray(array) { for (var i = array.length - 1; i > 0; i--) { var j = Math.floor(Math.random() * (i + 1)); var temp = array[i]; array[i] = array[j]; array[j] = temp; } return array; } // Create randomized tips array var randomizedTips = shuffleArray(tips.slice()); // Use slice() to create a copy var tipText = new Text2(randomizedTips[0], { size: 45, fill: "#fff" }); tipText.anchor.set(0.5, 0.5); tipText.x = 0; // Center relative to tipsContainer which is already centered tipText.y = playBtn.y + 120; // Position below play button tipsContainer.addChild(tipText); // Current tip index and animation state var currentTipIndex = 0; var tipAnimationTimer = null; var tipDisplayTimer = null; // Function to show next tip with sliding animation function showNextTip() { // Find next tip that's different from current one var nextTipIndex; var attempts = 0; do { nextTipIndex = (currentTipIndex + 1) % randomizedTips.length; // If we've gone through all tips, reshuffle and start over if (nextTipIndex === 0 && attempts === 0) { randomizedTips = shuffleArray(tips.slice()); // Make sure first tip after reshuffle is different from last shown if (randomizedTips[0] === tipText.text) { // Swap first tip with a random other tip var swapIndex = Math.floor(Math.random() * (randomizedTips.length - 1)) + 1; var temp = randomizedTips[0]; randomizedTips[0] = randomizedTips[swapIndex]; randomizedTips[swapIndex] = temp; } } attempts++; currentTipIndex = nextTipIndex; } while (randomizedTips[nextTipIndex] === tipText.text && attempts < randomizedTips.length); // Slide out current tip to the left tween(tipText, { x: -LK.gui.center.width }, { duration: 800, easing: tween.easeInOut, onFinish: function onFinish() { // Change text and position off-screen right tipText.setText(randomizedTips[nextTipIndex]); tipText.x = LK.gui.center.width; // Slide in new tip from the right tween(tipText, { x: 0 }, { duration: 800, easing: tween.easeInOut }); } }); } // Start the cycling animation only when intro screen is visible function startTipCycling() { if (tipDisplayTimer) { LK.clearInterval(tipDisplayTimer); } tipDisplayTimer = LK.setInterval(function () { if (introContainer.visible && !levelSelectContainer.visible) { showNextTip(); } }, 3000); // Change tip every 3 seconds } // Hide tips container when not on intro screen function updateTipsVisibility() { tipsContainer.visible = introContainer.visible && !levelSelectContainer.visible; } // Start tip cycling startTipCycling(); // --- High Score Display --- var highScore = storage.highScore || 0; var highCombo = storage.highCombo || 0; var highScoreTxt = new Text2("High Score: " + highScore, { size: 50, fill: 0xFFD700 }); highScoreTxt.anchor.set(0.5, 0.5); highScoreTxt.x = 500; highScoreTxt.y = playBtn.y - 120 - 100; introColumn.addChild(highScoreTxt); var highComboTxt = new Text2("Best Combo: " + highCombo, { size: 50, fill: 0xFFD700 }); highComboTxt.anchor.set(0.5, 0.5); highComboTxt.x = 500; highComboTxt.y = highScoreTxt.y + 70; introColumn.addChild(highComboTxt); // --- TEST MODE: Show timeline and tick counter for sync debugging --- var TEST_MODE = true; // Set to true to enable timeline and tick counter var timelineBar = null; var tickCounterTxt = null; if (TEST_MODE) { // Timeline bar (shows song progress) timelineBar = new Container(); var barBg = LK.getAsset('crash1Pad', { anchorX: 0, anchorY: 0, width: LK.gui.top.width - 200, height: 24 }); barBg.alpha = 0.18; timelineBar.addChild(barBg); var barFg = LK.getAsset('hihatPad', { anchorX: 0, anchorY: 0, width: 0, height: 24 }); barFg.alpha = 0.7; timelineBar.addChild(barFg); timelineBar.x = 100; timelineBar.y = LK.gui.top.height - 60; LK.gui.top.addChild(timelineBar); // Tick counter tickCounterTxt = new Text2('Tick: 0', { size: 48, fill: "#fff" }); tickCounterTxt.anchor.set(0, 0.5); tickCounterTxt.x = 100; tickCounterTxt.y = LK.gui.top.height - 100; LK.gui.top.addChild(tickCounterTxt); // Update timeline and tick counter every frame var lastTimelineUpdateTick = -1; var songTotalTicks = songNotes.length > 0 ? songNotes[songNotes.length - 1].tick : 1; game.update = function (origUpdate) { return function () { if (origUpdate) { origUpdate.apply(this, arguments); } if (isPlaying && TEST_MODE) { // Update songTotalTicks in case level changed songTotalTicks = songNotes.length > 0 ? songNotes[songNotes.length - 1].tick : 1; var relTick = LK.ticks - songStartTick; // Timeline bar var progress = Math.min(1, (relTick + NOTE_OFFSET_TICKS) / songTotalTicks); barFg.width = (LK.gui.top.width - 200) * progress; // Tick counter tickCounterTxt.setText('Tick: ' + relTick); } // Update tips visibility updateTipsVisibility(); }; }(game.update); }
===================================================================
--- original.js
+++ change.js
@@ -4598,1401 +4598,1401 @@
}, {
name: "Level 3",
music: "ABCDBackinDark",
notes: [{
- tick: 0,
+ tick: 30,
type: 'kick'
}, {
- tick: 0,
+ tick: 30,
type: 'crash1'
}, {
- tick: 18,
+ tick: 48,
type: 'hihat'
}, {
- tick: 37,
+ tick: 67,
type: 'hihat'
}, {
- tick: 38,
+ tick: 68,
type: 'snare'
}, {
- tick: 55,
+ tick: 85,
type: 'hihat'
}, {
- tick: 73,
+ tick: 103,
type: 'hihat'
}, {
- tick: 74,
+ tick: 104,
type: 'kick'
}, {
- tick: 91,
+ tick: 121,
type: 'hihat'
}, {
- tick: 109,
+ tick: 139,
type: 'snare'
}, {
- tick: 109,
+ tick: 139,
type: 'hihat'
}, {
- tick: 128,
+ tick: 158,
type: 'hihat'
}, {
- tick: 145,
+ tick: 175,
type: 'kick'
}, {
- tick: 145,
+ tick: 175,
type: 'hihat'
}, {
- tick: 162,
+ tick: 192,
type: 'hihat'
}, {
- tick: 180,
+ tick: 210,
type: 'hihat'
}, {
- tick: 180,
+ tick: 210,
type: 'snare'
}, {
- tick: 197,
+ tick: 227,
type: 'hihat'
}, {
- tick: 216,
+ tick: 246,
type: 'hihat'
}, {
- tick: 217,
+ tick: 247,
type: 'kick'
}, {
- tick: 236,
+ tick: 266,
type: 'hihat'
}, {
- tick: 252,
+ tick: 282,
type: 'snare'
}, {
- tick: 253,
+ tick: 283,
type: 'hihat'
}, {
- tick: 271,
+ tick: 301,
type: 'hihat'
}, {
- tick: 289,
+ tick: 319,
type: 'hihat'
}, {
- tick: 289,
+ tick: 319,
type: 'kick'
}, {
- tick: 306,
+ tick: 336,
type: 'hihat'
}, {
- tick: 323,
+ tick: 353,
type: 'hihat'
}, {
- tick: 324,
+ tick: 354,
type: 'snare'
}, {
- tick: 342,
+ tick: 372,
type: 'hihat'
}, {
- tick: 360,
+ tick: 390,
type: 'hihat'
}, {
- tick: 360,
+ tick: 390,
type: 'kick'
}, {
- tick: 379,
+ tick: 409,
type: 'hihat'
}, {
- tick: 397,
+ tick: 427,
type: 'hihat'
}, {
- tick: 398,
+ tick: 428,
type: 'snare'
}, {
- tick: 415,
+ tick: 445,
type: 'hihat'
}, {
- tick: 433,
+ tick: 463,
type: 'hihat'
}, {
- tick: 433,
+ tick: 463,
type: 'kick'
}, {
- tick: 450,
+ tick: 480,
type: 'hihat'
}, {
- tick: 468,
+ tick: 498,
type: 'snare'
}, {
- tick: 475,
+ tick: 505,
type: 'tom1'
}, {
- tick: 497,
+ tick: 527,
type: 'snare'
}, {
- tick: 503,
+ tick: 533,
type: 'tom1'
}, {
- tick: 527,
+ tick: 557,
type: 'snare'
}, {
- tick: 532,
+ tick: 562,
type: 'tom1'
}, {
- tick: 554,
+ tick: 584,
type: 'snare'
}, {
- tick: 558,
+ tick: 588,
type: 'tom1'
}, {
- tick: 582,
+ tick: 612,
type: 'crash1'
}, {
- tick: 582,
+ tick: 612,
type: 'kick'
}, {
- tick: 603,
+ tick: 633,
type: 'hihat'
}, {
- tick: 618,
+ tick: 648,
type: 'snare'
}, {
- tick: 618,
+ tick: 648,
type: 'hihat'
}, {
- tick: 636,
+ tick: 666,
type: 'hihat'
}, {
- tick: 654,
+ tick: 684,
type: 'hihat'
}, {
- tick: 654,
+ tick: 684,
type: 'kick'
}, {
- tick: 671,
+ tick: 701,
type: 'hihat'
}, {
- tick: 689,
+ tick: 719,
type: 'snare'
}, {
- tick: 691,
+ tick: 721,
type: 'hihat'
}, {
- tick: 710,
+ tick: 740,
type: 'hihat'
}, {
- tick: 727,
+ tick: 757,
type: 'hihat'
}, {
- tick: 728,
+ tick: 758,
type: 'kick'
}, {
- tick: 743,
+ tick: 773,
type: 'hihat'
}, {
- tick: 763,
+ tick: 793,
type: 'hihat'
}, {
- tick: 763,
+ tick: 793,
type: 'snare'
}, {
- tick: 781,
+ tick: 811,
type: 'hihat'
}, {
- tick: 798,
+ tick: 828,
type: 'hihat'
}, {
- tick: 798,
+ tick: 828,
type: 'kick'
}, {
- tick: 814,
+ tick: 844,
type: 'hihat'
}, {
- tick: 832,
+ tick: 862,
type: 'snare'
}, {
- tick: 832,
+ tick: 862,
type: 'hihat'
}, {
- tick: 850,
+ tick: 880,
type: 'hihat'
}, {
- tick: 868,
+ tick: 898,
type: 'hihat'
}, {
- tick: 870,
+ tick: 900,
type: 'kick'
}, {
- tick: 887,
+ tick: 917,
type: 'hihat'
}, {
- tick: 904,
+ tick: 934,
type: 'snare'
}, {
- tick: 905,
+ tick: 935,
type: 'hihat'
}, {
- tick: 925,
+ tick: 955,
type: 'hihat'
}, {
- tick: 942,
+ tick: 972,
type: 'hihat'
}, {
- tick: 942,
+ tick: 972,
type: 'kick'
}, {
- tick: 961,
+ tick: 991,
type: 'hihat'
}, {
- tick: 978,
+ tick: 1008,
type: 'snare'
}, {
- tick: 978,
+ tick: 1008,
type: 'hihat'
}, {
- tick: 997,
+ tick: 1027,
type: 'hihat'
}, {
- tick: 1015,
+ tick: 1045,
type: 'hihat'
}, {
- tick: 1016,
+ tick: 1046,
type: 'kick'
}, {
- tick: 1032,
+ tick: 1062,
type: 'hihat'
}, {
- tick: 1051,
+ tick: 1081,
type: 'snare'
}, {
- tick: 1058,
+ tick: 1088,
type: 'tom1'
}, {
- tick: 1080,
+ tick: 1110,
type: 'snare'
}, {
- tick: 1086,
+ tick: 1116,
type: 'tom1'
}, {
- tick: 1108,
+ tick: 1138,
type: 'snare'
}, {
- tick: 1113,
+ tick: 1143,
type: 'tom1'
}, {
- tick: 1135,
+ tick: 1165,
type: 'snare'
}, {
- tick: 1141,
+ tick: 1171,
type: 'tom1'
}, {
- tick: 1163,
+ tick: 1193,
type: 'kick'
}, {
- tick: 1163,
+ tick: 1193,
type: 'crash1'
}, {
- tick: 1181,
+ tick: 1211,
type: 'hihat'
}, {
- tick: 1200,
+ tick: 1230,
type: 'hihat'
}, {
- tick: 1200,
+ tick: 1230,
type: 'snare'
}, {
- tick: 1219,
+ tick: 1249,
type: 'hihat'
}, {
- tick: 1235,
+ tick: 1265,
type: 'hihat'
}, {
- tick: 1235,
+ tick: 1265,
type: 'kick'
}, {
- tick: 1253,
+ tick: 1283,
type: 'hihat'
}, {
- tick: 1270,
+ tick: 1300,
type: 'snare'
}, {
- tick: 1270,
+ tick: 1300,
type: 'hihat'
}, {
- tick: 1290,
+ tick: 1320,
type: 'hihat'
}, {
- tick: 1308,
+ tick: 1338,
type: 'hihat'
}, {
- tick: 1308,
+ tick: 1338,
type: 'kick'
}, {
- tick: 1325,
+ tick: 1355,
type: 'hihat'
}, {
- tick: 1344,
+ tick: 1374,
type: 'hihat'
}, {
- tick: 1345,
+ tick: 1375,
type: 'snare'
}, {
- tick: 1363,
+ tick: 1393,
type: 'hihat'
}, {
- tick: 1382,
+ tick: 1412,
type: 'hihat'
}, {
- tick: 1382,
+ tick: 1412,
type: 'kick'
}, {
- tick: 1398,
+ tick: 1428,
type: 'hihat'
}, {
- tick: 1417,
+ tick: 1447,
type: 'hihat'
}, {
- tick: 1418,
+ tick: 1448,
type: 'snare'
}, {
- tick: 1434,
+ tick: 1464,
type: 'hihat'
}, {
- tick: 1452,
+ tick: 1482,
type: 'hihat'
}, {
- tick: 1453,
+ tick: 1483,
type: 'kick'
}, {
- tick: 1471,
+ tick: 1501,
type: 'hihat'
}, {
- tick: 1489,
+ tick: 1519,
type: 'hihat'
}, {
- tick: 1489,
+ tick: 1519,
type: 'snare'
}, {
- tick: 1508,
+ tick: 1538,
type: 'hihat'
}, {
- tick: 1526,
+ tick: 1556,
type: 'hihat'
}, {
- tick: 1526,
+ tick: 1556,
type: 'kick'
}, {
- tick: 1544,
+ tick: 1574,
type: 'hihat'
}, {
- tick: 1562,
+ tick: 1592,
type: 'hihat'
}, {
- tick: 1563,
+ tick: 1593,
type: 'snare'
}, {
- tick: 1579,
+ tick: 1609,
type: 'hihat'
}, {
- tick: 1597,
+ tick: 1627,
type: 'hihat'
}, {
- tick: 1599,
+ tick: 1629,
type: 'kick'
}, {
- tick: 1616,
+ tick: 1646,
type: 'hihat'
}, {
- tick: 1637,
+ tick: 1667,
type: 'snare'
}, {
- tick: 1642,
+ tick: 1672,
type: 'tom1'
}, {
- tick: 1664,
+ tick: 1694,
type: 'snare'
}, {
- tick: 1669,
+ tick: 1699,
type: 'tom1'
}, {
- tick: 1689,
+ tick: 1719,
type: 'snare'
}, {
- tick: 1695,
+ tick: 1725,
type: 'tom1'
}, {
- tick: 1715,
+ tick: 1745,
type: 'snare'
}, {
- tick: 1721,
+ tick: 1751,
type: 'tom1'
}, {
- tick: 1743,
+ tick: 1773,
type: 'crash1'
}, {
- tick: 1744,
+ tick: 1774,
type: 'kick'
}, {
- tick: 1761,
+ tick: 1791,
type: 'hihat'
}, {
- tick: 1778,
+ tick: 1808,
type: 'snare'
}, {
- tick: 1780,
+ tick: 1810,
type: 'hihat'
}, {
- tick: 1798,
+ tick: 1828,
type: 'hihat'
}, {
- tick: 1816,
+ tick: 1846,
type: 'hihat'
}, {
- tick: 1817,
+ tick: 1847,
type: 'kick'
}, {
- tick: 1834,
+ tick: 1864,
type: 'hihat'
}, {
- tick: 1850,
+ tick: 1880,
type: 'snare'
}, {
- tick: 1851,
+ tick: 1881,
type: 'hihat'
}, {
- tick: 1869,
+ tick: 1899,
type: 'hihat'
}, {
- tick: 1886,
+ tick: 1916,
type: 'hihat'
}, {
- tick: 1888,
+ tick: 1918,
type: 'kick'
}, {
- tick: 1905,
+ tick: 1935,
type: 'hihat'
}, {
- tick: 1920,
+ tick: 1950,
type: 'hihat'
}, {
- tick: 1920,
+ tick: 1950,
type: 'snare'
}, {
- tick: 1941,
+ tick: 1971,
type: 'hihat'
}, {
- tick: 1961,
+ tick: 1991,
type: 'hihat'
}, {
- tick: 1961,
+ tick: 1991,
type: 'kick'
}, {
- tick: 1978,
+ tick: 2008,
type: 'hihat'
}, {
- tick: 1997,
+ tick: 2027,
type: 'snare'
}, {
- tick: 1997,
+ tick: 2027,
type: 'hihat'
}, {
- tick: 2015,
+ tick: 2045,
type: 'hihat'
}, {
- tick: 2034,
+ tick: 2064,
type: 'kick'
}, {
- tick: 2035,
+ tick: 2065,
type: 'hihat'
}, {
- tick: 2051,
+ tick: 2081,
type: 'hihat'
}, {
- tick: 2069,
+ tick: 2099,
type: 'snare'
}, {
- tick: 2069,
+ tick: 2099,
type: 'hihat'
}, {
- tick: 2087,
+ tick: 2117,
type: 'hihat'
}, {
- tick: 2104,
+ tick: 2134,
type: 'hihat'
}, {
- tick: 2104,
+ tick: 2134,
type: 'kick'
}, {
- tick: 2122,
+ tick: 2152,
type: 'hihat'
}, {
- tick: 2141,
+ tick: 2171,
type: 'hihat'
}, {
- tick: 2142,
+ tick: 2172,
type: 'snare'
}, {
- tick: 2159,
+ tick: 2189,
type: 'hihat'
}, {
- tick: 2177,
+ tick: 2207,
type: 'hihat'
}, {
- tick: 2177,
+ tick: 2207,
type: 'kick'
}, {
- tick: 2195,
+ tick: 2225,
type: 'hihat'
}, {
- tick: 2214,
+ tick: 2244,
type: 'snare'
}, {
- tick: 2221,
+ tick: 2251,
type: 'tom1'
}, {
- tick: 2241,
+ tick: 2271,
type: 'snare'
}, {
- tick: 2248,
+ tick: 2278,
type: 'tom1'
}, {
- tick: 2270,
+ tick: 2300,
type: 'snare'
}, {
- tick: 2276,
+ tick: 2306,
type: 'tom1'
}, {
- tick: 2296,
+ tick: 2326,
type: 'snare'
}, {
- tick: 2302,
+ tick: 2332,
type: 'tom1'
}, {
- tick: 2323,
+ tick: 2353,
type: 'crash1'
}, {
- tick: 2324,
+ tick: 2354,
type: 'kick'
}, {
- tick: 2342,
+ tick: 2372,
type: 'hihat'
}, {
- tick: 2360,
+ tick: 2390,
type: 'snare'
}, {
- tick: 2361,
+ tick: 2391,
type: 'hihat'
}, {
- tick: 2378,
+ tick: 2408,
type: 'hihat'
}, {
- tick: 2396,
+ tick: 2426,
type: 'kick'
}, {
- tick: 2397,
+ tick: 2427,
type: 'hihat'
}, {
- tick: 2415,
+ tick: 2445,
type: 'hihat'
}, {
- tick: 2432,
+ tick: 2462,
type: 'snare'
}, {
- tick: 2432,
+ tick: 2462,
type: 'hihat'
}, {
- tick: 2452,
+ tick: 2482,
type: 'hihat'
}, {
- tick: 2471,
+ tick: 2501,
type: 'crash1'
}, {
- tick: 2471,
+ tick: 2501,
type: 'kick'
}, {
- tick: 2493,
+ tick: 2523,
type: 'hihat'
}, {
- tick: 2507,
+ tick: 2537,
type: 'snare'
}, {
- tick: 2508,
+ tick: 2538,
type: 'hihat'
}, {
- tick: 2524,
+ tick: 2554,
type: 'hihat'
}, {
- tick: 2542,
+ tick: 2572,
type: 'hihat'
}, {
- tick: 2542,
+ tick: 2572,
type: 'kick'
}, {
- tick: 2558,
+ tick: 2588,
type: 'hihat'
}, {
- tick: 2576,
+ tick: 2606,
type: 'snare'
}, {
- tick: 2577,
+ tick: 2607,
type: 'hihat'
}, {
- tick: 2596,
+ tick: 2626,
type: 'hihat'
}, {
- tick: 2615,
+ tick: 2645,
type: 'crash1'
}, {
- tick: 2615,
+ tick: 2645,
type: 'kick'
}, {
- tick: 2636,
+ tick: 2666,
type: 'hihat'
}, {
- tick: 2651,
+ tick: 2681,
type: 'snare'
}, {
- tick: 2651,
+ tick: 2681,
type: 'hihat'
}, {
- tick: 2668,
+ tick: 2698,
type: 'hihat'
}, {
- tick: 2686,
+ tick: 2716,
type: 'kick'
}, {
- tick: 2686,
+ tick: 2716,
type: 'hihat'
}, {
- tick: 2705,
+ tick: 2735,
type: 'hihat'
}, {
- tick: 2722,
+ tick: 2752,
type: 'snare'
}, {
- tick: 2722,
+ tick: 2752,
type: 'hihat'
}, {
- tick: 2738,
+ tick: 2768,
type: 'hihat'
}, {
- tick: 2758,
+ tick: 2788,
type: 'kick'
}, {
- tick: 2759,
+ tick: 2789,
type: 'crash1'
}, {
- tick: 2776,
+ tick: 2806,
type: 'hihat'
}, {
- tick: 2795,
+ tick: 2825,
type: 'hihat'
}, {
- tick: 2795,
+ tick: 2825,
type: 'snare'
}, {
- tick: 2814,
+ tick: 2844,
type: 'hihat'
}, {
- tick: 2831,
+ tick: 2861,
type: 'kick'
}, {
- tick: 2831,
+ tick: 2861,
type: 'hihat'
}, {
- tick: 2851,
+ tick: 2881,
type: 'hihat'
}, {
- tick: 2868,
+ tick: 2898,
type: 'hihat'
}, {
- tick: 2868,
+ tick: 2898,
type: 'snare'
}, {
- tick: 2884,
+ tick: 2914,
type: 'hihat'
}, {
- tick: 2902,
+ tick: 2932,
type: 'crash1'
}, {
- tick: 2903,
+ tick: 2933,
type: 'kick'
}, {
- tick: 2922,
+ tick: 2952,
type: 'hihat'
}, {
- tick: 2941,
+ tick: 2971,
type: 'hihat'
}, {
- tick: 2941,
+ tick: 2971,
type: 'snare'
}, {
- tick: 2958,
+ tick: 2988,
type: 'hihat'
}, {
- tick: 2977,
+ tick: 3007,
type: 'kick'
}, {
- tick: 2977,
+ tick: 3007,
type: 'hihat'
}, {
- tick: 2994,
+ tick: 3024,
type: 'hihat'
}, {
- tick: 3012,
+ tick: 3042,
type: 'hihat'
}, {
- tick: 3012,
+ tick: 3042,
type: 'snare'
}, {
- tick: 3031,
+ tick: 3061,
type: 'hihat'
}, {
- tick: 3048,
+ tick: 3078,
type: 'crash1'
}, {
- tick: 3049,
+ tick: 3079,
type: 'kick'
}, {
- tick: 3067,
+ tick: 3097,
type: 'hihat'
}, {
- tick: 3084,
+ tick: 3114,
type: 'snare'
}, {
- tick: 3085,
+ tick: 3115,
type: 'hihat'
}, {
- tick: 3103,
+ tick: 3133,
type: 'hihat'
}, {
- tick: 3121,
+ tick: 3151,
type: 'kick'
}, {
- tick: 3121,
+ tick: 3151,
type: 'hihat'
}, {
- tick: 3138,
+ tick: 3168,
type: 'hihat'
}, {
- tick: 3157,
+ tick: 3187,
type: 'snare'
}, {
- tick: 3158,
+ tick: 3188,
type: 'hihat'
}, {
- tick: 3176,
+ tick: 3206,
type: 'hihat'
}, {
- tick: 3192,
+ tick: 3222,
type: 'crash1'
}, {
- tick: 3193,
+ tick: 3223,
type: 'kick'
}, {
- tick: 3211,
+ tick: 3241,
type: 'hihat'
}, {
- tick: 3229,
+ tick: 3259,
type: 'snare'
}, {
- tick: 3229,
+ tick: 3259,
type: 'hihat'
}, {
- tick: 3246,
+ tick: 3276,
type: 'hihat'
}, {
- tick: 3265,
+ tick: 3295,
type: 'kick'
}, {
- tick: 3265,
+ tick: 3295,
type: 'hihat'
}, {
- tick: 3283,
+ tick: 3313,
type: 'hihat'
}, {
- tick: 3301,
+ tick: 3331,
type: 'snare'
}, {
- tick: 3302,
+ tick: 3332,
type: 'hihat'
}, {
- tick: 3320,
+ tick: 3350,
type: 'hihat'
}, {
- tick: 3337,
+ tick: 3367,
type: 'kick'
}, {
- tick: 3337,
+ tick: 3367,
type: 'crash1'
}, {
- tick: 3365,
+ tick: 3395,
type: 'crash1'
}, {
- tick: 3365,
+ tick: 3395,
type: 'kick'
}, {
- tick: 3392,
+ tick: 3422,
type: 'crash1'
}, {
- tick: 3392,
+ tick: 3422,
type: 'kick'
}, {
- tick: 3441,
+ tick: 3471,
type: 'snare'
}, {
- tick: 3484,
+ tick: 3514,
type: 'crash1'
}, {
- tick: 3484,
+ tick: 3514,
type: 'kick'
}, {
- tick: 3503,
+ tick: 3533,
type: 'hihat'
}, {
- tick: 3521,
+ tick: 3551,
type: 'hihat'
}, {
- tick: 3521,
+ tick: 3551,
type: 'snare'
}, {
- tick: 3540,
+ tick: 3570,
type: 'hihat'
}, {
- tick: 3558,
+ tick: 3588,
type: 'hihat'
}, {
- tick: 3559,
+ tick: 3589,
type: 'kick'
}, {
- tick: 3577,
+ tick: 3607,
type: 'hihat'
}, {
- tick: 3594,
+ tick: 3624,
type: 'snare'
}, {
- tick: 3594,
+ tick: 3624,
type: 'hihat'
}, {
- tick: 3612,
+ tick: 3642,
type: 'hihat'
}, {
- tick: 3631,
+ tick: 3661,
type: 'hihat'
}, {
- tick: 3631,
+ tick: 3661,
type: 'kick'
}, {
- tick: 3651,
+ tick: 3681,
type: 'hihat'
}, {
- tick: 3667,
+ tick: 3697,
type: 'snare'
}, {
- tick: 3667,
+ tick: 3697,
type: 'hihat'
}, {
- tick: 3685,
+ tick: 3715,
type: 'hihat'
}, {
- tick: 3702,
+ tick: 3732,
type: 'hihat'
}, {
- tick: 3703,
+ tick: 3733,
type: 'kick'
}, {
- tick: 3721,
+ tick: 3751,
type: 'hihat'
}, {
- tick: 3740,
+ tick: 3770,
type: 'snare'
}, {
- tick: 3740,
+ tick: 3770,
type: 'hihat'
}, {
- tick: 3756,
+ tick: 3786,
type: 'hihat'
}, {
- tick: 3777,
+ tick: 3807,
type: 'hihat'
}, {
- tick: 3778,
+ tick: 3808,
type: 'kick'
}, {
- tick: 3793,
+ tick: 3823,
type: 'hihat'
}, {
- tick: 3811,
+ tick: 3841,
type: 'hihat'
}, {
- tick: 3812,
+ tick: 3842,
type: 'snare'
}, {
- tick: 3829,
+ tick: 3859,
type: 'hihat'
}, {
- tick: 3847,
+ tick: 3877,
type: 'hihat'
}, {
- tick: 3847,
+ tick: 3877,
type: 'kick'
}, {
- tick: 3865,
+ tick: 3895,
type: 'hihat'
}, {
- tick: 3883,
+ tick: 3913,
type: 'hihat'
}, {
- tick: 3883,
+ tick: 3913,
type: 'snare'
}, {
- tick: 3899,
+ tick: 3929,
type: 'hihat'
}, {
- tick: 3917,
+ tick: 3947,
type: 'hihat'
}, {
- tick: 3917,
+ tick: 3947,
type: 'kick'
}, {
- tick: 3936,
+ tick: 3966,
type: 'hihat'
}, {
- tick: 3958,
+ tick: 3988,
type: 'snare'
}, {
- tick: 3986,
+ tick: 4016,
type: 'snare'
}, {
- tick: 3990,
+ tick: 4020,
type: 'tom1'
}, {
- tick: 4012,
+ tick: 4042,
type: 'snare'
}, {
- tick: 4018,
+ tick: 4048,
type: 'tom1'
}, {
- tick: 4040,
+ tick: 4070,
type: 'snare'
}, {
- tick: 4046,
+ tick: 4076,
type: 'tom1'
}, {
- tick: 4065,
+ tick: 4095,
type: 'kick'
}, {
- tick: 4066,
+ tick: 4096,
type: 'crash1'
}, {
- tick: 4085,
+ tick: 4115,
type: 'hihat'
}, {
- tick: 4103,
+ tick: 4133,
type: 'hihat'
}, {
- tick: 4103,
+ tick: 4133,
type: 'snare'
}, {
- tick: 4121,
+ tick: 4151,
type: 'hihat'
}, {
- tick: 4138,
+ tick: 4168,
type: 'kick'
}, {
- tick: 4140,
+ tick: 4170,
type: 'hihat'
}, {
- tick: 4157,
+ tick: 4187,
type: 'hihat'
}, {
- tick: 4175,
+ tick: 4205,
type: 'snare'
}, {
- tick: 4175,
+ tick: 4205,
type: 'hihat'
}, {
- tick: 4193,
+ tick: 4223,
type: 'hihat'
}, {
- tick: 4210,
+ tick: 4240,
type: 'kick'
}, {
- tick: 4211,
+ tick: 4241,
type: 'hihat'
}, {
- tick: 4229,
+ tick: 4259,
type: 'hihat'
}, {
- tick: 4247,
+ tick: 4277,
type: 'snare'
}, {
- tick: 4248,
+ tick: 4278,
type: 'hihat'
}, {
- tick: 4266,
+ tick: 4296,
type: 'hihat'
}, {
- tick: 4284,
+ tick: 4314,
type: 'hihat'
}, {
- tick: 4285,
+ tick: 4315,
type: 'kick'
}, {
- tick: 4303,
+ tick: 4333,
type: 'hihat'
}, {
- tick: 4320,
+ tick: 4350,
type: 'hihat'
}, {
- tick: 4321,
+ tick: 4351,
type: 'snare'
}, {
- tick: 4340,
+ tick: 4370,
type: 'hihat'
}, {
- tick: 4357,
+ tick: 4387,
type: 'kick'
}, {
- tick: 4358,
+ tick: 4388,
type: 'hihat'
}, {
- tick: 4376,
+ tick: 4406,
type: 'hihat'
}, {
- tick: 4393,
+ tick: 4423,
type: 'hihat'
}, {
- tick: 4394,
+ tick: 4424,
type: 'snare'
}, {
- tick: 4411,
+ tick: 4441,
type: 'hihat'
}, {
- tick: 4430,
+ tick: 4460,
type: 'hihat'
}, {
- tick: 4431,
+ tick: 4461,
type: 'kick'
}, {
- tick: 4448,
+ tick: 4478,
type: 'hihat'
}, {
- tick: 4465,
+ tick: 4495,
type: 'hihat'
}, {
- tick: 4465,
+ tick: 4495,
type: 'snare'
}, {
- tick: 4484,
+ tick: 4514,
type: 'hihat'
}, {
- tick: 4501,
+ tick: 4531,
type: 'hihat'
}, {
- tick: 4502,
+ tick: 4532,
type: 'kick'
}, {
- tick: 4518,
+ tick: 4548,
type: 'hihat'
}, {
- tick: 4532,
+ tick: 4562,
type: 'snare'
}, {
- tick: 4544,
+ tick: 4574,
type: 'tom1'
}, {
- tick: 4568,
+ tick: 4598,
type: 'snare'
}, {
- tick: 4574,
+ tick: 4604,
type: 'tom1'
}, {
- tick: 4598,
+ tick: 4628,
type: 'snare'
}, {
- tick: 4602,
+ tick: 4632,
type: 'tom1'
}, {
- tick: 4624,
+ tick: 4654,
type: 'snare'
}, {
- tick: 4629,
+ tick: 4659,
type: 'tom1'
}, {
- tick: 4648,
+ tick: 4678,
type: 'crash1'
}, {
- tick: 4648,
+ tick: 4678,
type: 'kick'
}, {
- tick: 4665,
+ tick: 4695,
type: 'hihat'
}, {
- tick: 4683,
+ tick: 4713,
type: 'snare'
}, {
- tick: 4684,
+ tick: 4714,
type: 'hihat'
}, {
- tick: 4702,
+ tick: 4732,
type: 'hihat'
}, {
- tick: 4720,
+ tick: 4750,
type: 'kick'
}, {
- tick: 4721,
+ tick: 4751,
type: 'hihat'
}, {
- tick: 4739,
+ tick: 4769,
type: 'hihat'
}, {
- tick: 4756,
+ tick: 4786,
type: 'snare'
}, {
- tick: 4756,
+ tick: 4786,
type: 'hihat'
}, {
- tick: 4775,
+ tick: 4805,
type: 'hihat'
}, {
- tick: 4793,
+ tick: 4823,
type: 'crash1'
}, {
- tick: 4793,
+ tick: 4823,
type: 'kick'
}, {
- tick: 4810,
+ tick: 4840,
type: 'hihat'
}, {
- tick: 4827,
+ tick: 4857,
type: 'snare'
}, {
- tick: 4829,
+ tick: 4859,
type: 'hihat'
}, {
- tick: 4847,
+ tick: 4877,
type: 'hihat'
}, {
- tick: 4864,
+ tick: 4894,
type: 'kick'
}, {
- tick: 4865,
+ tick: 4895,
type: 'hihat'
}, {
- tick: 4883,
+ tick: 4913,
type: 'hihat'
}, {
- tick: 4900,
+ tick: 4930,
type: 'snare'
}, {
- tick: 4900,
+ tick: 4930,
type: 'hihat'
}, {
- tick: 4918,
+ tick: 4948,
type: 'hihat'
}, {
- tick: 4936,
+ tick: 4966,
type: 'crash1'
}, {
- tick: 4936,
+ tick: 4966,
type: 'kick'
}, {
- tick: 4956,
+ tick: 4986,
type: 'hihat'
}, {
- tick: 4974,
+ tick: 5004,
type: 'snare'
}, {
- tick: 4974,
+ tick: 5004,
type: 'hihat'
}, {
- tick: 4991,
+ tick: 5021,
type: 'hihat'
}, {
- tick: 5009,
+ tick: 5039,
type: 'hihat'
}, {
- tick: 5010,
+ tick: 5040,
type: 'kick'
}, {
- tick: 5026,
+ tick: 5056,
type: 'hihat'
}, {
- tick: 5044,
+ tick: 5074,
type: 'hihat'
}, {
- tick: 5045,
+ tick: 5075,
type: 'snare'
}, {
- tick: 5064,
+ tick: 5094,
type: 'hihat'
}, {
- tick: 5082,
+ tick: 5112,
type: 'kick'
}, {
- tick: 5082,
+ tick: 5112,
type: 'crash1'
}, {
- tick: 5104,
+ tick: 5134,
type: 'hihat'
}, {
- tick: 5119,
+ tick: 5149,
type: 'snare'
}, {
- tick: 5120,
+ tick: 5150,
type: 'hihat'
}, {
- tick: 5137,
+ tick: 5167,
type: 'hihat'
}, {
- tick: 5156,
+ tick: 5186,
type: 'kick'
}, {
- tick: 5156,
+ tick: 5186,
type: 'hihat'
}, {
- tick: 5172,
+ tick: 5202,
type: 'hihat'
}, {
- tick: 5191,
+ tick: 5221,
type: 'hihat'
}, {
- tick: 5191,
+ tick: 5221,
type: 'snare'
}, {
- tick: 5209,
+ tick: 5239,
type: 'hihat'
}, {
- tick: 5227,
+ tick: 5257,
type: 'crash1'
}, {
- tick: 5227,
+ tick: 5257,
type: 'kick'
}, {
- tick: 5247,
+ tick: 5277,
type: 'hihat'
}, {
- tick: 5264,
+ tick: 5294,
type: 'snare'
}, {
- tick: 5264,
+ tick: 5294,
type: 'hihat'
}, {
- tick: 5282,
+ tick: 5312,
type: 'hihat'
}, {
- tick: 5300,
+ tick: 5330,
type: 'hihat'
}, {
- tick: 5300,
+ tick: 5330,
type: 'kick'
}, {
- tick: 5318,
+ tick: 5348,
type: 'hihat'
}, {
- tick: 5334,
+ tick: 5364,
type: 'snare'
}, {
- tick: 5335,
+ tick: 5365,
type: 'hihat'
}, {
- tick: 5355,
+ tick: 5385,
type: 'hihat'
}, {
- tick: 5373,
+ tick: 5403,
type: 'crash1'
}, {
- tick: 5373,
+ tick: 5403,
type: 'kick'
}, {
- tick: 5394,
+ tick: 5424,
type: 'hihat'
}, {
- tick: 5409,
+ tick: 5439,
type: 'snare'
}, {
- tick: 5411,
+ tick: 5441,
type: 'hihat'
}, {
- tick: 5427,
+ tick: 5457,
type: 'hihat'
}, {
- tick: 5445,
+ tick: 5475,
type: 'hihat'
}, {
- tick: 5446,
+ tick: 5476,
type: 'kick'
}, {
- tick: 5463,
+ tick: 5493,
type: 'hihat'
}, {
- tick: 5480,
+ tick: 5510,
type: 'hihat'
}, {
- tick: 5481,
+ tick: 5511,
type: 'snare'
}, {
- tick: 5500,
+ tick: 5530,
type: 'hihat'
}, {
- tick: 5516,
+ tick: 5546,
type: 'crash1'
}, {
- tick: 5518,
+ tick: 5548,
type: 'kick'
}, {
- tick: 5535,
+ tick: 5565,
type: 'hihat'
}, {
- tick: 5551,
+ tick: 5581,
type: 'snare'
}, {
- tick: 5552,
+ tick: 5582,
type: 'hihat'
}, {
- tick: 5571,
+ tick: 5601,
type: 'hihat'
}, {
- tick: 5589,
+ tick: 5619,
type: 'hihat'
}, {
- tick: 5589,
+ tick: 5619,
type: 'kick'
}, {
- tick: 5607,
+ tick: 5637,
type: 'hihat'
}, {
- tick: 5626,
+ tick: 5656,
type: 'hihat'
}, {
- tick: 5626,
+ tick: 5656,
type: 'snare'
}, {
- tick: 5642,
+ tick: 5672,
type: 'hihat'
}, {
- tick: 5662,
+ tick: 5692,
type: 'crash1'
}, {
- tick: 5663,
+ tick: 5693,
type: 'kick'
}, {
- tick: 5688,
+ tick: 5718,
type: 'crash1'
}, {
- tick: 5689,
+ tick: 5719,
type: 'kick'
}, {
- tick: 5715,
+ tick: 5745,
type: 'crash1'
}, {
- tick: 5715,
+ tick: 5745,
type: 'kick'
}, {
- tick: 5761,
+ tick: 5791,
type: 'snare'
}, {
- tick: 5809,
+ tick: 5839,
type: 'kick'
}, {
- tick: 5809,
+ tick: 5839,
type: 'crash1'
}]
}];
// Current level index and songNotes reference
birebir aynısı sadece SNARE yerine TOM yazsın ve butonunun rengi yeşil olsun. ve yazı paralel bir şekilde düz hizada olsun Transparent background. Blank background.
butonun altını gri yap ve yazıyı birazcık daha büyült
birebir aynısı sadece HI_HAT yerine CRASH yazsın ve butonunun rengi açık mor lila olsun. Transparent background. Blank background.
ortadaki ışıktan yukarı doğru hafif soluk ısık hüzmeleri çıksın
mavi versiyonunu yap
yeşil versiyonunu yap
sarı versiyonunu yap
lil rengi versiyonunu yap
make hand signs smaller but more crowded lightly blended into the background flu
transparent blank background
he is holding drumstick
make the next frame when he is hitting the drums while grin smile with one's teeth showing, his hands are down and drumstick are on the drums
add drum sticks held on both sides
no perspective all parralel lines from birdswiew
Game title text