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", { unlockedLevels: 1 }); /**** * Classes ****/ // Default: only beginner (index 3) unlocked // 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: "Easy: 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' }] }, { name: "Beginner: SevenStripe-Armey", music: "SevenStripeArmey", notes: [{ tick: 0, type: 'kick' }, { tick: 24, type: 'tom1' }, { tick: 24, type: 'kick' }, { tick: 57, type: 'kick' }, { tick: 82, type: 'tom1' }, { tick: 82, type: 'kick' }, { tick: 117, type: 'kick' }, { tick: 145, type: 'tom1' }, { tick: 147, type: 'kick' }, { tick: 175, type: 'kick' }, { tick: 208, type: 'tom1' }, { tick: 208, type: 'kick' }, { tick: 239, type: 'kick' }, { tick: 270, type: 'kick' }, { tick: 270, type: 'tom1' }, { tick: 302, type: 'kick' }, { tick: 329, type: 'kick' }, { tick: 329, type: 'tom1' }, { tick: 362, type: 'kick' }, { tick: 389, type: 'tom1' }, { tick: 389, type: 'kick' }, { tick: 420, type: 'kick' }, { tick: 449, type: 'tom1' }, { tick: 449, type: 'kick' }, { tick: 482, type: 'kick' }, { tick: 508, type: 'tom1' }, { tick: 508, type: 'kick' }, { tick: 544, type: 'kick' }, { tick: 572, type: 'kick' }, { tick: 572, type: 'tom1' }, { tick: 603, type: 'kick' }, { tick: 633, type: 'tom1' }, { tick: 635, type: 'kick' }, { tick: 666, type: 'kick' }, { tick: 692, type: 'tom1' }, { tick: 692, type: 'kick' }, { tick: 724, type: 'kick' }, { tick: 753, type: 'kick' }, { tick: 753, type: 'tom1' }, { tick: 785, type: 'kick' }, { tick: 815, type: 'tom1' }, { tick: 815, type: 'kick' }, { tick: 842, type: 'kick' }, { tick: 874, type: 'tom1' }, { tick: 874, type: 'kick' }, { tick: 908, type: 'kick' }, { tick: 937, type: 'kick' }, { tick: 937, type: 'tom1' }, { tick: 967, type: 'kick' }, { tick: 995, type: 'kick' }, { tick: 995, type: 'tom1' }, { tick: 1025, type: 'kick' }, { tick: 1052, type: 'tom1' }, { tick: 1056, type: 'kick' }, { tick: 1089, type: 'kick' }, { tick: 1117, type: 'kick' }, { tick: 1117, type: 'tom1' }, { tick: 1148, type: 'kick' }, { tick: 1178, type: 'tom1' }, { tick: 1178, type: 'kick' }, { tick: 1209, type: 'kick' }, { tick: 1239, type: 'tom1' }, { tick: 1241, type: 'kick' }, { tick: 1272, type: 'kick' }, { tick: 1299, type: 'tom1' }, { tick: 1299, type: 'kick' }, { tick: 1331, type: 'kick' }, { tick: 1358, type: 'tom1' }, { tick: 1358, type: 'kick' }, { tick: 1391, type: 'kick' }, { tick: 1419, type: 'tom1' }, { tick: 1419, type: 'kick' }, { tick: 1452, type: 'kick' }, { tick: 1482, type: 'snare' }, { tick: 1482, type: 'kick' }, { tick: 1514, type: 'kick' }, { tick: 1543, type: 'snare' }, { tick: 1543, type: 'kick' }, { tick: 1576, type: 'kick' }, { tick: 1603, type: 'snare' }, { tick: 1603, type: 'kick' }, { tick: 1634, type: 'kick' }, { tick: 1663, type: 'snare' }, { tick: 1663, type: 'kick' }, { tick: 1696, type: 'kick' }, { tick: 1724, type: 'snare' }, { tick: 1724, type: 'kick' }, { tick: 1757, type: 'kick' }, { tick: 1785, type: 'snare' }, { tick: 1785, type: 'kick' }, { tick: 1818, type: 'kick' }, { tick: 1843, type: 'snare' }, { tick: 1843, type: 'kick' }, { tick: 1876, type: 'kick' }, { tick: 1905, type: 'snare' }, { tick: 1907, type: 'kick' }, { tick: 1939, type: 'kick' }, { tick: 1966, type: 'snare' }, { tick: 1966, type: 'kick' }, { tick: 2001, type: 'kick' }, { tick: 2027, type: 'snare' }, { tick: 2027, type: 'kick' }, { tick: 2058, type: 'kick' }, { tick: 2086, type: 'snare' }, { tick: 2086, type: 'kick' }, { tick: 2119, type: 'kick' }, { tick: 2146, type: 'snare' }, { tick: 2146, type: 'kick' }, { tick: 2181, type: 'kick' }, { tick: 2210, type: 'snare' }, { tick: 2210, type: 'kick' }, { tick: 2244, type: 'kick' }, { tick: 2269, type: 'kick' }, { tick: 2269, type: 'snare' }, { tick: 2302, type: 'kick' }, { tick: 2328, type: 'snare' }, { tick: 2330, type: 'kick' }, { tick: 2363, type: 'kick' }, { tick: 2391, type: 'snare' }, { tick: 2391, type: 'kick' }, { tick: 2421, type: 'crash1' }, { tick: 2421, type: 'kick' }, { tick: 2446, type: 'tom1' }, { tick: 2455, type: 'tom1' }, { tick: 2475, type: 'tom1' }, { tick: 2490, type: 'tom1' }, { tick: 2507, type: 'tom1' }, { tick: 2522, type: 'tom1' }, { tick: 2541, type: 'kick' }, { tick: 2541, type: 'crash1' }, { tick: 2553, type: 'tom1' }, { tick: 2571, type: 'tom1' }, { tick: 2582, type: 'tom1' }, { tick: 2596, type: 'tom1' }, { tick: 2610, type: 'tom1' }, { tick: 2623, type: 'tom1' }, { tick: 2636, type: 'tom1' }, { tick: 2651, type: 'tom1' }, { tick: 2666, type: 'crash1' }, { tick: 2666, type: 'kick' }, { tick: 2700, type: 'snare' }, { tick: 2728, type: 'crash1' }, { tick: 2728, type: 'kick' }, { tick: 2753, type: 'snare' }, { tick: 2755, type: 'crash1' }, { tick: 2784, type: 'crash1' }, { tick: 2784, type: 'kick' }, { tick: 2814, type: 'snare' }, { tick: 2814, type: 'crash1' }, { tick: 2847, type: 'crash1' }, { tick: 2847, type: 'kick' }, { tick: 2876, type: 'snare' }, { tick: 2876, type: 'crash1' }, { tick: 2906, type: 'crash1' }, { tick: 2906, type: 'kick' }, { tick: 2937, type: 'crash1' }, { tick: 2937, type: 'snare' }, { tick: 2967, type: 'crash1' }, { tick: 2967, type: 'kick' }, { tick: 2990, type: 'crash1' }, { tick: 2990, type: 'kick' }, { tick: 3013, type: 'snare' }, { tick: 3013, type: 'crash1' }, { tick: 3032, type: 'crash1' }, { tick: 3032, type: 'kick' }, { tick: 3059, type: 'snare' }, { tick: 3059, type: 'crash1' }, { tick: 3089, type: 'kick' }, { tick: 3089, type: 'crash1' }, { tick: 3120, type: 'snare' }, { tick: 3151, type: 'crash1' }, { tick: 3151, type: 'kick' }, { tick: 3180, type: 'crash1' }, { tick: 3180, type: 'snare' }, { tick: 3210, type: 'crash1' }, { tick: 3210, type: 'kick' }, { tick: 3236, type: 'crash1' }, { tick: 3236, type: 'snare' }, { tick: 3269, type: 'kick' }, { tick: 3269, type: 'crash1' }, { tick: 3300, type: 'crash1' }, { tick: 3300, type: 'snare' }, { tick: 3332, type: 'crash1' }, { tick: 3332, type: 'kick' }, { tick: 3359, type: 'snare' }, { tick: 3359, type: 'crash1' }, { tick: 3393, type: 'crash1' }, { tick: 3393, type: 'kick' }, { tick: 3424, type: 'crash1' }, { tick: 3424, type: 'snare' }, { tick: 3454, type: 'crash1' }, { tick: 3454, type: 'kick' }, { tick: 3476, type: 'crash1' }, { tick: 3476, type: 'kick' }, { tick: 3500, type: 'crash1' }, { tick: 3500, type: 'snare' }, { tick: 3519, type: 'crash1' }, { tick: 3519, type: 'kick' }, { tick: 3546, type: 'snare' }, { tick: 3546, type: 'crash1' }, { tick: 3576, type: 'crash1' }, { tick: 3576, type: 'kick' }, { tick: 3606, type: 'snare' }, { tick: 3606, type: 'crash1' }, { tick: 3636, type: 'crash1' }, { tick: 3636, type: 'kick' }, { tick: 3650, type: 'tom1' }, { tick: 3667, type: 'tom1' }, { tick: 3680, type: 'tom1' }, { tick: 3697, type: 'tom1' }, { tick: 3711, type: 'tom1' }, { tick: 3725, type: 'tom1' }, { tick: 3742, type: 'tom1' }, { tick: 3758, type: 'crash1' }, { tick: 3758, type: 'kick' }, { tick: 3771, type: 'tom1' }, { tick: 3783, type: 'tom1' }, { tick: 3798, type: 'tom1' }, { tick: 3815, type: 'tom1' }, { tick: 3831, type: 'tom1' }, { tick: 3846, type: 'tom1' }, { tick: 3860, type: 'tom1' }, { tick: 3876, type: 'kick' }, { tick: 3876, type: 'crash1' }, { tick: 4362, type: 'kick' }, { tick: 4389, type: 'kick' }, { tick: 4389, type: 'tom1' }, { tick: 4423, type: 'kick' }, { tick: 4451, type: 'kick' }, { tick: 4451, type: 'tom1' }, { tick: 4484, type: 'kick' }, { tick: 4510, type: 'tom1' }, { tick: 4512, type: 'kick' }, { tick: 4547, type: 'kick' }, { tick: 4573, type: 'kick' }, { tick: 4573, type: 'tom1' }, { tick: 4606, type: 'kick' }, { tick: 4636, type: 'kick' }, { tick: 4636, type: 'tom1' }, { tick: 4669, type: 'kick' }, { tick: 4695, type: 'tom1' }, { tick: 4695, type: 'kick' }, { tick: 4731, type: 'kick' }, { tick: 4756, type: 'tom1' }, { tick: 4756, type: 'kick' }, { tick: 4792, type: 'kick' }, { tick: 4816, type: 'kick' }, { tick: 4816, type: 'tom1' }, { tick: 4851, type: 'kick' }, { tick: 4878, type: 'kick' }, { tick: 4878, type: 'tom1' }, { tick: 4910, type: 'kick' }, { tick: 4937, type: 'kick' }, { tick: 4937, type: 'tom1' }, { tick: 4969, type: 'kick' }, { tick: 4998, type: 'kick' }, { tick: 4998, type: 'tom1' }, { tick: 5032, type: 'kick' }, { tick: 5059, type: 'tom1' }, { tick: 5059, type: 'kick' }, { tick: 5091, type: 'kick' }, { tick: 5119, type: 'kick' }, { tick: 5119, type: 'tom1' }, { tick: 5151, type: 'kick' }, { tick: 5180, type: 'kick' }, { tick: 5180, type: 'tom1' }, { tick: 5214, type: 'kick' }, { tick: 5240, type: 'kick' }, { tick: 5240, type: 'tom1' }, { tick: 5276, type: 'kick' }, { tick: 5302, type: 'tom1' }, { tick: 5302, type: 'kick' }, { tick: 5335, type: 'kick' }, { tick: 5359, type: 'tom1' }, { tick: 5361, type: 'kick' }, { tick: 5395, type: 'kick' }, { tick: 5422, type: 'tom1' }, { tick: 5423, type: 'kick' }, { tick: 5455, type: 'kick' }, { tick: 5481, type: 'kick' }, { tick: 5481, type: 'tom1' }, { tick: 5516, type: 'kick' }, { tick: 5546, type: 'kick' }, { tick: 5546, type: 'tom1' }, { tick: 5576, type: 'kick' }, { tick: 5603, type: 'kick' }, { tick: 5603, type: 'tom1' }, { tick: 5636, type: 'kick' }, { tick: 5664, type: 'tom1' }, { tick: 5664, type: 'kick' }, { tick: 5696, type: 'kick' }, { tick: 5727, type: 'tom1' }, { tick: 5727, type: 'kick' }, { tick: 5760, type: 'kick' }, { tick: 5788, type: 'tom1' }, { tick: 5788, type: 'kick' }, { tick: 5819, type: 'kick' }, { tick: 5848, type: 'kick' }, { tick: 5848, type: 'snare' }, { tick: 5881, type: 'kick' }, { tick: 5911, type: 'kick' }, { tick: 5911, type: 'snare' }, { tick: 5941, type: 'kick' }, { tick: 5969, type: 'snare' }, { tick: 5969, type: 'kick' }, { tick: 6002, type: 'kick' }, { tick: 6031, type: 'snare' }, { tick: 6032, type: 'kick' }, { tick: 6064, type: 'kick' }, { tick: 6091, type: 'snare' }, { tick: 6091, type: 'kick' }, { tick: 6122, type: 'kick' }, { tick: 6149, type: 'snare' }, { tick: 6149, type: 'kick' }, { tick: 6182, type: 'kick' }, { tick: 6208, type: 'snare' }, { tick: 6210, type: 'kick' }, { tick: 6243, type: 'kick' }, { tick: 6269, type: 'snare' }, { tick: 6269, type: 'kick' }, { tick: 6300, type: 'kick' }, { tick: 6328, type: 'snare' }, { tick: 6328, type: 'kick' }, { tick: 6363, type: 'kick' }, { tick: 6389, type: 'snare' }, { tick: 6389, type: 'kick' }, { tick: 6421, type: 'kick' }, { tick: 6447, type: 'snare' }, { tick: 6449, type: 'kick' }, { tick: 6482, type: 'kick' }, { tick: 6510, type: 'snare' }, { tick: 6512, type: 'kick' }, { tick: 6543, type: 'kick' }, { tick: 6572, type: 'snare' }, { tick: 6572, type: 'kick' }, { tick: 6608, type: 'kick' }, { tick: 6634, type: 'kick' }, { tick: 6634, type: 'snare' }, { tick: 6667, type: 'kick' }, { tick: 6693, type: 'snare' }, { tick: 6693, type: 'kick' }, { tick: 6729, type: 'kick' }, { tick: 6756, type: 'snare' }, { tick: 6756, type: 'kick' }, { tick: 6787, type: 'kick' }, { tick: 6787, type: 'crash1' }, { tick: 6803, type: 'tom1' }, { tick: 6818, type: 'tom1' }, { tick: 6831, type: 'tom1' }, { tick: 6849, type: 'tom1' }, { tick: 6864, type: 'tom1' }, { tick: 6878, type: 'tom1' }, { tick: 6894, type: 'tom1' }, { tick: 6909, type: 'kick' }, { tick: 6909, type: 'crash1' }, { tick: 6924, type: 'tom1' }, { tick: 6938, type: 'tom1' }, { tick: 6952, type: 'tom1' }, { tick: 6967, type: 'tom1' }, { tick: 6982, type: 'tom1' }, { tick: 6998, type: 'tom1' }, { tick: 7010, type: 'tom1' }, { tick: 7032, type: 'kick' }, { tick: 7032, type: 'crash1' }, { tick: 7056, type: 'snare' }, { tick: 7056, type: 'crash1' }, { tick: 7088, type: 'kick' }, { tick: 7088, type: 'crash1' }, { tick: 7119, type: 'crash1' }, { tick: 7119, type: 'snare' }, { tick: 7150, type: 'kick' }, { tick: 7150, type: 'crash1' }, { tick: 7178, type: 'snare' }, { tick: 7180, type: 'crash1' }, { tick: 7211, type: 'crash1' }, { tick: 7211, type: 'kick' }, { tick: 7242, type: 'crash1' }, { tick: 7242, type: 'snare' }, { tick: 7273, type: 'crash1' }, { tick: 7273, type: 'kick' }, { tick: 7304, type: 'snare' }, { tick: 7304, type: 'crash1' }, { tick: 7334, type: 'kick' }, { tick: 7334, type: 'crash1' }, { tick: 7356, type: 'crash1' }, { tick: 7356, type: 'kick' }, { tick: 7379, type: 'snare' }, { tick: 7381, type: 'crash1' }, { tick: 7401, type: 'crash1' }, { tick: 7401, type: 'kick' }, { tick: 7425, type: 'crash1' }, { tick: 7425, type: 'snare' }, { tick: 7454, type: 'crash1' }, { tick: 7454, type: 'kick' }, { tick: 7484, type: 'snare' }, { tick: 7484, type: 'crash1' }, { tick: 7513, type: 'kick' }, { tick: 7513, type: 'crash1' }, { tick: 7545, type: 'snare' }, { tick: 7545, type: 'crash1' }, { tick: 7576, type: 'crash1' }, { tick: 7576, type: 'kick' }, { tick: 7605, type: 'crash1' }, { tick: 7605, type: 'snare' }, { tick: 7636, type: 'crash1' }, { tick: 7636, type: 'kick' }, { tick: 7664, type: 'crash1' }, { tick: 7664, type: 'snare' }, { tick: 7693, type: 'crash1' }, { tick: 7693, type: 'kick' }, { tick: 7725, type: 'snare' }, { tick: 7725, type: 'crash1' }, { tick: 7757, type: 'crash1' }, { tick: 7757, type: 'kick' }, { tick: 7788, type: 'crash1' }, { tick: 7788, type: 'snare' }, { tick: 7817, type: 'kick' }, { tick: 7817, type: 'crash1' }, { tick: 7839, type: 'crash1' }, { tick: 7839, type: 'kick' }, { tick: 7865, type: 'crash1' }, { tick: 7865, type: 'snare' }, { tick: 7883, type: 'crash1' }, { tick: 7883, type: 'kick' }, { tick: 7910, type: 'crash1' }, { tick: 7910, type: 'snare' }, { tick: 7939, type: 'kick' }, { tick: 7939, type: 'crash1' }, { tick: 7970, type: 'crash1' }, { tick: 7970, type: 'snare' }, { tick: 8000, type: 'crash1' }, { tick: 8000, type: 'kick' }, { tick: 8030, type: 'crash1' }, { tick: 8030, type: 'snare' }, { tick: 8060, type: 'crash1' }, { tick: 8060, type: 'kick' }, { tick: 8090, type: 'crash1' }, { tick: 8090, type: 'snare' }, { tick: 8120, type: 'crash1' }, { tick: 8120, type: 'kick' }, { tick: 8149, type: 'snare' }, { tick: 8149, type: 'crash1' }, { tick: 8181, type: 'crash1' }, { tick: 8181, type: 'kick' }, { tick: 8212, type: 'snare' }, { tick: 8212, type: 'crash1' }, { tick: 8242, type: 'kick' }, { tick: 8242, type: 'crash1' }, { tick: 8274, type: 'crash1' }, { tick: 8274, type: 'snare' }, { tick: 8302, type: 'crash1' }, { tick: 8302, type: 'kick' }, { tick: 8329, type: 'crash1' }, { tick: 8329, type: 'kick' }, { tick: 8354, type: 'snare' }, { tick: 8356, type: 'crash1' }, { tick: 8372, type: 'crash1' }, { tick: 8372, type: 'kick' }, { tick: 8395, type: 'snare' }, { tick: 8395, type: 'crash1' }, { tick: 8423, type: 'kick' }, { tick: 8423, type: 'crash1' }, { tick: 8454, type: 'snare' }, { tick: 8454, type: 'crash1' }, { tick: 8484, type: 'crash1' }, { tick: 8484, type: 'kick' }, { tick: 8517, type: 'crash1' }, { tick: 8517, type: 'snare' }, { tick: 8547, type: 'crash1' }, { tick: 8547, type: 'kick' }, { tick: 8574, type: 'crash1' }, { tick: 8574, type: 'snare' }, { tick: 8608, type: 'crash1' }, { tick: 8608, type: 'kick' }, { tick: 8635, type: 'snare' }, { tick: 8637, type: 'crash1' }, { tick: 8667, type: 'crash1' }, { tick: 8669, type: 'kick' }, { tick: 8697, type: 'crash1' }, { tick: 8697, type: 'snare' }, { tick: 8729, type: 'crash1' }, { tick: 8729, type: 'kick' }, { tick: 8758, type: 'crash1' }, { tick: 8758, type: 'snare' }, { tick: 8790, type: 'kick' }, { tick: 8790, type: 'crash1' }, { tick: 8813, type: 'crash1' }, { tick: 8813, type: 'kick' }, { tick: 8835, type: 'snare' }, { tick: 8839, type: 'crash1' }, { tick: 8856, type: 'crash1' }, { tick: 8856, type: 'kick' }, { tick: 8882, type: 'crash1' }, { tick: 8882, type: 'snare' }, { tick: 8911, type: 'crash1' }, { tick: 8911, type: 'kick' }, { tick: 8940, type: 'crash1' }, { tick: 8940, type: 'snare' }, { tick: 8971, type: 'kick' }, { tick: 8971, type: 'crash1' }, { tick: 8987, type: 'tom1' }, { tick: 9001, type: 'tom1' }, { tick: 9014, type: 'tom1' }, { tick: 9030, type: 'tom1' }, { tick: 9043, type: 'tom1' }, { tick: 9060, type: 'tom1' }, { tick: 9074, type: 'tom1' }, { tick: 9091, type: 'kick' }, { tick: 9091, type: 'crash1' }, { tick: 9106, type: 'tom1' }, { tick: 9119, type: 'tom1' }, { tick: 9134, type: 'tom1' }, { tick: 9149, type: 'tom1' }, { tick: 9162, type: 'tom1' }, { tick: 9174, type: 'tom1' }, { tick: 9188, type: 'tom1' }, { tick: 9212, type: 'kick' }, { tick: 9212, type: 'crash1' }] }]; // Current level index and songNotes reference var currentLevelIndex = 0; var songNotes = LEVELS[0].notes; var currentMusic = LEVELS[0].music; // Level progression system var unlockedLevels = storage.unlockedLevels || 1; // Number of unlocked levels, default 1 (only beginner) var levelOrder = [3, 2, 1, 0]; // Beginner(3) -> Easy(2) -> Medium(1) -> Hard(0) // Function to check if a level is unlocked function isLevelUnlocked(levelIndex) { // If developer mode is on, unlock all levels if (isDeveloperMode) { return true; } var orderIndex = levelOrder.indexOf(levelIndex); return orderIndex >= 0 && orderIndex < unlockedLevels; } // Function to unlock next level function unlockNextLevel() { if (unlockedLevels < levelOrder.length) { unlockedLevels++; storage.unlockedLevels = unlockedLevels; updateLevelButtonStates(); } } // --- 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); } }; // Developer mode toggle button (250 pixels above play button, smaller size) var isDeveloperMode = false; // Always start as off var devModeBtn = new Text2("Developer mode: off", { size: 30, fill: 0xFF0000, // Red for off font: "Impact" }); devModeBtn.anchor.set(0.5, 0.5); devModeBtn.x = 0; devModeBtn.y = playBtn.y - 250; devModeBtn.interactive = true; devModeBtn.buttonMode = true; devModeBtn.down = function () { isDeveloperMode = !isDeveloperMode; storage.developerMode = isDeveloperMode; devModeBtn.setText("Developer mode: " + (isDeveloperMode ? "on" : "off")); devModeBtn.fill = isDeveloperMode ? "#00FF00" : "#FF0000"; // Update recording UI visibility based on developer mode if (recordTxt) { recordTxt.visible = isDeveloperMode && scoreTxt.visible; } // Update level button states when developer mode changes updateLevelButtonStates(); }; introColumn.addChild(devModeBtn); // --- 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); // Back button to return to intro screen var backBtnBg = LK.getAsset('levelButton', { anchorX: 0.5, anchorY: 0.5, x: 0, y: levelSelectTitle.y - 150, width: 400, height: 80 }); var backBtn = new Text2("← Back", { size: 60, fill: "#fff", font: "Impact" }); backBtn.anchor.set(0.5, 0.5); backBtn.x = 0; backBtn.y = levelSelectTitle.y - 150; backBtn.interactive = true; backBtn.buttonMode = true; backBtn.down = function () { levelSelectContainer.visible = false; introContainer.visible = true; // Restart tip cycling when returning to intro screen startTipCycling(); }; levelSelectColumn.addChild(backBtnBg); levelSelectColumn.addChild(backBtn); // Level buttons, stacked vertically, centered below the title var levelButtons = []; var levelButtonBackgrounds = []; var levelBtnSpacing = 220; var firstBtnY = levelSelectTitle.y + 180; function updateLevelButtonStates() { for (var i = 0; i < LEVELS.length; i++) { var isUnlocked = isLevelUnlocked(i); var btn = levelButtons[i]; var btnBg = levelButtonBackgrounds[i]; if (isUnlocked) { btn.alpha = 1.0; btn.fill = "#fff"; btnBg.alpha = 1.0; btn.interactive = true; btn.buttonMode = true; } else { btn.alpha = 0.4; btn.fill = "#888"; btnBg.alpha = 0.4; btn.interactive = false; btn.buttonMode = false; } } } 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 }); levelButtonBackgrounds.push(btnBg); // Button text var btnText = LEVELS[idx].name; var btn = new Text2(btnText, { size: 100, fill: "#fff", font: "Impact" }); btn.anchor.set(0.5, 0.5); btn.x = 0; btn.y = firstBtnY + idx * levelBtnSpacing; btn.down = function () { if (isLevelUnlocked(idx)) { selectLevel(idx); } }; levelSelectColumn.addChild(btnBg); levelSelectColumn.addChild(btn); levelButtons.push(btn); })(i); } // Initialize button states updateLevelButtonStates(); // --- 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) { if (!isLevelUnlocked(idx)) { return; // Don't allow selection of locked levels } currentLevelIndex = idx; songNotes = LEVELS[idx].notes; currentMusic = LEVELS[idx].music; levelSelectContainer.visible = false; scoreTxt.visible = true; comboTxt.visible = true; recordTxt.visible = isDeveloperMode; 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 (!isDeveloperMode) { return; // Don't allow recording if developer mode is off } 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 && isDeveloperMode) { 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("Not Quite\nMy Tempo!!", { size: 160, 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(); // Check if level was completed successfully (level progression) var levelCompleted = score > 0; // Basic completion criteria if (levelCompleted) { // Find current level in order and unlock next if needed var currentOrderIndex = levelOrder.indexOf(currentLevelIndex); if (currentOrderIndex >= 0 && currentOrderIndex === unlockedLevels - 1) { // This was the latest unlocked level, unlock the next one unlockNextLevel(); } } // 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
@@ -6003,79 +6003,1558 @@
notes: [{
tick: 0,
type: 'kick'
}, {
- tick: 30,
+ tick: 24,
+ type: 'tom1'
+ }, {
+ tick: 24,
+ type: 'kick'
+ }, {
+ tick: 57,
+ type: 'kick'
+ }, {
+ tick: 82,
+ type: 'tom1'
+ }, {
+ tick: 82,
+ type: 'kick'
+ }, {
+ tick: 117,
+ type: 'kick'
+ }, {
+ tick: 145,
+ type: 'tom1'
+ }, {
+ tick: 147,
+ type: 'kick'
+ }, {
+ tick: 175,
+ type: 'kick'
+ }, {
+ tick: 208,
+ type: 'tom1'
+ }, {
+ tick: 208,
+ type: 'kick'
+ }, {
+ tick: 239,
+ type: 'kick'
+ }, {
+ tick: 270,
+ type: 'kick'
+ }, {
+ tick: 270,
+ type: 'tom1'
+ }, {
+ tick: 302,
+ type: 'kick'
+ }, {
+ tick: 329,
+ type: 'kick'
+ }, {
+ tick: 329,
+ type: 'tom1'
+ }, {
+ tick: 362,
+ type: 'kick'
+ }, {
+ tick: 389,
+ type: 'tom1'
+ }, {
+ tick: 389,
+ type: 'kick'
+ }, {
+ tick: 420,
+ type: 'kick'
+ }, {
+ tick: 449,
+ type: 'tom1'
+ }, {
+ tick: 449,
+ type: 'kick'
+ }, {
+ tick: 482,
+ type: 'kick'
+ }, {
+ tick: 508,
+ type: 'tom1'
+ }, {
+ tick: 508,
+ type: 'kick'
+ }, {
+ tick: 544,
+ type: 'kick'
+ }, {
+ tick: 572,
+ type: 'kick'
+ }, {
+ tick: 572,
+ type: 'tom1'
+ }, {
+ tick: 603,
+ type: 'kick'
+ }, {
+ tick: 633,
+ type: 'tom1'
+ }, {
+ tick: 635,
+ type: 'kick'
+ }, {
+ tick: 666,
+ type: 'kick'
+ }, {
+ tick: 692,
+ type: 'tom1'
+ }, {
+ tick: 692,
+ type: 'kick'
+ }, {
+ tick: 724,
+ type: 'kick'
+ }, {
+ tick: 753,
+ type: 'kick'
+ }, {
+ tick: 753,
+ type: 'tom1'
+ }, {
+ tick: 785,
+ type: 'kick'
+ }, {
+ tick: 815,
+ type: 'tom1'
+ }, {
+ tick: 815,
+ type: 'kick'
+ }, {
+ tick: 842,
+ type: 'kick'
+ }, {
+ tick: 874,
+ type: 'tom1'
+ }, {
+ tick: 874,
+ type: 'kick'
+ }, {
+ tick: 908,
+ type: 'kick'
+ }, {
+ tick: 937,
+ type: 'kick'
+ }, {
+ tick: 937,
+ type: 'tom1'
+ }, {
+ tick: 967,
+ type: 'kick'
+ }, {
+ tick: 995,
+ type: 'kick'
+ }, {
+ tick: 995,
+ type: 'tom1'
+ }, {
+ tick: 1025,
+ type: 'kick'
+ }, {
+ tick: 1052,
+ type: 'tom1'
+ }, {
+ tick: 1056,
+ type: 'kick'
+ }, {
+ tick: 1089,
+ type: 'kick'
+ }, {
+ tick: 1117,
+ type: 'kick'
+ }, {
+ tick: 1117,
+ type: 'tom1'
+ }, {
+ tick: 1148,
+ type: 'kick'
+ }, {
+ tick: 1178,
+ type: 'tom1'
+ }, {
+ tick: 1178,
+ type: 'kick'
+ }, {
+ tick: 1209,
+ type: 'kick'
+ }, {
+ tick: 1239,
+ type: 'tom1'
+ }, {
+ tick: 1241,
+ type: 'kick'
+ }, {
+ tick: 1272,
+ type: 'kick'
+ }, {
+ tick: 1299,
+ type: 'tom1'
+ }, {
+ tick: 1299,
+ type: 'kick'
+ }, {
+ tick: 1331,
+ type: 'kick'
+ }, {
+ tick: 1358,
+ type: 'tom1'
+ }, {
+ tick: 1358,
+ type: 'kick'
+ }, {
+ tick: 1391,
+ type: 'kick'
+ }, {
+ tick: 1419,
+ type: 'tom1'
+ }, {
+ tick: 1419,
+ type: 'kick'
+ }, {
+ tick: 1452,
+ type: 'kick'
+ }, {
+ tick: 1482,
type: 'snare'
}, {
- tick: 60,
- type: 'hihat'
+ tick: 1482,
+ type: 'kick'
}, {
- tick: 90,
+ tick: 1514,
+ type: 'kick'
+ }, {
+ tick: 1543,
+ type: 'snare'
+ }, {
+ tick: 1543,
+ type: 'kick'
+ }, {
+ tick: 1576,
+ type: 'kick'
+ }, {
+ tick: 1603,
+ type: 'snare'
+ }, {
+ tick: 1603,
+ type: 'kick'
+ }, {
+ tick: 1634,
+ type: 'kick'
+ }, {
+ tick: 1663,
+ type: 'snare'
+ }, {
+ tick: 1663,
+ type: 'kick'
+ }, {
+ tick: 1696,
+ type: 'kick'
+ }, {
+ tick: 1724,
+ type: 'snare'
+ }, {
+ tick: 1724,
+ type: 'kick'
+ }, {
+ tick: 1757,
+ type: 'kick'
+ }, {
+ tick: 1785,
+ type: 'snare'
+ }, {
+ tick: 1785,
+ type: 'kick'
+ }, {
+ tick: 1818,
+ type: 'kick'
+ }, {
+ tick: 1843,
+ type: 'snare'
+ }, {
+ tick: 1843,
+ type: 'kick'
+ }, {
+ tick: 1876,
+ type: 'kick'
+ }, {
+ tick: 1905,
+ type: 'snare'
+ }, {
+ tick: 1907,
+ type: 'kick'
+ }, {
+ tick: 1939,
+ type: 'kick'
+ }, {
+ tick: 1966,
+ type: 'snare'
+ }, {
+ tick: 1966,
+ type: 'kick'
+ }, {
+ tick: 2001,
+ type: 'kick'
+ }, {
+ tick: 2027,
+ type: 'snare'
+ }, {
+ tick: 2027,
+ type: 'kick'
+ }, {
+ tick: 2058,
+ type: 'kick'
+ }, {
+ tick: 2086,
+ type: 'snare'
+ }, {
+ tick: 2086,
+ type: 'kick'
+ }, {
+ tick: 2119,
+ type: 'kick'
+ }, {
+ tick: 2146,
+ type: 'snare'
+ }, {
+ tick: 2146,
+ type: 'kick'
+ }, {
+ tick: 2181,
+ type: 'kick'
+ }, {
+ tick: 2210,
+ type: 'snare'
+ }, {
+ tick: 2210,
+ type: 'kick'
+ }, {
+ tick: 2244,
+ type: 'kick'
+ }, {
+ tick: 2269,
+ type: 'kick'
+ }, {
+ tick: 2269,
+ type: 'snare'
+ }, {
+ tick: 2302,
+ type: 'kick'
+ }, {
+ tick: 2328,
+ type: 'snare'
+ }, {
+ tick: 2330,
+ type: 'kick'
+ }, {
+ tick: 2363,
+ type: 'kick'
+ }, {
+ tick: 2391,
+ type: 'snare'
+ }, {
+ tick: 2391,
+ type: 'kick'
+ }, {
+ tick: 2421,
+ type: 'crash1'
+ }, {
+ tick: 2421,
+ type: 'kick'
+ }, {
+ tick: 2446,
type: 'tom1'
}, {
- tick: 120,
+ tick: 2455,
+ type: 'tom1'
+ }, {
+ tick: 2475,
+ type: 'tom1'
+ }, {
+ tick: 2490,
+ type: 'tom1'
+ }, {
+ tick: 2507,
+ type: 'tom1'
+ }, {
+ tick: 2522,
+ type: 'tom1'
+ }, {
+ tick: 2541,
+ type: 'kick'
+ }, {
+ tick: 2541,
type: 'crash1'
}, {
- tick: 150,
+ tick: 2553,
+ type: 'tom1'
+ }, {
+ tick: 2571,
+ type: 'tom1'
+ }, {
+ tick: 2582,
+ type: 'tom1'
+ }, {
+ tick: 2596,
+ type: 'tom1'
+ }, {
+ tick: 2610,
+ type: 'tom1'
+ }, {
+ tick: 2623,
+ type: 'tom1'
+ }, {
+ tick: 2636,
+ type: 'tom1'
+ }, {
+ tick: 2651,
+ type: 'tom1'
+ }, {
+ tick: 2666,
+ type: 'crash1'
+ }, {
+ tick: 2666,
type: 'kick'
}, {
- tick: 180,
+ tick: 2700,
type: 'snare'
}, {
- tick: 210,
- type: 'hihat'
+ tick: 2728,
+ type: 'crash1'
}, {
- tick: 240,
- type: 'tom1'
+ tick: 2728,
+ type: 'kick'
}, {
- tick: 270,
+ tick: 2753,
+ type: 'snare'
+ }, {
+ tick: 2755,
type: 'crash1'
}, {
- tick: 300,
+ tick: 2784,
+ type: 'crash1'
+ }, {
+ tick: 2784,
type: 'kick'
}, {
- tick: 330,
+ tick: 2814,
type: 'snare'
}, {
- tick: 360,
- type: 'hihat'
+ tick: 2814,
+ type: 'crash1'
}, {
- tick: 390,
+ tick: 2847,
+ type: 'crash1'
+ }, {
+ tick: 2847,
+ type: 'kick'
+ }, {
+ tick: 2876,
+ type: 'snare'
+ }, {
+ tick: 2876,
+ type: 'crash1'
+ }, {
+ tick: 2906,
+ type: 'crash1'
+ }, {
+ tick: 2906,
+ type: 'kick'
+ }, {
+ tick: 2937,
+ type: 'crash1'
+ }, {
+ tick: 2937,
+ type: 'snare'
+ }, {
+ tick: 2967,
+ type: 'crash1'
+ }, {
+ tick: 2967,
+ type: 'kick'
+ }, {
+ tick: 2990,
+ type: 'crash1'
+ }, {
+ tick: 2990,
+ type: 'kick'
+ }, {
+ tick: 3013,
+ type: 'snare'
+ }, {
+ tick: 3013,
+ type: 'crash1'
+ }, {
+ tick: 3032,
+ type: 'crash1'
+ }, {
+ tick: 3032,
+ type: 'kick'
+ }, {
+ tick: 3059,
+ type: 'snare'
+ }, {
+ tick: 3059,
+ type: 'crash1'
+ }, {
+ tick: 3089,
+ type: 'kick'
+ }, {
+ tick: 3089,
+ type: 'crash1'
+ }, {
+ tick: 3120,
+ type: 'snare'
+ }, {
+ tick: 3151,
+ type: 'crash1'
+ }, {
+ tick: 3151,
+ type: 'kick'
+ }, {
+ tick: 3180,
+ type: 'crash1'
+ }, {
+ tick: 3180,
+ type: 'snare'
+ }, {
+ tick: 3210,
+ type: 'crash1'
+ }, {
+ tick: 3210,
+ type: 'kick'
+ }, {
+ tick: 3236,
+ type: 'crash1'
+ }, {
+ tick: 3236,
+ type: 'snare'
+ }, {
+ tick: 3269,
+ type: 'kick'
+ }, {
+ tick: 3269,
+ type: 'crash1'
+ }, {
+ tick: 3300,
+ type: 'crash1'
+ }, {
+ tick: 3300,
+ type: 'snare'
+ }, {
+ tick: 3332,
+ type: 'crash1'
+ }, {
+ tick: 3332,
+ type: 'kick'
+ }, {
+ tick: 3359,
+ type: 'snare'
+ }, {
+ tick: 3359,
+ type: 'crash1'
+ }, {
+ tick: 3393,
+ type: 'crash1'
+ }, {
+ tick: 3393,
+ type: 'kick'
+ }, {
+ tick: 3424,
+ type: 'crash1'
+ }, {
+ tick: 3424,
+ type: 'snare'
+ }, {
+ tick: 3454,
+ type: 'crash1'
+ }, {
+ tick: 3454,
+ type: 'kick'
+ }, {
+ tick: 3476,
+ type: 'crash1'
+ }, {
+ tick: 3476,
+ type: 'kick'
+ }, {
+ tick: 3500,
+ type: 'crash1'
+ }, {
+ tick: 3500,
+ type: 'snare'
+ }, {
+ tick: 3519,
+ type: 'crash1'
+ }, {
+ tick: 3519,
+ type: 'kick'
+ }, {
+ tick: 3546,
+ type: 'snare'
+ }, {
+ tick: 3546,
+ type: 'crash1'
+ }, {
+ tick: 3576,
+ type: 'crash1'
+ }, {
+ tick: 3576,
+ type: 'kick'
+ }, {
+ tick: 3606,
+ type: 'snare'
+ }, {
+ tick: 3606,
+ type: 'crash1'
+ }, {
+ tick: 3636,
+ type: 'crash1'
+ }, {
+ tick: 3636,
+ type: 'kick'
+ }, {
+ tick: 3650,
type: 'tom1'
}, {
- tick: 420,
+ tick: 3667,
+ type: 'tom1'
+ }, {
+ tick: 3680,
+ type: 'tom1'
+ }, {
+ tick: 3697,
+ type: 'tom1'
+ }, {
+ tick: 3711,
+ type: 'tom1'
+ }, {
+ tick: 3725,
+ type: 'tom1'
+ }, {
+ tick: 3742,
+ type: 'tom1'
+ }, {
+ tick: 3758,
type: 'crash1'
}, {
- tick: 450,
+ tick: 3758,
type: 'kick'
}, {
- tick: 480,
+ tick: 3771,
+ type: 'tom1'
+ }, {
+ tick: 3783,
+ type: 'tom1'
+ }, {
+ tick: 3798,
+ type: 'tom1'
+ }, {
+ tick: 3815,
+ type: 'tom1'
+ }, {
+ tick: 3831,
+ type: 'tom1'
+ }, {
+ tick: 3846,
+ type: 'tom1'
+ }, {
+ tick: 3860,
+ type: 'tom1'
+ }, {
+ tick: 3876,
+ type: 'kick'
+ }, {
+ tick: 3876,
+ type: 'crash1'
+ }, {
+ tick: 4362,
+ type: 'kick'
+ }, {
+ tick: 4389,
+ type: 'kick'
+ }, {
+ tick: 4389,
+ type: 'tom1'
+ }, {
+ tick: 4423,
+ type: 'kick'
+ }, {
+ tick: 4451,
+ type: 'kick'
+ }, {
+ tick: 4451,
+ type: 'tom1'
+ }, {
+ tick: 4484,
+ type: 'kick'
+ }, {
+ tick: 4510,
+ type: 'tom1'
+ }, {
+ tick: 4512,
+ type: 'kick'
+ }, {
+ tick: 4547,
+ type: 'kick'
+ }, {
+ tick: 4573,
+ type: 'kick'
+ }, {
+ tick: 4573,
+ type: 'tom1'
+ }, {
+ tick: 4606,
+ type: 'kick'
+ }, {
+ tick: 4636,
+ type: 'kick'
+ }, {
+ tick: 4636,
+ type: 'tom1'
+ }, {
+ tick: 4669,
+ type: 'kick'
+ }, {
+ tick: 4695,
+ type: 'tom1'
+ }, {
+ tick: 4695,
+ type: 'kick'
+ }, {
+ tick: 4731,
+ type: 'kick'
+ }, {
+ tick: 4756,
+ type: 'tom1'
+ }, {
+ tick: 4756,
+ type: 'kick'
+ }, {
+ tick: 4792,
+ type: 'kick'
+ }, {
+ tick: 4816,
+ type: 'kick'
+ }, {
+ tick: 4816,
+ type: 'tom1'
+ }, {
+ tick: 4851,
+ type: 'kick'
+ }, {
+ tick: 4878,
+ type: 'kick'
+ }, {
+ tick: 4878,
+ type: 'tom1'
+ }, {
+ tick: 4910,
+ type: 'kick'
+ }, {
+ tick: 4937,
+ type: 'kick'
+ }, {
+ tick: 4937,
+ type: 'tom1'
+ }, {
+ tick: 4969,
+ type: 'kick'
+ }, {
+ tick: 4998,
+ type: 'kick'
+ }, {
+ tick: 4998,
+ type: 'tom1'
+ }, {
+ tick: 5032,
+ type: 'kick'
+ }, {
+ tick: 5059,
+ type: 'tom1'
+ }, {
+ tick: 5059,
+ type: 'kick'
+ }, {
+ tick: 5091,
+ type: 'kick'
+ }, {
+ tick: 5119,
+ type: 'kick'
+ }, {
+ tick: 5119,
+ type: 'tom1'
+ }, {
+ tick: 5151,
+ type: 'kick'
+ }, {
+ tick: 5180,
+ type: 'kick'
+ }, {
+ tick: 5180,
+ type: 'tom1'
+ }, {
+ tick: 5214,
+ type: 'kick'
+ }, {
+ tick: 5240,
+ type: 'kick'
+ }, {
+ tick: 5240,
+ type: 'tom1'
+ }, {
+ tick: 5276,
+ type: 'kick'
+ }, {
+ tick: 5302,
+ type: 'tom1'
+ }, {
+ tick: 5302,
+ type: 'kick'
+ }, {
+ tick: 5335,
+ type: 'kick'
+ }, {
+ tick: 5359,
+ type: 'tom1'
+ }, {
+ tick: 5361,
+ type: 'kick'
+ }, {
+ tick: 5395,
+ type: 'kick'
+ }, {
+ tick: 5422,
+ type: 'tom1'
+ }, {
+ tick: 5423,
+ type: 'kick'
+ }, {
+ tick: 5455,
+ type: 'kick'
+ }, {
+ tick: 5481,
+ type: 'kick'
+ }, {
+ tick: 5481,
+ type: 'tom1'
+ }, {
+ tick: 5516,
+ type: 'kick'
+ }, {
+ tick: 5546,
+ type: 'kick'
+ }, {
+ tick: 5546,
+ type: 'tom1'
+ }, {
+ tick: 5576,
+ type: 'kick'
+ }, {
+ tick: 5603,
+ type: 'kick'
+ }, {
+ tick: 5603,
+ type: 'tom1'
+ }, {
+ tick: 5636,
+ type: 'kick'
+ }, {
+ tick: 5664,
+ type: 'tom1'
+ }, {
+ tick: 5664,
+ type: 'kick'
+ }, {
+ tick: 5696,
+ type: 'kick'
+ }, {
+ tick: 5727,
+ type: 'tom1'
+ }, {
+ tick: 5727,
+ type: 'kick'
+ }, {
+ tick: 5760,
+ type: 'kick'
+ }, {
+ tick: 5788,
+ type: 'tom1'
+ }, {
+ tick: 5788,
+ type: 'kick'
+ }, {
+ tick: 5819,
+ type: 'kick'
+ }, {
+ tick: 5848,
+ type: 'kick'
+ }, {
+ tick: 5848,
type: 'snare'
}, {
- tick: 510,
- type: 'hihat'
+ tick: 5881,
+ type: 'kick'
}, {
- tick: 540,
+ tick: 5911,
+ type: 'kick'
+ }, {
+ tick: 5911,
+ type: 'snare'
+ }, {
+ tick: 5941,
+ type: 'kick'
+ }, {
+ tick: 5969,
+ type: 'snare'
+ }, {
+ tick: 5969,
+ type: 'kick'
+ }, {
+ tick: 6002,
+ type: 'kick'
+ }, {
+ tick: 6031,
+ type: 'snare'
+ }, {
+ tick: 6032,
+ type: 'kick'
+ }, {
+ tick: 6064,
+ type: 'kick'
+ }, {
+ tick: 6091,
+ type: 'snare'
+ }, {
+ tick: 6091,
+ type: 'kick'
+ }, {
+ tick: 6122,
+ type: 'kick'
+ }, {
+ tick: 6149,
+ type: 'snare'
+ }, {
+ tick: 6149,
+ type: 'kick'
+ }, {
+ tick: 6182,
+ type: 'kick'
+ }, {
+ tick: 6208,
+ type: 'snare'
+ }, {
+ tick: 6210,
+ type: 'kick'
+ }, {
+ tick: 6243,
+ type: 'kick'
+ }, {
+ tick: 6269,
+ type: 'snare'
+ }, {
+ tick: 6269,
+ type: 'kick'
+ }, {
+ tick: 6300,
+ type: 'kick'
+ }, {
+ tick: 6328,
+ type: 'snare'
+ }, {
+ tick: 6328,
+ type: 'kick'
+ }, {
+ tick: 6363,
+ type: 'kick'
+ }, {
+ tick: 6389,
+ type: 'snare'
+ }, {
+ tick: 6389,
+ type: 'kick'
+ }, {
+ tick: 6421,
+ type: 'kick'
+ }, {
+ tick: 6447,
+ type: 'snare'
+ }, {
+ tick: 6449,
+ type: 'kick'
+ }, {
+ tick: 6482,
+ type: 'kick'
+ }, {
+ tick: 6510,
+ type: 'snare'
+ }, {
+ tick: 6512,
+ type: 'kick'
+ }, {
+ tick: 6543,
+ type: 'kick'
+ }, {
+ tick: 6572,
+ type: 'snare'
+ }, {
+ tick: 6572,
+ type: 'kick'
+ }, {
+ tick: 6608,
+ type: 'kick'
+ }, {
+ tick: 6634,
+ type: 'kick'
+ }, {
+ tick: 6634,
+ type: 'snare'
+ }, {
+ tick: 6667,
+ type: 'kick'
+ }, {
+ tick: 6693,
+ type: 'snare'
+ }, {
+ tick: 6693,
+ type: 'kick'
+ }, {
+ tick: 6729,
+ type: 'kick'
+ }, {
+ tick: 6756,
+ type: 'snare'
+ }, {
+ tick: 6756,
+ type: 'kick'
+ }, {
+ tick: 6787,
+ type: 'kick'
+ }, {
+ tick: 6787,
+ type: 'crash1'
+ }, {
+ tick: 6803,
type: 'tom1'
}, {
- tick: 570,
+ tick: 6818,
+ type: 'tom1'
+ }, {
+ tick: 6831,
+ type: 'tom1'
+ }, {
+ tick: 6849,
+ type: 'tom1'
+ }, {
+ tick: 6864,
+ type: 'tom1'
+ }, {
+ tick: 6878,
+ type: 'tom1'
+ }, {
+ tick: 6894,
+ type: 'tom1'
+ }, {
+ tick: 6909,
+ type: 'kick'
+ }, {
+ tick: 6909,
type: 'crash1'
}, {
- tick: 600,
+ tick: 6924,
+ type: 'tom1'
+ }, {
+ tick: 6938,
+ type: 'tom1'
+ }, {
+ tick: 6952,
+ type: 'tom1'
+ }, {
+ tick: 6967,
+ type: 'tom1'
+ }, {
+ tick: 6982,
+ type: 'tom1'
+ }, {
+ tick: 6998,
+ type: 'tom1'
+ }, {
+ tick: 7010,
+ type: 'tom1'
+ }, {
+ tick: 7032,
type: 'kick'
}, {
- tick: 630,
+ tick: 7032,
+ type: 'crash1'
+ }, {
+ tick: 7056,
type: 'snare'
}, {
- tick: 660,
- type: 'hihat'
+ tick: 7056,
+ type: 'crash1'
}, {
- tick: 690,
+ tick: 7088,
+ type: 'kick'
+ }, {
+ tick: 7088,
+ type: 'crash1'
+ }, {
+ tick: 7119,
+ type: 'crash1'
+ }, {
+ tick: 7119,
+ type: 'snare'
+ }, {
+ tick: 7150,
+ type: 'kick'
+ }, {
+ tick: 7150,
+ type: 'crash1'
+ }, {
+ tick: 7178,
+ type: 'snare'
+ }, {
+ tick: 7180,
+ type: 'crash1'
+ }, {
+ tick: 7211,
+ type: 'crash1'
+ }, {
+ tick: 7211,
+ type: 'kick'
+ }, {
+ tick: 7242,
+ type: 'crash1'
+ }, {
+ tick: 7242,
+ type: 'snare'
+ }, {
+ tick: 7273,
+ type: 'crash1'
+ }, {
+ tick: 7273,
+ type: 'kick'
+ }, {
+ tick: 7304,
+ type: 'snare'
+ }, {
+ tick: 7304,
+ type: 'crash1'
+ }, {
+ tick: 7334,
+ type: 'kick'
+ }, {
+ tick: 7334,
+ type: 'crash1'
+ }, {
+ tick: 7356,
+ type: 'crash1'
+ }, {
+ tick: 7356,
+ type: 'kick'
+ }, {
+ tick: 7379,
+ type: 'snare'
+ }, {
+ tick: 7381,
+ type: 'crash1'
+ }, {
+ tick: 7401,
+ type: 'crash1'
+ }, {
+ tick: 7401,
+ type: 'kick'
+ }, {
+ tick: 7425,
+ type: 'crash1'
+ }, {
+ tick: 7425,
+ type: 'snare'
+ }, {
+ tick: 7454,
+ type: 'crash1'
+ }, {
+ tick: 7454,
+ type: 'kick'
+ }, {
+ tick: 7484,
+ type: 'snare'
+ }, {
+ tick: 7484,
+ type: 'crash1'
+ }, {
+ tick: 7513,
+ type: 'kick'
+ }, {
+ tick: 7513,
+ type: 'crash1'
+ }, {
+ tick: 7545,
+ type: 'snare'
+ }, {
+ tick: 7545,
+ type: 'crash1'
+ }, {
+ tick: 7576,
+ type: 'crash1'
+ }, {
+ tick: 7576,
+ type: 'kick'
+ }, {
+ tick: 7605,
+ type: 'crash1'
+ }, {
+ tick: 7605,
+ type: 'snare'
+ }, {
+ tick: 7636,
+ type: 'crash1'
+ }, {
+ tick: 7636,
+ type: 'kick'
+ }, {
+ tick: 7664,
+ type: 'crash1'
+ }, {
+ tick: 7664,
+ type: 'snare'
+ }, {
+ tick: 7693,
+ type: 'crash1'
+ }, {
+ tick: 7693,
+ type: 'kick'
+ }, {
+ tick: 7725,
+ type: 'snare'
+ }, {
+ tick: 7725,
+ type: 'crash1'
+ }, {
+ tick: 7757,
+ type: 'crash1'
+ }, {
+ tick: 7757,
+ type: 'kick'
+ }, {
+ tick: 7788,
+ type: 'crash1'
+ }, {
+ tick: 7788,
+ type: 'snare'
+ }, {
+ tick: 7817,
+ type: 'kick'
+ }, {
+ tick: 7817,
+ type: 'crash1'
+ }, {
+ tick: 7839,
+ type: 'crash1'
+ }, {
+ tick: 7839,
+ type: 'kick'
+ }, {
+ tick: 7865,
+ type: 'crash1'
+ }, {
+ tick: 7865,
+ type: 'snare'
+ }, {
+ tick: 7883,
+ type: 'crash1'
+ }, {
+ tick: 7883,
+ type: 'kick'
+ }, {
+ tick: 7910,
+ type: 'crash1'
+ }, {
+ tick: 7910,
+ type: 'snare'
+ }, {
+ tick: 7939,
+ type: 'kick'
+ }, {
+ tick: 7939,
+ type: 'crash1'
+ }, {
+ tick: 7970,
+ type: 'crash1'
+ }, {
+ tick: 7970,
+ type: 'snare'
+ }, {
+ tick: 8000,
+ type: 'crash1'
+ }, {
+ tick: 8000,
+ type: 'kick'
+ }, {
+ tick: 8030,
+ type: 'crash1'
+ }, {
+ tick: 8030,
+ type: 'snare'
+ }, {
+ tick: 8060,
+ type: 'crash1'
+ }, {
+ tick: 8060,
+ type: 'kick'
+ }, {
+ tick: 8090,
+ type: 'crash1'
+ }, {
+ tick: 8090,
+ type: 'snare'
+ }, {
+ tick: 8120,
+ type: 'crash1'
+ }, {
+ tick: 8120,
+ type: 'kick'
+ }, {
+ tick: 8149,
+ type: 'snare'
+ }, {
+ tick: 8149,
+ type: 'crash1'
+ }, {
+ tick: 8181,
+ type: 'crash1'
+ }, {
+ tick: 8181,
+ type: 'kick'
+ }, {
+ tick: 8212,
+ type: 'snare'
+ }, {
+ tick: 8212,
+ type: 'crash1'
+ }, {
+ tick: 8242,
+ type: 'kick'
+ }, {
+ tick: 8242,
+ type: 'crash1'
+ }, {
+ tick: 8274,
+ type: 'crash1'
+ }, {
+ tick: 8274,
+ type: 'snare'
+ }, {
+ tick: 8302,
+ type: 'crash1'
+ }, {
+ tick: 8302,
+ type: 'kick'
+ }, {
+ tick: 8329,
+ type: 'crash1'
+ }, {
+ tick: 8329,
+ type: 'kick'
+ }, {
+ tick: 8354,
+ type: 'snare'
+ }, {
+ tick: 8356,
+ type: 'crash1'
+ }, {
+ tick: 8372,
+ type: 'crash1'
+ }, {
+ tick: 8372,
+ type: 'kick'
+ }, {
+ tick: 8395,
+ type: 'snare'
+ }, {
+ tick: 8395,
+ type: 'crash1'
+ }, {
+ tick: 8423,
+ type: 'kick'
+ }, {
+ tick: 8423,
+ type: 'crash1'
+ }, {
+ tick: 8454,
+ type: 'snare'
+ }, {
+ tick: 8454,
+ type: 'crash1'
+ }, {
+ tick: 8484,
+ type: 'crash1'
+ }, {
+ tick: 8484,
+ type: 'kick'
+ }, {
+ tick: 8517,
+ type: 'crash1'
+ }, {
+ tick: 8517,
+ type: 'snare'
+ }, {
+ tick: 8547,
+ type: 'crash1'
+ }, {
+ tick: 8547,
+ type: 'kick'
+ }, {
+ tick: 8574,
+ type: 'crash1'
+ }, {
+ tick: 8574,
+ type: 'snare'
+ }, {
+ tick: 8608,
+ type: 'crash1'
+ }, {
+ tick: 8608,
+ type: 'kick'
+ }, {
+ tick: 8635,
+ type: 'snare'
+ }, {
+ tick: 8637,
+ type: 'crash1'
+ }, {
+ tick: 8667,
+ type: 'crash1'
+ }, {
+ tick: 8669,
+ type: 'kick'
+ }, {
+ tick: 8697,
+ type: 'crash1'
+ }, {
+ tick: 8697,
+ type: 'snare'
+ }, {
+ tick: 8729,
+ type: 'crash1'
+ }, {
+ tick: 8729,
+ type: 'kick'
+ }, {
+ tick: 8758,
+ type: 'crash1'
+ }, {
+ tick: 8758,
+ type: 'snare'
+ }, {
+ tick: 8790,
+ type: 'kick'
+ }, {
+ tick: 8790,
+ type: 'crash1'
+ }, {
+ tick: 8813,
+ type: 'crash1'
+ }, {
+ tick: 8813,
+ type: 'kick'
+ }, {
+ tick: 8835,
+ type: 'snare'
+ }, {
+ tick: 8839,
+ type: 'crash1'
+ }, {
+ tick: 8856,
+ type: 'crash1'
+ }, {
+ tick: 8856,
+ type: 'kick'
+ }, {
+ tick: 8882,
+ type: 'crash1'
+ }, {
+ tick: 8882,
+ type: 'snare'
+ }, {
+ tick: 8911,
+ type: 'crash1'
+ }, {
+ tick: 8911,
+ type: 'kick'
+ }, {
+ tick: 8940,
+ type: 'crash1'
+ }, {
+ tick: 8940,
+ type: 'snare'
+ }, {
+ tick: 8971,
+ type: 'kick'
+ }, {
+ tick: 8971,
+ type: 'crash1'
+ }, {
+ tick: 8987,
type: 'tom1'
}, {
- tick: 720,
+ tick: 9001,
+ type: 'tom1'
+ }, {
+ tick: 9014,
+ type: 'tom1'
+ }, {
+ tick: 9030,
+ type: 'tom1'
+ }, {
+ tick: 9043,
+ type: 'tom1'
+ }, {
+ tick: 9060,
+ type: 'tom1'
+ }, {
+ tick: 9074,
+ type: 'tom1'
+ }, {
+ tick: 9091,
+ type: 'kick'
+ }, {
+ tick: 9091,
type: 'crash1'
+ }, {
+ tick: 9106,
+ type: 'tom1'
+ }, {
+ tick: 9119,
+ type: 'tom1'
+ }, {
+ tick: 9134,
+ type: 'tom1'
+ }, {
+ tick: 9149,
+ type: 'tom1'
+ }, {
+ tick: 9162,
+ type: 'tom1'
+ }, {
+ tick: 9174,
+ type: 'tom1'
+ }, {
+ tick: 9188,
+ type: 'tom1'
+ }, {
+ tick: 9212,
+ type: 'kick'
+ }, {
+ tick: 9212,
+ type: 'crash1'
}]
}];
// Current level index and songNotes reference
var currentLevelIndex = 0;
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