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: "AB/CD Back in Track", music: "ABCDBackinDark", notes: [{ tick: 40, type: 'kick' }, { tick: 40, type: 'crash1' }, { tick: 58, type: 'hihat' }, { tick: 77, type: 'hihat' }, { tick: 78, type: 'snare' }, { tick: 95, type: 'hihat' }, { tick: 113, type: 'hihat' }, { tick: 114, type: 'kick' }, { tick: 131, type: 'hihat' }, { tick: 149, type: 'snare' }, { tick: 149, type: 'hihat' }, { tick: 168, type: 'hihat' }, { tick: 185, type: 'kick' }, { tick: 185, type: 'hihat' }, { tick: 202, type: 'hihat' }, { tick: 220, type: 'hihat' }, { tick: 220, type: 'snare' }, { tick: 237, type: 'hihat' }, { tick: 256, type: 'hihat' }, { tick: 257, type: 'kick' }, { tick: 276, type: 'hihat' }, { tick: 292, type: 'snare' }, { tick: 293, type: 'hihat' }, { tick: 311, type: 'hihat' }, { tick: 329, type: 'hihat' }, { tick: 329, type: 'kick' }, { tick: 346, type: 'hihat' }, { tick: 363, type: 'hihat' }, { tick: 364, type: 'snare' }, { tick: 382, type: 'hihat' }, { tick: 400, type: 'hihat' }, { tick: 400, type: 'kick' }, { tick: 419, type: 'hihat' }, { tick: 437, type: 'hihat' }, { tick: 438, type: 'snare' }, { tick: 455, type: 'hihat' }, { tick: 473, type: 'hihat' }, { tick: 473, type: 'kick' }, { tick: 490, type: 'hihat' }, { tick: 508, type: 'snare' }, { tick: 515, type: 'tom1' }, { tick: 537, type: 'snare' }, { tick: 543, type: 'tom1' }, { tick: 567, type: 'snare' }, { tick: 572, type: 'tom1' }, { tick: 594, type: 'snare' }, { tick: 598, type: 'tom1' }, { tick: 622, type: 'crash1' }, { tick: 622, type: 'kick' }, { tick: 643, type: 'hihat' }, { tick: 658, type: 'snare' }, { tick: 658, type: 'hihat' }, { tick: 676, type: 'hihat' }, { tick: 694, type: 'hihat' }, { tick: 694, type: 'kick' }, { tick: 711, type: 'hihat' }, { tick: 729, type: 'snare' }, { tick: 731, type: 'hihat' }, { tick: 750, type: 'hihat' }, { tick: 767, type: 'hihat' }, { tick: 768, type: 'kick' }, { tick: 783, type: 'hihat' }, { tick: 803, type: 'hihat' }, { tick: 803, type: 'snare' }, { tick: 821, type: 'hihat' }, { tick: 838, type: 'hihat' }, { tick: 838, type: 'kick' }, { tick: 854, type: 'hihat' }, { tick: 872, type: 'snare' }, { tick: 872, type: 'hihat' }, { tick: 890, type: 'hihat' }, { tick: 908, type: 'hihat' }, { tick: 910, type: 'kick' }, { tick: 927, type: 'hihat' }, { tick: 944, type: 'snare' }, { tick: 945, type: 'hihat' }, { tick: 965, type: 'hihat' }, { tick: 982, type: 'hihat' }, { tick: 982, type: 'kick' }, { tick: 1001, type: 'hihat' }, { tick: 1018, type: 'snare' }, { tick: 1018, type: 'hihat' }, { tick: 1037, type: 'hihat' }, { tick: 1055, type: 'hihat' }, { tick: 1056, type: 'kick' }, { tick: 1072, type: 'hihat' }, { tick: 1091, type: 'snare' }, { tick: 1098, type: 'tom1' }, { tick: 1120, type: 'snare' }, { tick: 1126, type: 'tom1' }, { tick: 1148, type: 'snare' }, { tick: 1153, type: 'tom1' }, { tick: 1175, type: 'snare' }, { tick: 1181, type: 'tom1' }, { tick: 1203, type: 'kick' }, { tick: 1203, type: 'crash1' }, { tick: 1221, type: 'hihat' }, { tick: 1240, type: 'hihat' }, { tick: 1240, type: 'snare' }, { tick: 1259, type: 'hihat' }, { tick: 1275, type: 'hihat' }, { tick: 1275, type: 'kick' }, { tick: 1293, type: 'hihat' }, { tick: 1310, type: 'snare' }, { tick: 1310, type: 'hihat' }, { tick: 1330, type: 'hihat' }, { tick: 1348, type: 'hihat' }, { tick: 1348, type: 'kick' }, { tick: 1365, type: 'hihat' }, { tick: 1384, type: 'hihat' }, { tick: 1385, type: 'snare' }, { tick: 1403, type: 'hihat' }, { tick: 1422, type: 'hihat' }, { tick: 1422, type: 'kick' }, { tick: 1438, type: 'hihat' }, { tick: 1457, type: 'hihat' }, { tick: 1458, type: 'snare' }, { tick: 1474, type: 'hihat' }, { tick: 1492, type: 'hihat' }, { tick: 1493, type: 'kick' }, { tick: 1511, type: 'hihat' }, { tick: 1529, type: 'hihat' }, { tick: 1529, type: 'snare' }, { tick: 1548, type: 'hihat' }, { tick: 1566, type: 'hihat' }, { tick: 1566, type: 'kick' }, { tick: 1584, type: 'hihat' }, { tick: 1602, type: 'hihat' }, { tick: 1603, type: 'snare' }, { tick: 1619, type: 'hihat' }, { tick: 1637, type: 'hihat' }, { tick: 1639, type: 'kick' }, { tick: 1656, type: 'hihat' }, { tick: 1677, type: 'snare' }, { tick: 1682, type: 'tom1' }, { tick: 1704, type: 'snare' }, { tick: 1709, type: 'tom1' }, { tick: 1729, type: 'snare' }, { tick: 1735, type: 'tom1' }, { tick: 1755, type: 'snare' }, { tick: 1761, type: 'tom1' }, { tick: 1783, type: 'crash1' }, { tick: 1784, type: 'kick' }, { tick: 1801, type: 'hihat' }, { tick: 1818, type: 'snare' }, { tick: 1820, type: 'hihat' }, { tick: 1838, type: 'hihat' }, { tick: 1856, type: 'hihat' }, { tick: 1857, type: 'kick' }, { tick: 1874, type: 'hihat' }, { tick: 1890, type: 'snare' }, { tick: 1891, type: 'hihat' }, { tick: 1909, type: 'hihat' }, { tick: 1926, type: 'hihat' }, { tick: 1928, type: 'kick' }, { tick: 1945, type: 'hihat' }, { tick: 1960, type: 'hihat' }, { tick: 1960, type: 'snare' }, { tick: 1981, type: 'hihat' }, { tick: 2001, type: 'hihat' }, { tick: 2001, type: 'kick' }, { tick: 2018, type: 'hihat' }, { tick: 2037, type: 'snare' }, { tick: 2037, type: 'hihat' }, { tick: 2055, type: 'hihat' }, { tick: 2074, type: 'kick' }, { tick: 2075, type: 'hihat' }, { tick: 2091, type: 'hihat' }, { tick: 2109, type: 'snare' }, { tick: 2109, type: 'hihat' }, { tick: 2127, type: 'hihat' }, { tick: 2144, type: 'hihat' }, { tick: 2144, type: 'kick' }, { tick: 2162, type: 'hihat' }, { tick: 2181, type: 'hihat' }, { tick: 2182, type: 'snare' }, { tick: 2199, type: 'hihat' }, { tick: 2217, type: 'hihat' }, { tick: 2217, type: 'kick' }, { tick: 2235, type: 'hihat' }, { tick: 2254, type: 'snare' }, { tick: 2261, type: 'tom1' }, { tick: 2281, type: 'snare' }, { tick: 2288, type: 'tom1' }, { tick: 2310, type: 'snare' }, { tick: 2316, type: 'tom1' }, { tick: 2336, type: 'snare' }, { tick: 2342, type: 'tom1' }, { tick: 2363, type: 'crash1' }, { tick: 2364, type: 'kick' }, { tick: 2382, type: 'hihat' }, { tick: 2400, type: 'snare' }, { tick: 2401, type: 'hihat' }, { tick: 2418, type: 'hihat' }, { tick: 2436, type: 'kick' }, { tick: 2437, type: 'hihat' }, { tick: 2455, type: 'hihat' }, { tick: 2472, type: 'snare' }, { tick: 2472, type: 'hihat' }, { tick: 2492, type: 'hihat' }, { tick: 2511, type: 'crash1' }, { tick: 2511, type: 'kick' }, { tick: 2533, type: 'hihat' }, { tick: 2547, type: 'snare' }, { tick: 2548, type: 'hihat' }, { tick: 2564, type: 'hihat' }, { tick: 2582, type: 'hihat' }, { tick: 2582, type: 'kick' }, { tick: 2598, type: 'hihat' }, { tick: 2616, type: 'snare' }, { tick: 2617, type: 'hihat' }, { tick: 2636, type: 'hihat' }, { tick: 2655, type: 'crash1' }, { tick: 2655, type: 'kick' }, { tick: 2676, type: 'hihat' }, { tick: 2691, type: 'snare' }, { tick: 2691, type: 'hihat' }, { tick: 2708, type: 'hihat' }, { tick: 2726, type: 'kick' }, { tick: 2726, type: 'hihat' }, { tick: 2745, type: 'hihat' }, { tick: 2762, type: 'snare' }, { tick: 2762, type: 'hihat' }, { tick: 2778, type: 'hihat' }, { tick: 2798, type: 'kick' }, { tick: 2799, type: 'crash1' }, { tick: 2816, type: 'hihat' }, { tick: 2835, type: 'hihat' }, { tick: 2835, type: 'snare' }, { tick: 2854, type: 'hihat' }, { tick: 2871, type: 'kick' }, { tick: 2871, type: 'hihat' }, { tick: 2891, type: 'hihat' }, { tick: 2908, type: 'hihat' }, { tick: 2908, type: 'snare' }, { tick: 2924, type: 'hihat' }, { tick: 2942, type: 'crash1' }, { tick: 2943, type: 'kick' }, { tick: 2962, type: 'hihat' }, { tick: 2981, type: 'hihat' }, { tick: 2981, type: 'snare' }, { tick: 2998, type: 'hihat' }, { tick: 3017, type: 'kick' }, { tick: 3017, type: 'hihat' }, { tick: 3034, type: 'hihat' }, { tick: 3052, type: 'hihat' }, { tick: 3052, type: 'snare' }, { tick: 3071, type: 'hihat' }, { tick: 3088, type: 'crash1' }, { tick: 3089, type: 'kick' }, { tick: 3107, type: 'hihat' }, { tick: 3124, type: 'snare' }, { tick: 3125, type: 'hihat' }, { tick: 3143, type: 'hihat' }, { tick: 3161, type: 'kick' }, { tick: 3161, type: 'hihat' }, { tick: 3178, type: 'hihat' }, { tick: 3197, type: 'snare' }, { tick: 3198, type: 'hihat' }, { tick: 3216, type: 'hihat' }, { tick: 3232, type: 'crash1' }, { tick: 3233, type: 'kick' }, { tick: 3251, type: 'hihat' }, { tick: 3269, type: 'snare' }, { tick: 3269, type: 'hihat' }, { tick: 3286, type: 'hihat' }, { tick: 3305, type: 'kick' }, { tick: 3305, type: 'hihat' }, { tick: 3323, type: 'hihat' }, { tick: 3341, type: 'snare' }, { tick: 3342, type: 'hihat' }, { tick: 3360, type: 'hihat' }, { tick: 3377, type: 'kick' }, { tick: 3377, type: 'crash1' }, { tick: 3405, type: 'crash1' }, { tick: 3405, type: 'kick' }, { tick: 3432, type: 'crash1' }, { tick: 3432, type: 'kick' }, { tick: 3481, type: 'snare' }, { tick: 3524, type: 'crash1' }, { tick: 3524, type: 'kick' }, { tick: 3543, type: 'hihat' }, { tick: 3561, type: 'hihat' }, { tick: 3561, type: 'snare' }, { tick: 3580, type: 'hihat' }, { tick: 3598, type: 'hihat' }, { tick: 3599, type: 'kick' }, { tick: 3617, type: 'hihat' }, { tick: 3634, type: 'snare' }, { tick: 3634, type: 'hihat' }, { tick: 3652, type: 'hihat' }, { tick: 3671, type: 'hihat' }, { tick: 3671, type: 'kick' }, { tick: 3691, type: 'hihat' }, { tick: 3707, type: 'snare' }, { tick: 3707, type: 'hihat' }, { tick: 3725, type: 'hihat' }, { tick: 3742, type: 'hihat' }, { tick: 3743, type: 'kick' }, { tick: 3761, type: 'hihat' }, { tick: 3780, type: 'snare' }, { tick: 3780, type: 'hihat' }, { tick: 3796, type: 'hihat' }, { tick: 3817, type: 'hihat' }, { tick: 3818, type: 'kick' }, { tick: 3833, type: 'hihat' }, { tick: 3851, type: 'hihat' }, { tick: 3852, type: 'snare' }, { tick: 3869, type: 'hihat' }, { tick: 3887, type: 'hihat' }, { tick: 3887, type: 'kick' }, { tick: 3905, type: 'hihat' }, { tick: 3923, type: 'hihat' }, { tick: 3923, type: 'snare' }, { tick: 3939, type: 'hihat' }, { tick: 3957, type: 'hihat' }, { tick: 3957, type: 'kick' }, { tick: 3976, type: 'hihat' }, { tick: 3998, type: 'snare' }, { tick: 4026, type: 'snare' }, { tick: 4030, type: 'tom1' }, { tick: 4052, type: 'snare' }, { tick: 4058, type: 'tom1' }, { tick: 4080, type: 'snare' }, { tick: 4086, type: 'tom1' }, { tick: 4105, type: 'kick' }, { tick: 4106, type: 'crash1' }, { tick: 4125, type: 'hihat' }, { tick: 4143, type: 'hihat' }, { tick: 4143, type: 'snare' }, { tick: 4161, type: 'hihat' }, { tick: 4178, type: 'kick' }, { tick: 4180, type: 'hihat' }, { tick: 4197, type: 'hihat' }, { tick: 4215, type: 'snare' }, { tick: 4215, type: 'hihat' }, { tick: 4233, type: 'hihat' }, { tick: 4250, type: 'kick' }, { tick: 4251, type: 'hihat' }, { tick: 4269, type: 'hihat' }, { tick: 4287, type: 'snare' }, { tick: 4288, type: 'hihat' }, { tick: 4306, type: 'hihat' }, { tick: 4324, type: 'hihat' }, { tick: 4325, type: 'kick' }, { tick: 4343, type: 'hihat' }, { tick: 4360, type: 'hihat' }, { tick: 4361, type: 'snare' }, { tick: 4380, type: 'hihat' }, { tick: 4397, type: 'kick' }, { tick: 4398, type: 'hihat' }, { tick: 4416, type: 'hihat' }, { tick: 4433, type: 'hihat' }, { tick: 4434, type: 'snare' }, { tick: 4451, type: 'hihat' }, { tick: 4470, type: 'hihat' }, { tick: 4471, type: 'kick' }, { tick: 4488, type: 'hihat' }, { tick: 4505, type: 'hihat' }, { tick: 4505, type: 'snare' }, { tick: 4524, type: 'hihat' }, { tick: 4541, type: 'hihat' }, { tick: 4542, type: 'kick' }, { tick: 4558, type: 'hihat' }, { tick: 4572, type: 'snare' }, { tick: 4584, type: 'tom1' }, { tick: 4608, type: 'snare' }, { tick: 4614, type: 'tom1' }, { tick: 4638, type: 'snare' }, { tick: 4642, type: 'tom1' }, { tick: 4664, type: 'snare' }, { tick: 4669, type: 'tom1' }, { tick: 4688, type: 'crash1' }, { tick: 4688, type: 'kick' }, { tick: 4705, type: 'hihat' }, { tick: 4723, type: 'snare' }, { tick: 4724, type: 'hihat' }, { tick: 4742, type: 'hihat' }, { tick: 4760, type: 'kick' }, { tick: 4761, type: 'hihat' }, { tick: 4779, type: 'hihat' }, { tick: 4796, type: 'snare' }, { tick: 4796, type: 'hihat' }, { tick: 4815, type: 'hihat' }, { tick: 4833, type: 'crash1' }, { tick: 4833, type: 'kick' }, { tick: 4850, type: 'hihat' }, { tick: 4867, type: 'snare' }, { tick: 4869, type: 'hihat' }, { tick: 4887, type: 'hihat' }, { tick: 4904, type: 'kick' }, { tick: 4905, type: 'hihat' }, { tick: 4923, type: 'hihat' }, { tick: 4940, type: 'snare' }, { tick: 4940, type: 'hihat' }, { tick: 4958, type: 'hihat' }, { tick: 4976, type: 'crash1' }, { tick: 4976, type: 'kick' }, { tick: 4996, type: 'hihat' }, { tick: 5014, type: 'snare' }, { tick: 5014, type: 'hihat' }, { tick: 5031, type: 'hihat' }, { tick: 5049, type: 'hihat' }, { tick: 5050, type: 'kick' }, { tick: 5066, type: 'hihat' }, { tick: 5084, type: 'hihat' }, { tick: 5085, type: 'snare' }, { tick: 5104, type: 'hihat' }, { tick: 5122, type: 'kick' }, { tick: 5122, type: 'crash1' }, { tick: 5144, type: 'hihat' }, { tick: 5159, type: 'snare' }, { tick: 5160, type: 'hihat' }, { tick: 5177, type: 'hihat' }, { tick: 5196, type: 'kick' }, { tick: 5196, type: 'hihat' }, { tick: 5212, type: 'hihat' }, { tick: 5231, type: 'hihat' }, { tick: 5231, type: 'snare' }, { tick: 5249, type: 'hihat' }, { tick: 5267, type: 'crash1' }, { tick: 5267, type: 'kick' }, { tick: 5287, type: 'hihat' }, { tick: 5304, type: 'snare' }, { tick: 5304, type: 'hihat' }, { tick: 5322, type: 'hihat' }, { tick: 5340, type: 'hihat' }, { tick: 5340, type: 'kick' }, { tick: 5358, type: 'hihat' }, { tick: 5374, type: 'snare' }, { tick: 5375, type: 'hihat' }, { tick: 5395, type: 'hihat' }, { tick: 5413, type: 'crash1' }, { tick: 5413, type: 'kick' }, { tick: 5434, type: 'hihat' }, { tick: 5449, type: 'snare' }, { tick: 5451, type: 'hihat' }, { tick: 5467, type: 'hihat' }, { tick: 5485, type: 'hihat' }, { tick: 5486, type: 'kick' }, { tick: 5503, type: 'hihat' }, { tick: 5520, type: 'hihat' }, { tick: 5521, type: 'snare' }, { tick: 5540, type: 'hihat' }, { tick: 5556, type: 'crash1' }, { tick: 5558, type: 'kick' }, { tick: 5575, type: 'hihat' }, { tick: 5591, type: 'snare' }, { tick: 5592, type: 'hihat' }, { tick: 5611, type: 'hihat' }, { tick: 5629, type: 'hihat' }, { tick: 5629, type: 'kick' }, { tick: 5647, type: 'hihat' }, { tick: 5666, type: 'hihat' }, { tick: 5666, type: 'snare' }, { tick: 5682, type: 'hihat' }, { tick: 5702, type: 'crash1' }, { tick: 5703, type: 'kick' }, { tick: 5728, type: 'crash1' }, { tick: 5729, type: 'kick' }, { tick: 5755, type: 'crash1' }, { tick: 5755, type: 'kick' }, { tick: 5801, type: 'snare' }, { tick: 5849, type: 'kick' }, { tick: 5849, 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
@@ -4595,1404 +4595,1404 @@
tick: 7758,
type: 'snare'
}]
}, {
- name: "Level 3",
+ name: "AB/CD Back in Track",
music: "ABCDBackinDark",
notes: [{
- tick: 30,
+ tick: 40,
type: 'kick'
}, {
- tick: 30,
+ tick: 40,
type: 'crash1'
}, {
- tick: 48,
+ tick: 58,
type: 'hihat'
}, {
- tick: 67,
+ tick: 77,
type: 'hihat'
}, {
- tick: 68,
+ tick: 78,
type: 'snare'
}, {
- tick: 85,
+ tick: 95,
type: 'hihat'
}, {
- tick: 103,
+ tick: 113,
type: 'hihat'
}, {
- tick: 104,
+ tick: 114,
type: 'kick'
}, {
- tick: 121,
+ tick: 131,
type: 'hihat'
}, {
- tick: 139,
+ tick: 149,
type: 'snare'
}, {
- tick: 139,
+ tick: 149,
type: 'hihat'
}, {
- tick: 158,
+ tick: 168,
type: 'hihat'
}, {
- tick: 175,
+ tick: 185,
type: 'kick'
}, {
- tick: 175,
+ tick: 185,
type: 'hihat'
}, {
- tick: 192,
+ tick: 202,
type: 'hihat'
}, {
- tick: 210,
+ tick: 220,
type: 'hihat'
}, {
- tick: 210,
+ tick: 220,
type: 'snare'
}, {
- tick: 227,
+ tick: 237,
type: 'hihat'
}, {
- tick: 246,
+ tick: 256,
type: 'hihat'
}, {
- tick: 247,
+ tick: 257,
type: 'kick'
}, {
- tick: 266,
+ tick: 276,
type: 'hihat'
}, {
- tick: 282,
+ tick: 292,
type: 'snare'
}, {
- tick: 283,
+ tick: 293,
type: 'hihat'
}, {
- tick: 301,
+ tick: 311,
type: 'hihat'
}, {
- tick: 319,
+ tick: 329,
type: 'hihat'
}, {
- tick: 319,
+ tick: 329,
type: 'kick'
}, {
- tick: 336,
+ tick: 346,
type: 'hihat'
}, {
- tick: 353,
+ tick: 363,
type: 'hihat'
}, {
- tick: 354,
+ tick: 364,
type: 'snare'
}, {
- tick: 372,
+ tick: 382,
type: 'hihat'
}, {
- tick: 390,
+ tick: 400,
type: 'hihat'
}, {
- tick: 390,
+ tick: 400,
type: 'kick'
}, {
- tick: 409,
+ tick: 419,
type: 'hihat'
}, {
- tick: 427,
+ tick: 437,
type: 'hihat'
}, {
- tick: 428,
+ tick: 438,
type: 'snare'
}, {
- tick: 445,
+ tick: 455,
type: 'hihat'
}, {
- tick: 463,
+ tick: 473,
type: 'hihat'
}, {
- tick: 463,
+ tick: 473,
type: 'kick'
}, {
- tick: 480,
+ tick: 490,
type: 'hihat'
}, {
- tick: 498,
+ tick: 508,
type: 'snare'
}, {
- tick: 505,
+ tick: 515,
type: 'tom1'
}, {
- tick: 527,
+ tick: 537,
type: 'snare'
}, {
- tick: 533,
+ tick: 543,
type: 'tom1'
}, {
- tick: 557,
+ tick: 567,
type: 'snare'
}, {
- tick: 562,
+ tick: 572,
type: 'tom1'
}, {
- tick: 584,
+ tick: 594,
type: 'snare'
}, {
- tick: 588,
+ tick: 598,
type: 'tom1'
}, {
- tick: 612,
+ tick: 622,
type: 'crash1'
}, {
- tick: 612,
+ tick: 622,
type: 'kick'
}, {
- tick: 633,
+ tick: 643,
type: 'hihat'
}, {
- tick: 648,
+ tick: 658,
type: 'snare'
}, {
- tick: 648,
+ tick: 658,
type: 'hihat'
}, {
- tick: 666,
+ tick: 676,
type: 'hihat'
}, {
- tick: 684,
+ tick: 694,
type: 'hihat'
}, {
- tick: 684,
+ tick: 694,
type: 'kick'
}, {
- tick: 701,
+ tick: 711,
type: 'hihat'
}, {
- tick: 719,
+ tick: 729,
type: 'snare'
}, {
- tick: 721,
+ tick: 731,
type: 'hihat'
}, {
- tick: 740,
+ tick: 750,
type: 'hihat'
}, {
- tick: 757,
+ tick: 767,
type: 'hihat'
}, {
- tick: 758,
+ tick: 768,
type: 'kick'
}, {
- tick: 773,
+ tick: 783,
type: 'hihat'
}, {
- tick: 793,
+ tick: 803,
type: 'hihat'
}, {
- tick: 793,
+ tick: 803,
type: 'snare'
}, {
- tick: 811,
+ tick: 821,
type: 'hihat'
}, {
- tick: 828,
+ tick: 838,
type: 'hihat'
}, {
- tick: 828,
+ tick: 838,
type: 'kick'
}, {
- tick: 844,
+ tick: 854,
type: 'hihat'
}, {
- tick: 862,
+ tick: 872,
type: 'snare'
}, {
- tick: 862,
+ tick: 872,
type: 'hihat'
}, {
- tick: 880,
+ tick: 890,
type: 'hihat'
}, {
- tick: 898,
+ tick: 908,
type: 'hihat'
}, {
- tick: 900,
+ tick: 910,
type: 'kick'
}, {
- tick: 917,
+ tick: 927,
type: 'hihat'
}, {
- tick: 934,
+ tick: 944,
type: 'snare'
}, {
- tick: 935,
+ tick: 945,
type: 'hihat'
}, {
- tick: 955,
+ tick: 965,
type: 'hihat'
}, {
- tick: 972,
+ tick: 982,
type: 'hihat'
}, {
- tick: 972,
+ tick: 982,
type: 'kick'
}, {
- tick: 991,
+ tick: 1001,
type: 'hihat'
}, {
- tick: 1008,
+ tick: 1018,
type: 'snare'
}, {
- tick: 1008,
+ tick: 1018,
type: 'hihat'
}, {
- tick: 1027,
+ tick: 1037,
type: 'hihat'
}, {
- tick: 1045,
+ tick: 1055,
type: 'hihat'
}, {
- tick: 1046,
+ tick: 1056,
type: 'kick'
}, {
- tick: 1062,
+ tick: 1072,
type: 'hihat'
}, {
- tick: 1081,
+ tick: 1091,
type: 'snare'
}, {
- tick: 1088,
+ tick: 1098,
type: 'tom1'
}, {
- tick: 1110,
+ tick: 1120,
type: 'snare'
}, {
- tick: 1116,
+ tick: 1126,
type: 'tom1'
}, {
- tick: 1138,
+ tick: 1148,
type: 'snare'
}, {
- tick: 1143,
+ tick: 1153,
type: 'tom1'
}, {
- tick: 1165,
+ tick: 1175,
type: 'snare'
}, {
- tick: 1171,
+ tick: 1181,
type: 'tom1'
}, {
- tick: 1193,
+ tick: 1203,
type: 'kick'
}, {
- tick: 1193,
+ tick: 1203,
type: 'crash1'
}, {
- tick: 1211,
+ tick: 1221,
type: 'hihat'
}, {
- tick: 1230,
+ tick: 1240,
type: 'hihat'
}, {
- tick: 1230,
+ tick: 1240,
type: 'snare'
}, {
- tick: 1249,
+ tick: 1259,
type: 'hihat'
}, {
- tick: 1265,
+ tick: 1275,
type: 'hihat'
}, {
- tick: 1265,
+ tick: 1275,
type: 'kick'
}, {
- tick: 1283,
+ tick: 1293,
type: 'hihat'
}, {
- tick: 1300,
+ tick: 1310,
type: 'snare'
}, {
- tick: 1300,
+ tick: 1310,
type: 'hihat'
}, {
- tick: 1320,
+ tick: 1330,
type: 'hihat'
}, {
- tick: 1338,
+ tick: 1348,
type: 'hihat'
}, {
- tick: 1338,
+ tick: 1348,
type: 'kick'
}, {
- tick: 1355,
+ tick: 1365,
type: 'hihat'
}, {
- tick: 1374,
+ tick: 1384,
type: 'hihat'
}, {
- tick: 1375,
+ tick: 1385,
type: 'snare'
}, {
- tick: 1393,
+ tick: 1403,
type: 'hihat'
}, {
- tick: 1412,
+ tick: 1422,
type: 'hihat'
}, {
- tick: 1412,
+ tick: 1422,
type: 'kick'
}, {
- tick: 1428,
+ tick: 1438,
type: 'hihat'
}, {
- tick: 1447,
+ tick: 1457,
type: 'hihat'
}, {
- tick: 1448,
+ tick: 1458,
type: 'snare'
}, {
- tick: 1464,
+ tick: 1474,
type: 'hihat'
}, {
- tick: 1482,
+ tick: 1492,
type: 'hihat'
}, {
- tick: 1483,
+ tick: 1493,
type: 'kick'
}, {
- tick: 1501,
+ tick: 1511,
type: 'hihat'
}, {
- tick: 1519,
+ tick: 1529,
type: 'hihat'
}, {
- tick: 1519,
+ tick: 1529,
type: 'snare'
}, {
- tick: 1538,
+ tick: 1548,
type: 'hihat'
}, {
- tick: 1556,
+ tick: 1566,
type: 'hihat'
}, {
- tick: 1556,
+ tick: 1566,
type: 'kick'
}, {
- tick: 1574,
+ tick: 1584,
type: 'hihat'
}, {
- tick: 1592,
+ tick: 1602,
type: 'hihat'
}, {
- tick: 1593,
+ tick: 1603,
type: 'snare'
}, {
- tick: 1609,
+ tick: 1619,
type: 'hihat'
}, {
- tick: 1627,
+ tick: 1637,
type: 'hihat'
}, {
- tick: 1629,
+ tick: 1639,
type: 'kick'
}, {
- tick: 1646,
+ tick: 1656,
type: 'hihat'
}, {
- tick: 1667,
+ tick: 1677,
type: 'snare'
}, {
- tick: 1672,
+ tick: 1682,
type: 'tom1'
}, {
- tick: 1694,
+ tick: 1704,
type: 'snare'
}, {
- tick: 1699,
+ tick: 1709,
type: 'tom1'
}, {
- tick: 1719,
+ tick: 1729,
type: 'snare'
}, {
- tick: 1725,
+ tick: 1735,
type: 'tom1'
}, {
- tick: 1745,
+ tick: 1755,
type: 'snare'
}, {
- tick: 1751,
+ tick: 1761,
type: 'tom1'
}, {
- tick: 1773,
+ tick: 1783,
type: 'crash1'
}, {
- tick: 1774,
+ tick: 1784,
type: 'kick'
}, {
- tick: 1791,
+ tick: 1801,
type: 'hihat'
}, {
- tick: 1808,
+ tick: 1818,
type: 'snare'
}, {
- tick: 1810,
+ tick: 1820,
type: 'hihat'
}, {
- tick: 1828,
+ tick: 1838,
type: 'hihat'
}, {
- tick: 1846,
+ tick: 1856,
type: 'hihat'
}, {
- tick: 1847,
+ tick: 1857,
type: 'kick'
}, {
- tick: 1864,
+ tick: 1874,
type: 'hihat'
}, {
- tick: 1880,
+ tick: 1890,
type: 'snare'
}, {
- tick: 1881,
+ tick: 1891,
type: 'hihat'
}, {
- tick: 1899,
+ tick: 1909,
type: 'hihat'
}, {
- tick: 1916,
+ tick: 1926,
type: 'hihat'
}, {
- tick: 1918,
+ tick: 1928,
type: 'kick'
}, {
- tick: 1935,
+ tick: 1945,
type: 'hihat'
}, {
- tick: 1950,
+ tick: 1960,
type: 'hihat'
}, {
- tick: 1950,
+ tick: 1960,
type: 'snare'
}, {
- tick: 1971,
+ tick: 1981,
type: 'hihat'
}, {
- tick: 1991,
+ tick: 2001,
type: 'hihat'
}, {
- tick: 1991,
+ tick: 2001,
type: 'kick'
}, {
- tick: 2008,
+ tick: 2018,
type: 'hihat'
}, {
- tick: 2027,
+ tick: 2037,
type: 'snare'
}, {
- tick: 2027,
+ tick: 2037,
type: 'hihat'
}, {
- tick: 2045,
+ tick: 2055,
type: 'hihat'
}, {
- tick: 2064,
+ tick: 2074,
type: 'kick'
}, {
- tick: 2065,
+ tick: 2075,
type: 'hihat'
}, {
- tick: 2081,
+ tick: 2091,
type: 'hihat'
}, {
- tick: 2099,
+ tick: 2109,
type: 'snare'
}, {
- tick: 2099,
+ tick: 2109,
type: 'hihat'
}, {
- tick: 2117,
+ tick: 2127,
type: 'hihat'
}, {
- tick: 2134,
+ tick: 2144,
type: 'hihat'
}, {
- tick: 2134,
+ tick: 2144,
type: 'kick'
}, {
- tick: 2152,
+ tick: 2162,
type: 'hihat'
}, {
- tick: 2171,
+ tick: 2181,
type: 'hihat'
}, {
- tick: 2172,
+ tick: 2182,
type: 'snare'
}, {
- tick: 2189,
+ tick: 2199,
type: 'hihat'
}, {
- tick: 2207,
+ tick: 2217,
type: 'hihat'
}, {
- tick: 2207,
+ tick: 2217,
type: 'kick'
}, {
- tick: 2225,
+ tick: 2235,
type: 'hihat'
}, {
- tick: 2244,
+ tick: 2254,
type: 'snare'
}, {
- tick: 2251,
+ tick: 2261,
type: 'tom1'
}, {
- tick: 2271,
+ tick: 2281,
type: 'snare'
}, {
- tick: 2278,
+ tick: 2288,
type: 'tom1'
}, {
- tick: 2300,
+ tick: 2310,
type: 'snare'
}, {
- tick: 2306,
+ tick: 2316,
type: 'tom1'
}, {
- tick: 2326,
+ tick: 2336,
type: 'snare'
}, {
- tick: 2332,
+ tick: 2342,
type: 'tom1'
}, {
- tick: 2353,
+ tick: 2363,
type: 'crash1'
}, {
- tick: 2354,
+ tick: 2364,
type: 'kick'
}, {
- tick: 2372,
+ tick: 2382,
type: 'hihat'
}, {
- tick: 2390,
+ tick: 2400,
type: 'snare'
}, {
- tick: 2391,
+ tick: 2401,
type: 'hihat'
}, {
- tick: 2408,
+ tick: 2418,
type: 'hihat'
}, {
- tick: 2426,
+ tick: 2436,
type: 'kick'
}, {
- tick: 2427,
+ tick: 2437,
type: 'hihat'
}, {
- tick: 2445,
+ tick: 2455,
type: 'hihat'
}, {
- tick: 2462,
+ tick: 2472,
type: 'snare'
}, {
- tick: 2462,
+ tick: 2472,
type: 'hihat'
}, {
- tick: 2482,
+ tick: 2492,
type: 'hihat'
}, {
- tick: 2501,
+ tick: 2511,
type: 'crash1'
}, {
- tick: 2501,
+ tick: 2511,
type: 'kick'
}, {
- tick: 2523,
+ tick: 2533,
type: 'hihat'
}, {
- tick: 2537,
+ tick: 2547,
type: 'snare'
}, {
- tick: 2538,
+ tick: 2548,
type: 'hihat'
}, {
- tick: 2554,
+ tick: 2564,
type: 'hihat'
}, {
- tick: 2572,
+ tick: 2582,
type: 'hihat'
}, {
- tick: 2572,
+ tick: 2582,
type: 'kick'
}, {
- tick: 2588,
+ tick: 2598,
type: 'hihat'
}, {
- tick: 2606,
+ tick: 2616,
type: 'snare'
}, {
- tick: 2607,
+ tick: 2617,
type: 'hihat'
}, {
- tick: 2626,
+ tick: 2636,
type: 'hihat'
}, {
- tick: 2645,
+ tick: 2655,
type: 'crash1'
}, {
- tick: 2645,
+ tick: 2655,
type: 'kick'
}, {
- tick: 2666,
+ tick: 2676,
type: 'hihat'
}, {
- tick: 2681,
+ tick: 2691,
type: 'snare'
}, {
- tick: 2681,
+ tick: 2691,
type: 'hihat'
}, {
- tick: 2698,
+ tick: 2708,
type: 'hihat'
}, {
- tick: 2716,
+ tick: 2726,
type: 'kick'
}, {
- tick: 2716,
+ tick: 2726,
type: 'hihat'
}, {
- tick: 2735,
+ tick: 2745,
type: 'hihat'
}, {
- tick: 2752,
+ tick: 2762,
type: 'snare'
}, {
- tick: 2752,
+ tick: 2762,
type: 'hihat'
}, {
- tick: 2768,
+ tick: 2778,
type: 'hihat'
}, {
- tick: 2788,
+ tick: 2798,
type: 'kick'
}, {
- tick: 2789,
+ tick: 2799,
type: 'crash1'
}, {
- tick: 2806,
+ tick: 2816,
type: 'hihat'
}, {
- tick: 2825,
+ tick: 2835,
type: 'hihat'
}, {
- tick: 2825,
+ tick: 2835,
type: 'snare'
}, {
- tick: 2844,
+ tick: 2854,
type: 'hihat'
}, {
- tick: 2861,
+ tick: 2871,
type: 'kick'
}, {
- tick: 2861,
+ tick: 2871,
type: 'hihat'
}, {
- tick: 2881,
+ tick: 2891,
type: 'hihat'
}, {
- tick: 2898,
+ tick: 2908,
type: 'hihat'
}, {
- tick: 2898,
+ tick: 2908,
type: 'snare'
}, {
- tick: 2914,
+ tick: 2924,
type: 'hihat'
}, {
- tick: 2932,
+ tick: 2942,
type: 'crash1'
}, {
- tick: 2933,
+ tick: 2943,
type: 'kick'
}, {
- tick: 2952,
+ tick: 2962,
type: 'hihat'
}, {
- tick: 2971,
+ tick: 2981,
type: 'hihat'
}, {
- tick: 2971,
+ tick: 2981,
type: 'snare'
}, {
- tick: 2988,
+ tick: 2998,
type: 'hihat'
}, {
- tick: 3007,
+ tick: 3017,
type: 'kick'
}, {
- tick: 3007,
+ tick: 3017,
type: 'hihat'
}, {
- tick: 3024,
+ tick: 3034,
type: 'hihat'
}, {
- tick: 3042,
+ tick: 3052,
type: 'hihat'
}, {
- tick: 3042,
+ tick: 3052,
type: 'snare'
}, {
- tick: 3061,
+ tick: 3071,
type: 'hihat'
}, {
- tick: 3078,
+ tick: 3088,
type: 'crash1'
}, {
- tick: 3079,
+ tick: 3089,
type: 'kick'
}, {
- tick: 3097,
+ tick: 3107,
type: 'hihat'
}, {
- tick: 3114,
+ tick: 3124,
type: 'snare'
}, {
- tick: 3115,
+ tick: 3125,
type: 'hihat'
}, {
- tick: 3133,
+ tick: 3143,
type: 'hihat'
}, {
- tick: 3151,
+ tick: 3161,
type: 'kick'
}, {
- tick: 3151,
+ tick: 3161,
type: 'hihat'
}, {
- tick: 3168,
+ tick: 3178,
type: 'hihat'
}, {
- tick: 3187,
+ tick: 3197,
type: 'snare'
}, {
- tick: 3188,
+ tick: 3198,
type: 'hihat'
}, {
- tick: 3206,
+ tick: 3216,
type: 'hihat'
}, {
- tick: 3222,
+ tick: 3232,
type: 'crash1'
}, {
- tick: 3223,
+ tick: 3233,
type: 'kick'
}, {
- tick: 3241,
+ tick: 3251,
type: 'hihat'
}, {
- tick: 3259,
+ tick: 3269,
type: 'snare'
}, {
- tick: 3259,
+ tick: 3269,
type: 'hihat'
}, {
- tick: 3276,
+ tick: 3286,
type: 'hihat'
}, {
- tick: 3295,
+ tick: 3305,
type: 'kick'
}, {
- tick: 3295,
+ tick: 3305,
type: 'hihat'
}, {
- tick: 3313,
+ tick: 3323,
type: 'hihat'
}, {
- tick: 3331,
+ tick: 3341,
type: 'snare'
}, {
- tick: 3332,
+ tick: 3342,
type: 'hihat'
}, {
- tick: 3350,
+ tick: 3360,
type: 'hihat'
}, {
- tick: 3367,
+ tick: 3377,
type: 'kick'
}, {
- tick: 3367,
+ tick: 3377,
type: 'crash1'
}, {
- tick: 3395,
+ tick: 3405,
type: 'crash1'
}, {
- tick: 3395,
+ tick: 3405,
type: 'kick'
}, {
- tick: 3422,
+ tick: 3432,
type: 'crash1'
}, {
- tick: 3422,
+ tick: 3432,
type: 'kick'
}, {
- tick: 3471,
+ tick: 3481,
type: 'snare'
}, {
- tick: 3514,
+ tick: 3524,
type: 'crash1'
}, {
- tick: 3514,
+ tick: 3524,
type: 'kick'
}, {
- tick: 3533,
+ tick: 3543,
type: 'hihat'
}, {
- tick: 3551,
+ tick: 3561,
type: 'hihat'
}, {
- tick: 3551,
+ tick: 3561,
type: 'snare'
}, {
- tick: 3570,
+ tick: 3580,
type: 'hihat'
}, {
- tick: 3588,
+ tick: 3598,
type: 'hihat'
}, {
- tick: 3589,
+ tick: 3599,
type: 'kick'
}, {
- tick: 3607,
+ tick: 3617,
type: 'hihat'
}, {
- tick: 3624,
+ tick: 3634,
type: 'snare'
}, {
- tick: 3624,
+ tick: 3634,
type: 'hihat'
}, {
- tick: 3642,
+ tick: 3652,
type: 'hihat'
}, {
- tick: 3661,
+ tick: 3671,
type: 'hihat'
}, {
- tick: 3661,
+ tick: 3671,
type: 'kick'
}, {
- tick: 3681,
+ tick: 3691,
type: 'hihat'
}, {
- tick: 3697,
+ tick: 3707,
type: 'snare'
}, {
- tick: 3697,
+ tick: 3707,
type: 'hihat'
}, {
- tick: 3715,
+ tick: 3725,
type: 'hihat'
}, {
- tick: 3732,
+ tick: 3742,
type: 'hihat'
}, {
- tick: 3733,
+ tick: 3743,
type: 'kick'
}, {
- tick: 3751,
+ tick: 3761,
type: 'hihat'
}, {
- tick: 3770,
+ tick: 3780,
type: 'snare'
}, {
- tick: 3770,
+ tick: 3780,
type: 'hihat'
}, {
- tick: 3786,
+ tick: 3796,
type: 'hihat'
}, {
- tick: 3807,
+ tick: 3817,
type: 'hihat'
}, {
- tick: 3808,
+ tick: 3818,
type: 'kick'
}, {
- tick: 3823,
+ tick: 3833,
type: 'hihat'
}, {
- tick: 3841,
+ tick: 3851,
type: 'hihat'
}, {
- tick: 3842,
+ tick: 3852,
type: 'snare'
}, {
- tick: 3859,
+ tick: 3869,
type: 'hihat'
}, {
- tick: 3877,
+ tick: 3887,
type: 'hihat'
}, {
- tick: 3877,
+ tick: 3887,
type: 'kick'
}, {
- tick: 3895,
+ tick: 3905,
type: 'hihat'
}, {
- tick: 3913,
+ tick: 3923,
type: 'hihat'
}, {
- tick: 3913,
+ tick: 3923,
type: 'snare'
}, {
- tick: 3929,
+ tick: 3939,
type: 'hihat'
}, {
- tick: 3947,
+ tick: 3957,
type: 'hihat'
}, {
- tick: 3947,
+ tick: 3957,
type: 'kick'
}, {
- tick: 3966,
+ tick: 3976,
type: 'hihat'
}, {
- tick: 3988,
+ tick: 3998,
type: 'snare'
}, {
- tick: 4016,
+ tick: 4026,
type: 'snare'
}, {
- tick: 4020,
+ tick: 4030,
type: 'tom1'
}, {
- tick: 4042,
+ tick: 4052,
type: 'snare'
}, {
- tick: 4048,
+ tick: 4058,
type: 'tom1'
}, {
- tick: 4070,
+ tick: 4080,
type: 'snare'
}, {
- tick: 4076,
+ tick: 4086,
type: 'tom1'
}, {
- tick: 4095,
+ tick: 4105,
type: 'kick'
}, {
- tick: 4096,
+ tick: 4106,
type: 'crash1'
}, {
- tick: 4115,
+ tick: 4125,
type: 'hihat'
}, {
- tick: 4133,
+ tick: 4143,
type: 'hihat'
}, {
- tick: 4133,
+ tick: 4143,
type: 'snare'
}, {
- tick: 4151,
+ tick: 4161,
type: 'hihat'
}, {
- tick: 4168,
+ tick: 4178,
type: 'kick'
}, {
- tick: 4170,
+ tick: 4180,
type: 'hihat'
}, {
- tick: 4187,
+ tick: 4197,
type: 'hihat'
}, {
- tick: 4205,
+ tick: 4215,
type: 'snare'
}, {
- tick: 4205,
+ tick: 4215,
type: 'hihat'
}, {
- tick: 4223,
+ tick: 4233,
type: 'hihat'
}, {
- tick: 4240,
+ tick: 4250,
type: 'kick'
}, {
- tick: 4241,
+ tick: 4251,
type: 'hihat'
}, {
- tick: 4259,
+ tick: 4269,
type: 'hihat'
}, {
- tick: 4277,
+ tick: 4287,
type: 'snare'
}, {
- tick: 4278,
+ tick: 4288,
type: 'hihat'
}, {
- tick: 4296,
+ tick: 4306,
type: 'hihat'
}, {
- tick: 4314,
+ tick: 4324,
type: 'hihat'
}, {
- tick: 4315,
+ tick: 4325,
type: 'kick'
}, {
- tick: 4333,
+ tick: 4343,
type: 'hihat'
}, {
- tick: 4350,
+ tick: 4360,
type: 'hihat'
}, {
- tick: 4351,
+ tick: 4361,
type: 'snare'
}, {
- tick: 4370,
+ tick: 4380,
type: 'hihat'
}, {
- tick: 4387,
+ tick: 4397,
type: 'kick'
}, {
- tick: 4388,
+ tick: 4398,
type: 'hihat'
}, {
- tick: 4406,
+ tick: 4416,
type: 'hihat'
}, {
- tick: 4423,
+ tick: 4433,
type: 'hihat'
}, {
- tick: 4424,
+ tick: 4434,
type: 'snare'
}, {
- tick: 4441,
+ tick: 4451,
type: 'hihat'
}, {
- tick: 4460,
+ tick: 4470,
type: 'hihat'
}, {
- tick: 4461,
+ tick: 4471,
type: 'kick'
}, {
- tick: 4478,
+ tick: 4488,
type: 'hihat'
}, {
- tick: 4495,
+ tick: 4505,
type: 'hihat'
}, {
- tick: 4495,
+ tick: 4505,
type: 'snare'
}, {
- tick: 4514,
+ tick: 4524,
type: 'hihat'
}, {
- tick: 4531,
+ tick: 4541,
type: 'hihat'
}, {
- tick: 4532,
+ tick: 4542,
type: 'kick'
}, {
- tick: 4548,
+ tick: 4558,
type: 'hihat'
}, {
- tick: 4562,
+ tick: 4572,
type: 'snare'
}, {
- tick: 4574,
+ tick: 4584,
type: 'tom1'
}, {
- tick: 4598,
+ tick: 4608,
type: 'snare'
}, {
- tick: 4604,
+ tick: 4614,
type: 'tom1'
}, {
- tick: 4628,
+ tick: 4638,
type: 'snare'
}, {
- tick: 4632,
+ tick: 4642,
type: 'tom1'
}, {
- tick: 4654,
+ tick: 4664,
type: 'snare'
}, {
- tick: 4659,
+ tick: 4669,
type: 'tom1'
}, {
- tick: 4678,
+ tick: 4688,
type: 'crash1'
}, {
- tick: 4678,
+ tick: 4688,
type: 'kick'
}, {
- tick: 4695,
+ tick: 4705,
type: 'hihat'
}, {
- tick: 4713,
+ tick: 4723,
type: 'snare'
}, {
- tick: 4714,
+ tick: 4724,
type: 'hihat'
}, {
- tick: 4732,
+ tick: 4742,
type: 'hihat'
}, {
- tick: 4750,
+ tick: 4760,
type: 'kick'
}, {
- tick: 4751,
+ tick: 4761,
type: 'hihat'
}, {
- tick: 4769,
+ tick: 4779,
type: 'hihat'
}, {
- tick: 4786,
+ tick: 4796,
type: 'snare'
}, {
- tick: 4786,
+ tick: 4796,
type: 'hihat'
}, {
- tick: 4805,
+ tick: 4815,
type: 'hihat'
}, {
- tick: 4823,
+ tick: 4833,
type: 'crash1'
}, {
- tick: 4823,
+ tick: 4833,
type: 'kick'
}, {
- tick: 4840,
+ tick: 4850,
type: 'hihat'
}, {
- tick: 4857,
+ tick: 4867,
type: 'snare'
}, {
- tick: 4859,
+ tick: 4869,
type: 'hihat'
}, {
- tick: 4877,
+ tick: 4887,
type: 'hihat'
}, {
- tick: 4894,
+ tick: 4904,
type: 'kick'
}, {
- tick: 4895,
+ tick: 4905,
type: 'hihat'
}, {
- tick: 4913,
+ tick: 4923,
type: 'hihat'
}, {
- tick: 4930,
+ tick: 4940,
type: 'snare'
}, {
- tick: 4930,
+ tick: 4940,
type: 'hihat'
}, {
- tick: 4948,
+ tick: 4958,
type: 'hihat'
}, {
- tick: 4966,
+ tick: 4976,
type: 'crash1'
}, {
- tick: 4966,
+ tick: 4976,
type: 'kick'
}, {
- tick: 4986,
+ tick: 4996,
type: 'hihat'
}, {
- tick: 5004,
+ tick: 5014,
type: 'snare'
}, {
- tick: 5004,
+ tick: 5014,
type: 'hihat'
}, {
- tick: 5021,
+ tick: 5031,
type: 'hihat'
}, {
- tick: 5039,
+ tick: 5049,
type: 'hihat'
}, {
- tick: 5040,
+ tick: 5050,
type: 'kick'
}, {
- tick: 5056,
+ tick: 5066,
type: 'hihat'
}, {
- tick: 5074,
+ tick: 5084,
type: 'hihat'
}, {
- tick: 5075,
+ tick: 5085,
type: 'snare'
}, {
- tick: 5094,
+ tick: 5104,
type: 'hihat'
}, {
- tick: 5112,
+ tick: 5122,
type: 'kick'
}, {
- tick: 5112,
+ tick: 5122,
type: 'crash1'
}, {
- tick: 5134,
+ tick: 5144,
type: 'hihat'
}, {
- tick: 5149,
+ tick: 5159,
type: 'snare'
}, {
- tick: 5150,
+ tick: 5160,
type: 'hihat'
}, {
- tick: 5167,
+ tick: 5177,
type: 'hihat'
}, {
- tick: 5186,
+ tick: 5196,
type: 'kick'
}, {
- tick: 5186,
+ tick: 5196,
type: 'hihat'
}, {
- tick: 5202,
+ tick: 5212,
type: 'hihat'
}, {
- tick: 5221,
+ tick: 5231,
type: 'hihat'
}, {
- tick: 5221,
+ tick: 5231,
type: 'snare'
}, {
- tick: 5239,
+ tick: 5249,
type: 'hihat'
}, {
- tick: 5257,
+ tick: 5267,
type: 'crash1'
}, {
- tick: 5257,
+ tick: 5267,
type: 'kick'
}, {
- tick: 5277,
+ tick: 5287,
type: 'hihat'
}, {
- tick: 5294,
+ tick: 5304,
type: 'snare'
}, {
- tick: 5294,
+ tick: 5304,
type: 'hihat'
}, {
- tick: 5312,
+ tick: 5322,
type: 'hihat'
}, {
- tick: 5330,
+ tick: 5340,
type: 'hihat'
}, {
- tick: 5330,
+ tick: 5340,
type: 'kick'
}, {
- tick: 5348,
+ tick: 5358,
type: 'hihat'
}, {
- tick: 5364,
+ tick: 5374,
type: 'snare'
}, {
- tick: 5365,
+ tick: 5375,
type: 'hihat'
}, {
- tick: 5385,
+ tick: 5395,
type: 'hihat'
}, {
- tick: 5403,
+ tick: 5413,
type: 'crash1'
}, {
- tick: 5403,
+ tick: 5413,
type: 'kick'
}, {
- tick: 5424,
+ tick: 5434,
type: 'hihat'
}, {
- tick: 5439,
+ tick: 5449,
type: 'snare'
}, {
- tick: 5441,
+ tick: 5451,
type: 'hihat'
}, {
- tick: 5457,
+ tick: 5467,
type: 'hihat'
}, {
- tick: 5475,
+ tick: 5485,
type: 'hihat'
}, {
- tick: 5476,
+ tick: 5486,
type: 'kick'
}, {
- tick: 5493,
+ tick: 5503,
type: 'hihat'
}, {
- tick: 5510,
+ tick: 5520,
type: 'hihat'
}, {
- tick: 5511,
+ tick: 5521,
type: 'snare'
}, {
- tick: 5530,
+ tick: 5540,
type: 'hihat'
}, {
- tick: 5546,
+ tick: 5556,
type: 'crash1'
}, {
- tick: 5548,
+ tick: 5558,
type: 'kick'
}, {
- tick: 5565,
+ tick: 5575,
type: 'hihat'
}, {
- tick: 5581,
+ tick: 5591,
type: 'snare'
}, {
- tick: 5582,
+ tick: 5592,
type: 'hihat'
}, {
- tick: 5601,
+ tick: 5611,
type: 'hihat'
}, {
- tick: 5619,
+ tick: 5629,
type: 'hihat'
}, {
- tick: 5619,
+ tick: 5629,
type: 'kick'
}, {
- tick: 5637,
+ tick: 5647,
type: 'hihat'
}, {
- tick: 5656,
+ tick: 5666,
type: 'hihat'
}, {
- tick: 5656,
+ tick: 5666,
type: 'snare'
}, {
- tick: 5672,
+ tick: 5682,
type: 'hihat'
}, {
- tick: 5692,
+ tick: 5702,
type: 'crash1'
}, {
- tick: 5693,
+ tick: 5703,
type: 'kick'
}, {
- tick: 5718,
+ tick: 5728,
type: 'crash1'
}, {
- tick: 5719,
+ tick: 5729,
type: 'kick'
}, {
- tick: 5745,
+ tick: 5755,
type: 'crash1'
}, {
- tick: 5745,
+ tick: 5755,
type: 'kick'
}, {
- tick: 5791,
+ tick: 5801,
type: 'snare'
}, {
- tick: 5839,
+ tick: 5849,
type: 'kick'
}, {
- tick: 5839,
+ tick: 5849,
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