User prompt
can barı sadece o level içindeyken geçerli olsun, can değerini 150ye düşür ve sayı olarak değil sadece bar olarak göster
User prompt
her ard arda 3 kere yanlış nota veya kaçırılan nota olursa can azalma miktarı katlanarak artsın
User prompt
her level başladığında ekranın en alt orta kısmına ona özel bir can barı ekle, bu can barı 1300 puanlık olsun ve her yanlış vuruşta 1 can azalsın, her kaçırılan basılmayan notada da 1 can azalsın, başarılı notalarda 1 artsın ve o anki kombo kaç x ise o sayıyla çarpılarak artsın.
User prompt
sadece 2 kere ard arda yanlış vuruşlarda kombo x sayacı sıfırlansın her yanlış vuruşta değil
User prompt
leveli bitirince oyun bitmesin giriş ekranında level seçilen arayüze atsın
User prompt
biraz daha arttır
User prompt
erken basılan notları başarılı sayma derecesini biraz daha artır
User prompt
çok az veya biraz geç basılan notlaları da başarılı say
Code edit (1 edits merged)
Please save this source code
User prompt
tick sayacını geri koy
Code edit (7 edits merged)
Please save this source code
User prompt
kaydın çıktısını yazarken tick 0ı sadece vuruş yapıldığında başlama , kayıt başladığı andan itibaren tick kaydını tut
User prompt
level1 başladığı an kayda girsin
Code edit (1 edits merged)
Please save this source code
Code edit (1 edits merged)
Please save this source code
User prompt
level 1 notalarını şu şekilde değiştir: var songNotes = [ { tick: 0, type: 'crash1' }, { tick: 4, type: 'kick' }, { tick: 52, type: 'kick' }, { tick: 54, type: 'crash1' }, { tick: 73, type: 'crash1' }, { tick: 73, type: 'kick' }, { tick: 90, type: 'crash1' }, { tick: 91, type: 'kick' }, { tick: 186, type: 'kick' }, { tick: 186, type: 'crash1' }, { tick: 452, type: 'crash1' }, { tick: 454, type: 'kick' }, { tick: 471, type: 'crash1' }, { tick: 471, type: 'kick' }, { tick: 540, type: 'crash1' }, { tick: 541, type: 'kick' }, { tick: 559, type: 'crash1' }, { tick: 559, type: 'kick' }, { tick: 573, type: 'crash1' }, { tick: 574, type: 'kick' }, { tick: 729, type: 'crash1' }, { tick: 730, type: 'kick' }, { tick: 748, type: 'kick' }, { tick: 749, type: 'crash1' }, { tick: 816, type: 'crash1' }, { tick: 817, type: 'kick' }, { tick: 834, type: 'kick' }, { tick: 834, type: 'crash1' }, { tick: 849, type: 'kick' }, { tick: 850, type: 'crash1' }, { tick: 1003, type: 'crash1' }, { tick: 1004, type: 'kick' }, { tick: 1022, type: 'kick' }, { tick: 1028, type: 'crash1' }, { tick: 1091, type: 'kick' }, { tick: 1100, type: 'crash1' }, { tick: 1108, type: 'kick' }, { tick: 1122, type: 'crash1' }, { tick: 1123, type: 'kick' }, { tick: 1157, type: 'snare' }, { tick: 1165, type: 'snare' }, { tick: 1173, type: 'snare' }, { tick: 1180, type: 'snare' }, { tick: 1195, type: 'snare' }, { tick: 1204, type: 'snare' }, { tick: 1213, type: 'snare' }, { tick: 1232, type: 'snare' }, { tick: 1253, type: 'snare' }, { tick: 1284, type: 'snare' }, { tick: 1305, type: 'kick' }, { tick: 1305, type: 'crash1' }, { tick: 1501, type: 'crash1' }, { tick: 1503, type: 'kick' }, { tick: 1529, type: 'kick' }, { tick: 1540, type: 'crash1' }, { tick: 1552, type: 'kick' }, { tick: 1564, type: 'crash1' }, { tick: 1570, type: 'kick' }, { tick: 1776, type: 'crash1' }, { tick: 1777, type: 'kick' }, { tick: 1796, type: 'crash1' }, { tick: 1802, type: 'kick' }, { tick: 1825, type: 'crash1' }, { tick: 1826, type: 'kick' }, { tick: 1842, type: 'crash1' }, { tick: 1842, type: 'kick' }, { tick: 1868, type: 'snare' }, { tick: 1875, type: 'crash1' }, { tick: 1876, type: 'kick' }, { tick: 1896, type: 'snare' }, { tick: 1912, type: 'hihat' }, { tick: 1912, type: 'kick' }, { tick: 1924, type: 'snare' }, { tick: 1936, type: 'hihat' }, { tick: 1955, type: 'kick' }, { tick: 1961, type: 'hihat' }, { tick: 1972, type: 'snare' }, { tick: 1982, type: 'hihat' }, { tick: 1983, type: 'kick' }, { tick: 1996, type: 'snare' }, { tick: 1999, type: 'hihat' }, { tick: 2017, type: 'hihat' }, { tick: 2025, type: 'kick' }, { tick: 2032, type: 'hihat' }, { tick: 2035, type: 'snare' }, { tick: 2051, type: 'hihat' }, { tick: 2053, type: 'kick' }, { tick: 2068, type: 'hihat' }, { tick: 2076, type: 'snare' }, { tick: 2080, type: 'hihat' }, { tick: 2092, type: 'kick' }, { tick: 2100, type: 'snare' }, { tick: 2101, type: 'hihat' }, { tick: 2119, type: 'hihat' }, { tick: 2121, type: 'kick' }, { tick: 2135, type: 'hihat' }, { tick: 2137, type: 'snare' }, { tick: 2152, type: 'hihat' }, { tick: 2161, type: 'kick' }, { tick: 2167, type: 'hihat' }, { tick: 2180, type: 'snare' }, { tick: 2187, type: 'hihat' }, { tick: 2189, type: 'kick' }, { tick: 2204, type: 'hihat' }, { tick: 2204, type: 'snare' }, { tick: 2216, type: 'hihat' }, { tick: 2234, type: 'kick' }, { tick: 2240, type: 'hihat' }, { tick: 2252, type: 'snare' }, { tick: 2259, type: 'hihat' }, { tick: 2260, type: 'kick' }, { tick: 2274, type: 'kick' }, { tick: 2275, type: 'hihat' }, { tick: 2305, type: 'kick' }, { tick: 2305, type: 'hihat' }, { tick: 2308, type: 'snare' }, { tick: 2325, type: 'crash1' }, { tick: 2326, type: 'kick' }, { tick: 2344, type: 'crash1' }, { tick: 2349, type: 'kick' }, { tick: 2375, type: 'kick' }, { tick: 2380, type: 'crash1' }, { tick: 2391, type: 'kick' }, { tick: 2404, type: 'hihat' }, { tick: 2408, type: 'snare' }, { tick: 2421, type: 'hihat' }, { tick: 2431, type: 'kick' }, { tick: 2437, type: 'hihat' }, { tick: 2441, type: 'snare' }, { tick: 2457, type: 'hihat' }, { tick: 2458, type: 'kick' }, { tick: 2475, type: 'snare' }, { tick: 2484, type: 'hihat' }, { tick: 2494, type: 'kick' }, { tick: 2504, type: 'hihat' }, { tick: 2507, type: 'snare' }, { tick: 2524, type: 'hihat' }, { tick: 2526, type: 'kick' }, { tick: 2540, type: 'hihat' }, { tick: 2543, type: 'snare' }, { tick: 2564, type: 'hihat' }, { tick: 2571, type: 'kick' }, { tick: 2581, type: 'snare' }, { tick: 2588, type: 'hihat' }, { tick: 2599, type: 'kick' }, { tick: 2614, type: 'snare' }, { tick: 2616, type: 'hihat' }, { tick: 2626, type: 'kick' }, { tick: 2637, type: 'kick' }, { tick: 2652, type: 'hihat' }, { tick: 2655, type: 'snare' }, { tick: 2672, type: 'hihat' }, { tick: 2674, type: 'kick' }, { tick: 2689, type: 'hihat' }, { tick: 2689, type: 'snare' }, { tick: 2706, type: 'kick' }, { tick: 2714, type: 'kick' }, { tick: 2716, type: 'hihat' }, { tick: 2723, type: 'snare' }, { tick: 2740, type: 'hihat' }, { tick: 2741, type: 'kick' }, { tick: 2757, type: 'snare' }, { tick: 2760, type: 'hihat' }, { tick: 2770, type: 'kick' }, { tick: 2776, type: 'hihat' }, { tick: 2785, type: 'kick' }, { tick: 2791, type: 'hihat' }, { tick: 2797, type: 'snare' }, { tick: 2814, type: 'kick' }, { tick: 2820, type: 'hihat' }, { tick: 2830, type: 'snare' }, { tick: 2862, type: 'snare' }, { tick: 2872, type: 'hihat' }, { tick: 2880, type: 'crash1' }, { tick: 2902, type: 'crash1' }, { tick: 2903, type: 'kick' }, { tick: 2926, type: 'crash1' }, { tick: 2928, type: 'kick' }, { tick: 2941, type: 'crash1' }, { tick: 2944, type: 'kick' }, { tick: 2967, type: 'crash1' }, { tick: 2968, type: 'kick' }, { tick: 2990, type: 'crash1' }, { tick: 2992, type: 'kick' }, { tick: 3006, type: 'crash1' }, { tick: 3007, type: 'kick' }, { tick: 3023, type: 'hihat' }, { tick: 3040, type: 'hihat' }, { tick: 3059, type: 'hihat' }, { tick: 3076, type: 'hihat' }, { tick: 3097, type: 'hihat' }, { tick: 3113, type: 'hihat' }, { tick: 3128, type: 'hihat' }, { tick: 3149, type: 'crash1' }, { tick: 3149, type: 'kick' }, { tick: 3165, type: 'hihat' }, { tick: 3166, type: 'snare' }, { tick: 3183, type: 'hihat' }, { tick: 3191, type: 'kick' }, { tick: 3197, type: 'hihat' }, { tick: 3200, type: 'snare' }, { tick: 3216, type: 'hihat' }, { tick: 3218, type: 'kick' }, { tick: 3227, type: 'kick' }, { tick: 3233, type: 'hihat' }, { tick: 3236, type: 'snare' }, { tick: 3252, type: 'hihat' }, { tick: 3253, type: 'kick' }, { tick: 3268, type: 'snare' }, { tick: 3268, type: 'hihat' }, { tick: 3285, type: 'hihat' }, { tick: 3287, type: 'kick' }, { tick: 3295, type: 'kick' }, { tick: 3307, type: 'snare' }, { tick: 3307, type: 'hihat' }, { tick: 3324, type: 'kick' }, { tick: 3332, type: 'hihat' }, { tick: 3339, type: 'snare' }, { tick: 3356, type: 'hihat' }, { tick: 3358, type: 'kick' }, { tick: 3367, type: 'crash1' }, { tick: 3368, type: 'kick' }, { tick: 3384, type: 'crash1' }, { tick: 3385, type: 'kick' }, { tick: 3400, type: 'kick' }, { tick: 3400, type: 'hihat' }, { tick: 3416, type: 'snare' }, { tick: 3420, type: 'hihat' }, { tick: 3435, type: 'kick' }, { tick: 3440, type: 'hihat' }, { tick: 3444, type: 'kick' }, { tick: 3453, type: 'snare' }, { tick: 3460, type: 'hihat' }, { tick: 3481, type: 'snare' }, { tick: 3489, type: 'snare' }, { tick: 3504, type: 'tom1' }, { tick: 3513, type: 'tom1' }, { tick: 3522, type: 'tom1' }, { tick: 3529, type: 'tom1' }, { tick: 3540, type: 'kick' }, { tick: 3557, type: 'snare' }, { tick: 3568, type: 'hihat' }, { tick: 3585, type: 'hihat' }, { tick: 3586, type: 'kick' }, { tick: 3596, type: 'snare' }, { tick: 3623, type: 'crash1' }, { tick: 3624, type: 'kick' }, { tick: 3638, type: 'kick' }, { tick: 3638, type: 'crash1' }, { tick: 3656, type: 'hihat' }, { tick: 3669, type: 'snare' }, { tick: 3672, type: 'hihat' }, { tick: 3686, type: 'hihat' }, { tick: 3694, type: 'kick' }, { tick: 3699, type: 'hihat' }, { tick: 3704, type: 'snare' }, { tick: 3716, type: 'hihat' }, { tick: 3725, type: 'kick' }, { tick: 3734, type: 'hihat' }, { tick: 3735, type: 'kick' }, { tick: 3742, type: 'snare' }, { tick: 3758, type: 'kick' }, { tick: 3768, type: 'hihat' }, { tick: 3774, type: 'snare' }, { tick: 3788, type: 'hihat' }, { tick: 3789, type: 'kick' }, { tick: 3807, type: 'hihat' }, { tick: 3808, type: 'snare' }, { tick: 3824, type: 'hihat' }, { tick: 3832, type: 'kick' }, { tick: 3843, type: 'snare' }, { tick: 3844, type: 'hihat' }, { tick: 3858, type: 'hihat' }, { tick: 3861, type: 'kick' }, { tick: 3868, type: 'crash1' }, { tick: 3870, type: 'kick' }, { tick: 3886, type: 'crash1' }, { tick: 3887, type: 'kick' }, { tick: 3900, type: 'crash1' }, { tick: 3919, type: 'hihat' }, { tick: 3924, type: 'kick' }, { tick: 3949, type: 'hihat' }, { tick: 3953, type: 'snare' }, { tick: 3977, type: 'snare' }, { tick: 3985, type: 'snare' }, { tick: 3999, type: 'tom1' }, { tick: 4008, type: 'tom1' }, { tick: 4017, type: 'tom1' }, { tick: 4024, type: 'tom1' }, { tick: 4036, type: 'crash1' }, { tick: 4037, type: 'kick' }, { tick: 4044, type: 'hihat' }, { tick: 4052, type: 'snare' }, { tick: 4070, type: 'hihat' }, { tick: 4080, type: 'kick' }, { tick: 4085, type: 'hihat' }, { tick: 4088, type: 'snare' }, { tick: 4103, type: 'hihat' }, { tick: 4106, type: 'kick' }, { tick: 4114, type: 'crash1' }, { tick: 4114, type: 'kick' }, { tick: 4133, type: 'kick' }, { tick: 4136, type: 'crash1' }, { tick: 4150, type: 'kick' }, { tick: 4163, type: 'hihat' }, { tick: 4165, type: 'snare' }, { tick: 4180, type: 'hihat' }, { tick: 4191, type: 'kick' }, { tick: 4195, type: 'hihat' }, { tick: 4202, type: 'snare' }, { tick: 4215, type: 'hihat' }, { tick: 4221, type: 'kick' }, { tick: 4231, type: 'kick' }, { tick: 4237, type: 'kick' }, { tick: 4252, type: 'hihat' }, { tick: 4259, type: 'snare' }, { tick: 4270, type: 'snare' }, { tick: 4290, type: 'kick' }, { tick: 4300, type: 'crash1' }, { tick: 4305, type: 'hihat' }, { tick: 4306, type: 'snare' }, { tick: 4322, type: 'hihat' }, { tick: 4335, type: 'kick' }, { tick: 4339, type: 'hihat' }, { tick: 4356, type: 'snare' }, { tick: 4356, type: 'crash1' }, { tick: 4357, type: 'hihat' }, { tick: 4367, type: 'kick' }, { tick: 4385, type: 'crash1' }, { tick: 4386, type: 'kick' }, { tick: 4400, type: 'crash1' }, { tick: 4401, type: 'kick' }, { tick: 4415, type: 'hihat' }, { tick: 4428, type: 'snare' }, { tick: 4432, type: 'hihat' }, { tick: 4442, type: 'kick' }, { tick: 4447, type: 'hihat' }, { tick: 4451, type: 'snare' }, { tick: 4465, type: 'hihat' }, { tick: 4476, type: 'snare' }, { tick: 4483, type: 'snare' }, { tick: 4501, type: 'snare' }, { tick: 4508, type: 'snare' }, { tick: 4514, type: 'tom1' }, { tick: 4522, type: 'tom1' }, { tick: 4536, type: 'crash1' }, { tick: 4553, type: 'snare' }, { tick: 4556, type: 'hihat' }, { tick: 4569, type: 'hihat' }, { tick: 4581, type: 'kick' }, { tick: 4585, type: 'hihat' }, { tick: 4589, type: 'snare' }, { tick: 4612, type: 'hihat' }, { tick: 4615, type: 'crash1' }, { tick: 4616, type: 'kick' }, { tick: 4633, type: 'crash1' }, { tick: 4634, type: 'kick' }, { tick: 4648, type: 'kick' }, { tick: 4649, type: 'crash1' }, { tick: 4664, type: 'hihat' }, { tick: 4665, type: 'snare' }, { tick: 4684, type: 'hihat' }, { tick: 4690, type: 'kick' }, { tick: 4700, type: 'snare' }, { tick: 4714, type: 'hihat' }, { tick: 4723, type: 'snare' }, { tick: 4730, type: 'snare' }, { tick: 4746, type: 'tom1' }, { tick: 4755, type: 'tom1' }, { tick: 4763, type: 'tom1' }, { tick: 4770, type: 'tom1' }, { tick: 4781, type: 'kick' }, { tick: 4799, type: 'snare' }, { tick: 4799, type: 'hihat' }, { tick: 4815, type: 'hihat' }, { tick: 4828, type: 'kick' }, { tick: 4837, type: 'snare' }, { tick: 4863, type: 'crash1' }, { tick: 4864, type: 'kick' }, { tick: 4879, type: 'crash1' }, { tick: 4881, type: 'kick' }, { tick: 4894, type: 'crash1' }, { tick: 4894, type: 'kick' }, { tick: 4912, type: 'snare' }, { tick: 4920, type: 'hihat' }, { tick: 4934, type: 'kick' }, { tick: 4940, type: 'hihat' }, { tick: 4946, type: 'snare' }, { tick: 4961, type: 'hihat' }, { tick: 4974, type: 'snare' }, { tick: 4982, type: 'snare' }, { tick: 4996, type: 'snare' }, { tick: 5004, type: 'snare' }, { tick: 5009, type: 'tom1' }, { tick: 5019, type: 'snare' }, { tick: 5027, type: 'snare' }, { tick: 5032, type: 'crash1' }, { tick: 5082, type: 'hihat' }, { tick: 5082, type: 'snare' }, { tick: 5103, type: 'crash1' }, { tick: 5110, type: 'kick' }, { tick: 5127, type: 'kick' }, { tick: 5144, type: 'snare' }, { tick: 5153, type: 'snare' }, { tick: 5162, type: 'snare' }, { tick: 5171, type: 'snare' }, { tick: 5177, type: 'snare' }, { tick: 5185, type: 'snare' }, { tick: 5194, type: 'snare' }, { tick: 5200, type: 'snare' }, { tick: 5205, type: 'snare' }, { tick: 5211, type: 'crash1' }, { tick: 5214, type: 'kick' }, { tick: 5251, type: 'snare' }, { tick: 5252, type: 'hihat' }, { tick: 5265, type: 'snare' }, { tick: 5265, type: 'hihat' }, { tick: 5282, type: 'kick' }, { tick: 5283, type: 'hihat' }, { tick: 5304, type: 'hihat' }, { tick: 5311, type: 'kick' }, { tick: 5318, type: 'snare' }, { tick: 5324, type: 'hihat' }, { tick: 5333, type: 'snare' }, { tick: 5349, type: 'hihat' }, { tick: 5350, type: 'kick' }, { tick: 5366, type: 'hihat' }, { tick: 5374, type: 'kick' }, { tick: 5380, type: 'hihat' }, { tick: 5384, type: 'snare' }, { tick: 5399, type: 'hihat' }, { tick: 5400, type: 'snare' }, { tick: 5416, type: 'snare' }, { tick: 5425, type: 'snare' }, { tick: 5434, type: 'snare' }, { tick: 5447, type: 'tom1' }, { tick: 5456, type: 'tom1' }, { tick: 5464, type: 'tom1' }, { tick: 5475, type: 'snare' }, { tick: 5484, type: 'kick' }, { tick: 5484, type: 'crash1' }, { tick: 5508, type: 'hihat' }, { tick: 5518, type: 'snare' }, { tick: 5533, type: 'hihat' }, { tick: 5535, type: 'snare' }, { tick: 5551, type: 'kick' }, { tick: 5560, type: 'hihat' }, { tick: 5578, type: 'kick' }, { tick: 5580, type: 'hihat' }, { tick: 5586, type: 'snare' }, { tick: 5601, type: 'hihat' }, { tick: 5602, type: 'snare' }, { tick: 5616, type: 'hihat' }, { tick: 5618, type: 'kick' }, { tick: 5636, type: 'hihat' }, { tick: 5646, type: 'kick' }, { tick: 5651, type: 'hihat' }, { tick: 5655, type: 'snare' }, { tick: 5671, type: 'hihat' }, { tick: 5673, type: 'snare' }, { tick: 5689, type: 'snare' }, { tick: 5697, type: 'snare' }, { tick: 5708, type: 'snare' }, { tick: 5715, type: 'snare' }, { tick: 5723, type: 'tom1' }, { tick: 5740, type: 'tom1' }, { tick: 5745, type: 'snare' }, { tick: 5754, type: 'snare' }, { tick: 5760, type: 'crash1' }, { tick: 5762, type: 'kick' }, { tick: 5795, type: 'hihat' }, { tick: 5796, type: 'snare' }, { tick: 5811, type: 'hihat' }, { tick: 5812, type: 'snare' }, { tick: 5829, type: 'hihat' }, { tick: 5830, type: 'kick' }, { tick: 5845, type: 'hihat' }, { tick: 5852, type: 'kick' }, { tick: 5862, type: 'snare' }, { tick: 5863, type: 'hihat' }, { tick: 5879, type: 'snare' }, { tick: 5892, type: 'hihat' }, { tick: 5896, type: 'kick' }, { tick: 5912, type: 'hihat' }, { tick: 5920, type: 'kick' }, { tick: 5929, type: 'hihat' }, { tick: 5930, type: 'snare' }, { tick: 5944, type: 'hihat' }, { tick: 5946, type: 'snare' }, { tick: 5963, type: 'snare' }, { tick: 5971, type: 'snare' }, { tick: 5979, type: 'snare' }, { tick: 5988, type: 'snare' }, { tick: 5995, type: 'tom1' }, { tick: 6004, type: 'tom1' }, { tick: 6013, type: 'tom1' }, { tick: 6020, type: 'tom1' }, { tick: 6031, type: 'crash1' }, { tick: 6033, type: 'kick' }, { tick: 6070, type: 'snare' }, { tick: 6072, type: 'hihat' }, { tick: 6084, type: 'snare' }, { tick: 6092, type: 'hihat' }, { tick: 6103, type: 'kick' }, { tick: 6119, type: 'hihat' }, { tick: 6124, type: 'kick' }, { tick: 6135, type: 'snare' }, { tick: 6148, type: 'hihat' }, { tick: 6154, type: 'snare' }, { tick: 6168, type: 'hihat' }, { tick: 6170, type: 'kick' }, { tick: 6187, type: 'hihat' }, { tick: 6196, type: 'kick' }, { tick: 6200, type: 'hihat' }, { tick: 6205, type: 'snare' }, { tick: 6220, type: 'hihat' }, { tick: 6221, type: 'snare' }, { tick: 6238, type: 'snare' }, { tick: 6246, type: 'snare' }, { tick: 6251, type: 'snare' }, { tick: 6257, type: 'snare' }, { tick: 6275, type: 'tom1' }, { tick: 6283, type: 'tom1' }, { tick: 6309, type: 'crash1' }, { tick: 6309, type: 'kick' }, { tick: 6322, type: 'crash1' }, { tick: 6324, type: 'kick' }, { tick: 6376, type: 'crash1' }, { tick: 6378, type: 'kick' }, { tick: 6392, type: 'crash1' }, { tick: 6394, type: 'kick' }, { tick: 6445, type: 'crash1' }, { tick: 6446, type: 'kick' }, { tick: 6456, type: 'hihat' }, { tick: 6464, type: 'snare' }, { tick: 6476, type: 'hihat' }, { tick: 6493, type: 'kick' }, { tick: 6497, type: 'hihat' }, ];
User prompt
level 1 notalarını şu şekilde değiştir: var LEVELS = [{ name: "Level 1", music: "MasterofUpit", notes: [{ tick: 0, type: 'crash1' }, { tick: 60, type: 'crash1' }, { tick: 77, type: 'crash1' }, { tick: 92, type: 'crash1' }, { tick: 199, type: 'crash1' }, { tick: 453, type: 'crash1' }, { tick: 469, type: 'crash1' }, { tick: 537, type: 'crash1' }, { tick: 554, type: 'crash1' }, { tick: 571, type: 'crash1' }, { tick: 726, type: 'crash1' }, { tick: 744, type: 'crash1' }, { tick: 814, type: 'crash1' }, { tick: 830, type: 'crash1' }, { tick: 848, type: 'crash1' }, { tick: 1001, type: 'crash1' }, { tick: 1016, type: 'crash1' }, { tick: 1086, type: 'crash1' }, { tick: 1105, type: 'crash1' }, { tick: 1122, type: 'crash1' }, { tick: 1293, type: 'crash1' }, { tick: 1500, type: 'crash1' }, { tick: 1526, type: 'crash1' }, { tick: 1550, type: 'crash1' }, { tick: 1566, type: 'crash1' }, { tick: 1771, type: 'crash1' }, { tick: 1799, type: 'crash1' }, { tick: 1825, type: 'crash1' }, { tick: 1841, type: 'crash1' }, { tick: 1858, type: 'snare' }, { tick: 1874, type: 'kick' }, { tick: 1890, type: 'snare' }, { tick: 1911, type: 'kick' }, { tick: 1928, type: 'snare' }, { tick: 1939, type: 'kick' }, { tick: 1954, type: 'kick' }, { tick: 1962, type: 'snare' }, { tick: 1981, type: 'kick' }, { tick: 1995, type: 'snare' }, { tick: 2014, type: 'kick' }, { tick: 2022, type: 'kick' }, { tick: 2030, type: 'snare' }, { tick: 2051, type: 'kick' }, { tick: 2066, type: 'snare' }, { tick: 2076, type: 'kick' }, { tick: 2092, type: 'kick' }, { tick: 2101, type: 'snare' }, { tick: 2120, type: 'kick' }, { tick: 2135, type: 'snare' }, { tick: 2153, type: 'kick' }, { tick: 2160, type: 'kick' }, { tick: 2169, type: 'snare' }, { tick: 2189, type: 'kick' }, { tick: 2204, type: 'snare' }, { tick: 2214, type: 'kick' }, { tick: 2231, type: 'kick' }, { tick: 2240, type: 'snare' }, { tick: 2258, type: 'kick' }, { tick: 2274, type: 'snare' }, { tick: 2290, type: 'kick' }, { tick: 2303, type: 'snare' }, { tick: 2320, type: 'crash1' }, { tick: 2346, type: 'crash1' }, { tick: 2371, type: 'crash1' }, { tick: 2389, type: 'snare' }, { tick: 2407, type: 'snare' }, { tick: 2441, type: 'snare' }, { tick: 2460, type: 'kick' }, { tick: 2476, type: 'snare' }, { tick: 2486, type: 'kick' }, { tick: 2501, type: 'kick' }, { tick: 2511, type: 'snare' }, { tick: 2531, type: 'kick' }, { tick: 2548, type: 'snare' }, { tick: 2563, type: 'kick' }, { tick: 2571, type: 'kick' }, { tick: 2580, type: 'snare' }, { tick: 2599, type: 'kick' }, { tick: 2615, type: 'snare' }, { tick: 2625, type: 'kick' }, { tick: 2640, type: 'kick' }, { tick: 2649, type: 'snare' }, { tick: 2668, type: 'kick' }, { tick: 2684, type: 'snare' }, { tick: 2701, type: 'kick' }, { tick: 2709, type: 'kick' }, { tick: 2719, type: 'snare' }, { tick: 2739, type: 'kick' }, { tick: 2754, type: 'snare' }, { tick: 2764, type: 'kick' }, { tick: 2786, type: 'snare' }, { tick: 2806, type: 'kick' }, { tick: 2820, type: 'snare' }, { tick: 2835, type: 'kick' }, { tick: 2849, type: 'kick' }, { tick: 2857, type: 'snare' }, { tick: 2875, type: 'hihat' }, { tick: 2898, type: 'crash1' }, { tick: 2923, type: 'crash1' }, { tick: 2938, type: 'crash1' }, { tick: 2964, type: 'crash1' }, { tick: 2990, type: 'crash1' }, { tick: 3006, type: 'crash1' }, { tick: 3022, type: 'hihat' }, { tick: 3038, type: 'hihat' }, { tick: 3058, type: 'hihat' }, { tick: 3077, type: 'hihat' }, { tick: 3095, type: 'hihat' }, { tick: 3113, type: 'hihat' }, { tick: 3131, type: 'hihat' }, { tick: 3146, type: 'crash1' }, { tick: 3164, type: 'snare' }, { tick: 3181, type: 'kick' }, { tick: 3188, type: 'kick' }, { tick: 3197, type: 'snare' }, { tick: 3216, type: 'kick' }, { tick: 3227, type: 'snare' }, { tick: 3248, type: 'kick' }, { tick: 3264, type: 'snare' }, { tick: 3281, type: 'kick' }, { tick: 3299, type: 'snare' }, { tick: 3318, type: 'kick' }, { tick: 3325, type: 'kick' }, { tick: 3334, type: 'snare' }, { tick: 3352, type: 'kick' }, { tick: 3362, type: 'snare' }, { tick: 3380, type: 'snare' }, { tick: 3398, type: 'kick' }, { tick: 3414, type: 'snare' }, { tick: 3431, type: 'kick' }, { tick: 3438, type: 'kick' }, { tick: 3448, type: 'snare' }, { tick: 3468, type: 'kick' }, { tick: 3486, type: 'snare' }, { tick: 3503, type: 'kick' }, { tick: 3517, type: 'snare' }, { tick: 3534, type: 'kick' }, { tick: 3550, type: 'snare' }, { tick: 3570, type: 'kick' }, { tick: 3584, type: 'snare' }, { tick: 3601, type: 'kick' }, { tick: 3611, type: 'snare' }, { tick: 3625, type: 'crash1' }, { tick: 3646, type: 'snare' }, { tick: 3663, type: 'kick' }, { tick: 3690, type: 'snare' }, { tick: 3779, type: 'kick' }, { tick: 3795, type: 'snare' }, { tick: 3813, type: 'kick' }, { tick: 3820, type: 'kick' }, { tick: 3829, type: 'snare' }, { tick: 3846, type: 'kick' }, { tick: 3875, type: 'crash1' }, { tick: 3899, type: 'snare' }, { tick: 3939, type: 'snare' }, { tick: 4030, type: 'kick' }, { tick: 4047, type: 'snare' }, { tick: 4066, type: 'kick' }, { tick: 4072, type: 'kick' }, { tick: 4081, type: 'snare' }, { tick: 4100, type: 'kick' }, { tick: 4127, type: 'crash1' }, { tick: 4144, type: 'kick' }, { tick: 4161, type: 'snare' }, { tick: 4179, type: 'kick' }, { tick: 4186, type: 'kick' }, { tick: 4195, type: 'snare' }, { tick: 4214, type: 'kick' }, { tick: 4228, type: 'snare' }, { tick: 4248, type: 'kick' }, { tick: 4264, type: 'snare' }, { tick: 4281, type: 'kick' }, { tick: 4297, type: 'snare' }, { tick: 4315, type: 'kick' }, { tick: 4330, type: 'snare' }, { tick: 4347, type: 'crash1' }, { tick: 4357, type: 'crash1' }, { tick: 4376, type: 'crash1' }, { tick: 4395, type: 'kick' }, { tick: 4411, type: 'snare' }, { tick: 4429, type: 'kick' }, { tick: 4435, type: 'kick' }, { tick: 4444, type: 'snare' }, { tick: 4461, type: 'kick' }, { tick: 4471, type: 'snare' }, { tick: 4478, type: 'snare' }, { tick: 4495, type: 'tom1' }, { tick: 4502, type: 'tom1' }, { tick: 4509, type: 'tom1' }, { tick: 4516, type: 'tom1' }, { tick: 4546, type: 'snare' }, { tick: 4580, type: 'snare' }, { tick: 4598, type: 'kick' }, { tick: 4622, type: 'crash1' }, { tick: 4652, type: 'kick' }, { tick: 4663, type: 'snare' }, { tick: 4679, type: 'kick' }, { tick: 4686, type: 'kick' }, { tick: 4695, type: 'snare' }, { tick: 4715, type: 'snare' }, { tick: 4726, type: 'tom1' }, { tick: 4733, type: 'tom1' }, { tick: 4754, type: 'snare' }, { tick: 4761, type: 'snare' }, { tick: 4767, type: 'snare' }, { tick: 4784, type: 'crash1' }, { tick: 4799, type: 'kick' }, { tick: 4834, type: 'snare' }, { tick: 4851, type: 'kick' }, { tick: 4862, type: 'kick' }, { tick: 4880, type: 'snare' }, { tick: 4896, type: 'kick' }, { tick: 4912, type: 'snare' }, { tick: 4930, type: 'kick' }, { tick: 4938, type: 'kick' }, { tick: 4946, type: 'snare' }, { tick: 4973, type: 'crash1' }, { tick: 4993, type: 'crash1' }, { tick: 5010, type: 'crash1' }, { tick: 5023, type: 'crash1' }, { tick: 5043, type: 'snare' }, { tick: 5060, type: 'kick' }, { tick: 5069, type: 'kick' }, { tick: 5081, type: 'snare' }, { tick: 5100, type: 'kick' }, { tick: 5110, type: 'snare' }, { tick: 5126, type: 'snare' }, { tick: 5143, type: 'snare' }, { tick: 5152, type: 'snare' }, { tick: 5160, type: 'snare' }, { tick: 5167, type: 'snare' }, { tick: 5174, type: 'snare' }, { tick: 5181, type: 'snare' }, { tick: 5189, type: 'snare' }, { tick: 5196, type: 'snare' }, { tick: 5208, type: 'crash1' }, { tick: 5243, type: 'hihat' }, { tick: 5259, type: 'hihat' }, { tick: 5307, type: 'hihat' }, { tick: 5324, type: 'snare' }, { tick: 5342, type: 'kick' }, { tick: 5376, type: 'snare' }, { tick: 5393, type: 'snare' }, { tick: 5411, type: 'kick' }, { tick: 5445, type: 'snare' }, { tick: 5481, type: 'kick' }, { tick: 5513, type: 'snare' }, { tick: 5530, type: 'snare' }, { tick: 5548, type: 'kick' }, { tick: 5564, type: 'kick' }, { tick: 5571, type: 'kick' }, { tick: 5578, type: 'snare' }, { tick: 5584, type: 'snare' }, { tick: 5598, type: 'snare' }, { tick: 5613, type: 'kick' }, { tick: 5629, type: 'kick' }, { tick: 5636, type: 'kick' }, { tick: 5646, type: 'snare' }, { tick: 5665, type: 'snare' }, { tick: 5685, type: 'kick' }, { tick: 5718, type: 'snare' }, { tick: 5753, type: 'kick' }, { tick: 5786, type: 'snare' }, { tick: 5804, type: 'snare' }, { tick: 5824, type: 'kick' }, { tick: 5839, type: 'kick' }, { tick: 5846, type: 'kick' }, { tick: 5855, type: 'snare' }, { tick: 5873, type: 'snare' }, { tick: 5888, type: 'kick' }, { tick: 5906, type: 'kick' }, { tick: 5913, type: 'kick' }, { tick: 5924, type: 'snare' }, { tick: 5942, type: 'snare' }, { tick: 5960, type: 'kick' }, { tick: 5993, type: 'snare' }, { tick: 6029, type: 'kick' }, { tick: 6061, type: 'snare' }, { tick: 6080, type: 'snare' }, { tick: 6098, type: 'kick' }, { tick: 6114, type: 'kick' }, { tick: 6122, type: 'kick' }, { tick: 6132, type: 'snare' }, { tick: 6149, type: 'snare' }, { tick: 6166, type: 'kick' }, { tick: 6199, type: 'snare' }, { tick: 6216, type: 'snare' }, { tick: 6234, type: 'kick' }, { tick: 6269, type: 'snare' }, { tick: 6304, type: 'crash1' }, { tick: 6321, type: 'crash1' }, { tick: 6373, type: 'crash1' }, { tick: 6393, type: 'crash1' }, { tick: 6441, type: 'crash1' }, { tick: 6459, type: 'snare' }]
Code edit (1 edits merged)
Please save this source code
User prompt
level 1 notalarını değiştir: var songNotes = [ { tick: 0, type: 'crash1' }, { tick: 1, type: 'kick' }, { tick: 55, type: 'kick' }, { tick: 73, type: 'crash1' }, { tick: 73, type: 'kick' }, { tick: 91, type: 'kick' }, { tick: 186, type: 'kick' }, { tick: 186, type: 'crash1' }, { tick: 452, type: 'crash1' }, { tick: 454, type: 'kick' }, { tick: 471, type: 'kick' }, { tick: 540, type: 'crash1' }, { tick: 541, type: 'kick' }, { tick: 559, type: 'kick' }, { tick: 574, type: 'kick' }, { tick: 729, type: 'crash1' }, { tick: 730, type: 'kick' }, { tick: 748, type: 'kick' }, { tick: 816, type: 'crash1' }, { tick: 817, type: 'kick' }, { tick: 834, type: 'kick' }, { tick: 849, type: 'kick' }, { tick: 1003, type: 'crash1' }, { tick: 1004, type: 'kick' }, { tick: 1022, type: 'kick' }, { tick: 1091, type: 'crash1' }, { tick: 1091, type: 'kick' }, { tick: 1108, type: 'kick' }, { tick: 1123, type: 'kick' }, { tick: 1157, type: 'snare' }, { tick: 1165, type: 'snare' }, { tick: 1173, type: 'snare' }, { tick: 1195, type: 'snare' }, { tick: 1204, type: 'snare' }, { tick: 1213, type: 'snare' }, { tick: 1221, type: 'snare' }, { tick: 1232, type: 'snare' }, { tick: 1242, type: 'snare' }, { tick: 1253, type: 'snare' }, { tick: 1272, type: 'snare' }, { tick: 1305, type: 'kick' }, { tick: 1305, type: 'crash1' }, { tick: 1501, type: 'crash1' }, { tick: 1503, type: 'kick' }, { tick: 1529, type: 'kick' }, { tick: 1552, type: 'kick' }, { tick: 1570, type: 'kick' }, { tick: 1776, type: 'crash1' }, { tick: 1777, type: 'kick' }, { tick: 1802, type: 'kick' }, { tick: 1826, type: 'kick' }, { tick: 1842, type: 'kick' }, { tick: 1858, type: 'snare' }, { tick: 1875, type: 'crash1' }, { tick: 1876, type: 'kick' }, { tick: 1896, type: 'snare' }, { tick: 1912, type: 'hihat' }, { tick: 1912, type: 'kick' }, { tick: 1930, type: 'snare' }, { tick: 1936, type: 'hihat' }, { tick: 1955, type: 'kick' }, { tick: 1961, type: 'hihat' }, { tick: 1964, type: 'snare' }, { tick: 1982, type: 'hihat' }, { tick: 1983, type: 'kick' }, { tick: 1999, type: 'hihat' }, { tick: 1999, type: 'snare' }, { tick: 2017, type: 'hihat' }, { tick: 2025, type: 'kick' }, { tick: 2032, type: 'hihat' }, { tick: 2035, type: 'snare' }, { tick: 2051, type: 'hihat' }, { tick: 2053, type: 'kick' }, { tick: 2068, type: 'hihat' }, { tick: 2069, type: 'snare' }, { tick: 2080, type: 'hihat' }, { tick: 2092, type: 'kick' }, { tick: 2101, type: 'hihat' }, { tick: 2102, type: 'snare' }, { tick: 2119, type: 'hihat' }, { tick: 2121, type: 'kick' }, { tick: 2135, type: 'hihat' }, { tick: 2137, type: 'snare' }, { tick: 2152, type: 'hihat' }, { tick: 2161, type: 'kick' }, { tick: 2167, type: 'hihat' }, { tick: 2172, type: 'snare' }, { tick: 2187, type: 'hihat' }, { tick: 2189, type: 'kick' }, { tick: 2204, type: 'hihat' }, { tick: 2205, type: 'snare' }, { tick: 2216, type: 'hihat' }, { tick: 2234, type: 'kick' }, { tick: 2240, type: 'hihat' }, { tick: 2243, type: 'snare' }, { tick: 2259, type: 'hihat' }, { tick: 2260, type: 'kick' }, { tick: 2274, type: 'kick' }, { tick: 2275, type: 'hihat' }, { tick: 2305, type: 'kick' }, { tick: 2305, type: 'hihat' }, { tick: 2313, type: 'snare' }, { tick: 2325, type: 'crash1' }, { tick: 2326, type: 'kick' }, { tick: 2349, type: 'kick' }, { tick: 2375, type: 'kick' }, { tick: 2391, type: 'kick' }, { tick: 2404, type: 'hihat' }, { tick: 2408, type: 'snare' }, { tick: 2421, type: 'hihat' }, { tick: 2431, type: 'kick' }, { tick: 2437, type: 'hihat' }, { tick: 2441, type: 'snare' }, { tick: 2457, type: 'hihat' }, { tick: 2458, type: 'kick' }, { tick: 2474, type: 'hihat' }, { tick: 2475, type: 'snare' }, { tick: 2486, type: 'hihat' }, { tick: 2494, type: 'kick' }, { tick: 2504, type: 'hihat' }, { tick: 2507, type: 'snare' }, { tick: 2524, type: 'hihat' }, { tick: 2526, type: 'kick' }, { tick: 2542, type: 'hihat' }, { tick: 2543, type: 'snare' }, { tick: 2562, type: 'hihat' }, { tick: 2571, type: 'kick' }, { tick: 2578, type: 'hihat' }, { tick: 2581, type: 'snare' }, { tick: 2598, type: 'hihat' }, { tick: 2599, type: 'kick' }, { tick: 2614, type: 'hihat' }, { tick: 2614, type: 'snare' }, { tick: 2626, type: 'kick' }, { tick: 2637, type: 'kick' }, { tick: 2644, type: 'hihat' }, { tick: 2655, type: 'snare' }, { tick: 2672, type: 'hihat' }, { tick: 2674, type: 'kick' }, { tick: 2689, type: 'hihat' }, { tick: 2689, type: 'snare' }, { tick: 2706, type: 'kick' }, { tick: 2714, type: 'kick' }, { tick: 2719, type: 'hihat' }, { tick: 2723, type: 'snare' }, { tick: 2740, type: 'hihat' }, { tick: 2741, type: 'kick' }, { tick: 2757, type: 'snare' }, { tick: 2757, type: 'hihat' }, { tick: 2770, type: 'kick' }, { tick: 2779, type: 'hihat' }, { tick: 2785, type: 'kick' }, { tick: 2791, type: 'hihat' }, { tick: 2797, type: 'snare' }, { tick: 2814, type: 'hihat' }, { tick: 2814, type: 'kick' }, { tick: 2829, type: 'hihat' }, { tick: 2830, type: 'snare' }, { tick: 2862, type: 'hihat' }, { tick: 2862, type: 'snare' }, { tick: 2880, type: 'crash1' }, { tick: 2903, type: 'kick' }, { tick: 2928, type: 'kick' }, { tick: 2944, type: 'kick' }, { tick: 2967, type: 'crash1' }, { tick: 2968, type: 'kick' }, { tick: 2992, type: 'kick' }, { tick: 3007, type: 'kick' }, { tick: 3023, type: 'hihat' }, { tick: 3040, type: 'hihat' }, { tick: 3059, type: 'hihat' }, { tick: 3078, type: 'hihat' }, { tick: 3097, type: 'hihat' }, { tick: 3113, type: 'hihat' }, { tick: 3131, type: 'hihat' }, { tick: 3149, type: 'crash1' }, { tick: 3149, type: 'kick' }, { tick: 3165, type: 'hihat' }, { tick: 3166, type: 'snare' }, { tick: 3183, type: 'hihat' }, { tick: 3191, type: 'kick' }, { tick: 3197, type: 'hihat' }, { tick: 3200, type: 'snare' }, { tick: 3216, type: 'hihat' }, { tick: 3218, type: 'kick' }, { tick: 3227, type: 'kick' }, { tick: 3233, type: 'hihat' }, { tick: 3236, type: 'snare' }, { tick: 3252, type: 'hihat' }, { tick: 3253, type: 'kick' }, { tick: 3268, type: 'snare' }, { tick: 3268, type: 'hihat' }, { tick: 3285, type: 'hihat' }, { tick: 3287, type: 'kick' }, { tick: 3295, type: 'kick' }, { tick: 3307, type: 'snare' }, { tick: 3307, type: 'hihat' }, { tick: 3324, type: 'kick' }, { tick: 3325, type: 'hihat' }, { tick: 3339, type: 'snare' }, { tick: 3340, type: 'hihat' }, { tick: 3358, type: 'hihat' }, { tick: 3358, type: 'kick' }, { tick: 3367, type: 'crash1' }, { tick: 3368, type: 'kick' }, { tick: 3385, type: 'kick' }, { tick: 3400, type: 'kick' }, { tick: 3400, type: 'hihat' }, { tick: 3415, type: 'hihat' }, { tick: 3416, type: 'snare' }, { tick: 3430, type: 'hihat' }, { tick: 3435, type: 'kick' }, { tick: 3444, type: 'kick' }, { tick: 3447, type: 'hihat' }, { tick: 3453, type: 'snare' }, { tick: 3469, type: 'hihat' }, { tick: 3481, type: 'snare' }, { tick: 3489, type: 'snare' }, { tick: 3504, type: 'tom1' }, { tick: 3513, type: 'tom1' }, { tick: 3522, type: 'tom1' }, { tick: 3529, type: 'tom1' }, { tick: 3540, type: 'kick' }, { tick: 3556, type: 'hihat' }, { tick: 3557, type: 'snare' }, { tick: 3575, type: 'hihat' }, { tick: 3585, type: 'hihat' }, { tick: 3586, type: 'kick' }, { tick: 3596, type: 'snare' }, { tick: 3623, type: 'crash1' }, { tick: 3624, type: 'kick' }, { tick: 3638, type: 'kick' }, { tick: 3654, type: 'hihat' }, { tick: 3669, type: 'hihat' }, { tick: 3669, type: 'snare' }, { tick: 3686, type: 'hihat' }, { tick: 3694, type: 'kick' }, { tick: 3699, type: 'hihat' }, { tick: 3704, type: 'snare' }, { tick: 3719, type: 'hihat' }, { tick: 3725, type: 'kick' }, { tick: 3734, type: 'hihat' }, { tick: 3735, type: 'kick' }, { tick: 3742, type: 'snare' }, { tick: 3757, type: 'hihat' }, { tick: 3758, type: 'kick' }, { tick: 3774, type: 'snare' }, { tick: 3774, type: 'hihat' }, { tick: 3789, type: 'kick' }, { tick: 3789, type: 'hihat' }, { tick: 3807, type: 'hihat' }, { tick: 3808, type: 'snare' }, { tick: 3824, type: 'hihat' }, { tick: 3832, type: 'kick' }, { tick: 3840, type: 'hihat' }, { tick: 3843, type: 'snare' }, { tick: 3858, type: 'hihat' }, { tick: 3861, type: 'kick' }, { tick: 3868, type: 'crash1' }, { tick: 3870, type: 'kick' }, { tick: 3887, type: 'kick' }, { tick: 3919, type: 'hihat' }, { tick: 3924, type: 'kick' }, { tick: 3949, type: 'hihat' }, { tick: 3953, type: 'snare' }, { tick: 3977, type: 'snare' }, { tick: 3985, type: 'snare' }, { tick: 3999, type: 'tom1' }, { tick: 4008, type: 'tom1' }, { tick: 4017, type: 'tom1' }, { tick: 4024, type: 'tom1' }, { tick: 4036, type: 'crash1' }, { tick: 4037, type: 'kick' }, { tick: 4052, type: 'snare' }, { tick: 4054, type: 'hihat' }, { tick: 4070, type: 'hihat' }, { tick: 4080, type: 'kick' }, { tick: 4085, type: 'hihat' }, { tick: 4088, type: 'snare' }, { tick: 4103, type: 'hihat' }, { tick: 4106, type: 'kick' }, { tick: 4114, type: 'crash1' }, { tick: 4114, type: 'kick' }, { tick: 4133, type: 'kick' }, { tick: 4150, type: 'kick' }, { tick: 4163, type: 'hihat' }, { tick: 4165, type: 'snare' }, { tick: 4180, type: 'hihat' }, { tick: 4191, type: 'kick' }, { tick: 4195, type: 'hihat' }, { tick: 4202, type: 'snare' }, { tick: 4215, type: 'hihat' }, { tick: 4221, type: 'kick' }, { tick: 4231, type: 'kick' }, { tick: 4237, type: 'kick' }, { tick: 4252, type: 'hihat' }, { tick: 4259, type: 'snare' }, { tick: 4270, type: 'snare' }, { tick: 4288, type: 'crash1' }, { tick: 4290, type: 'kick' }, { tick: 4305, type: 'hihat' }, { tick: 4306, type: 'snare' }, { tick: 4322, type: 'hihat' }, { tick: 4335, type: 'kick' }, { tick: 4339, type: 'hihat' }, { tick: 4344, type: 'snare' }, { tick: 4357, type: 'hihat' }, { tick: 4367, type: 'kick' }, { tick: 4367, type: 'crash1' }, { tick: 4386, type: 'kick' }, { tick: 4401, type: 'kick' }, { tick: 4415, type: 'hihat' }, { tick: 4417, type: 'snare' }, { tick: 4432, type: 'hihat' }, { tick: 4442, type: 'kick' }, { tick: 4447, type: 'hihat' }, { tick: 4451, type: 'snare' }, { tick: 4465, type: 'hihat' }, { tick: 4476, type: 'snare' }, { tick: 4501, type: 'snare' }, { tick: 4514, type: 'tom1' }, { tick: 4522, type: 'tom1' }, { tick: 4536, type: 'crash1' }, { tick: 4553, type: 'snare' }, { tick: 4553, type: 'hihat' }, { tick: 4569, type: 'hihat' }, { tick: 4581, type: 'kick' }, { tick: 4585, type: 'hihat' }, { tick: 4589, type: 'snare' }, { tick: 4604, type: 'hihat' }, { tick: 4615, type: 'crash1' }, { tick: 4616, type: 'kick' }, { tick: 4634, type: 'kick' }, { tick: 4648, type: 'kick' }, { tick: 4665, type: 'hihat' }, { tick: 4665, type: 'snare' }, { tick: 4680, type: 'hihat' }, { tick: 4690, type: 'kick' }, { tick: 4696, type: 'hihat' }, { tick: 4700, type: 'snare' }, { tick: 4714, type: 'hihat' }, { tick: 4723, type: 'snare' }, { tick: 4746, type: 'tom1' }, { tick: 4755, type: 'tom1' }, { tick: 4763, type: 'tom1' }, { tick: 4770, type: 'tom1' }, { tick: 4781, type: 'kick' }, { tick: 4799, type: 'snare' }, { tick: 4799, type: 'hihat' }, { tick: 4815, type: 'hihat' }, { tick: 4828, type: 'kick' }, { tick: 4837, type: 'snare' }, { tick: 4863, type: 'crash1' }, { tick: 4864, type: 'kick' }, { tick: 4881, type: 'kick' }, { tick: 4894, type: 'kick' }, { tick: 4910, type: 'hihat' }, { tick: 4912, type: 'snare' }, { tick: 4927, type: 'hihat' }, { tick: 4934, type: 'kick' }, { tick: 4942, type: 'hihat' }, { tick: 4946, type: 'snare' }, { tick: 4961, type: 'hihat' }, { tick: 4974, type: 'snare' }, { tick: 4982, type: 'snare' }, { tick: 4996, type: 'snare' }, { tick: 5004, type: 'snare' }, { tick: 5009, type: 'tom1' }, { tick: 5019, type: 'snare' }, { tick: 5027, type: 'snare' }, { tick: 5032, type: 'crash1' }, { tick: 5082, type: 'hihat' }, { tick: 5082, type: 'snare' }, { tick: 5103, type: 'crash1' }, { tick: 5110, type: 'kick' }, { tick: 5127, type: 'kick' }, { tick: 5144, type: 'snare' }, { tick: 5153, type: 'snare' }, { tick: 5162, type: 'snare' }, { tick: 5171, type: 'snare' }, { tick: 5185, type: 'snare' }, { tick: 5194, type: 'snare' }, { tick: 5205, type: 'snare' }, { tick: 5211, type: 'crash1' }, { tick: 5214, type: 'kick' }, { tick: 5247, type: 'hihat' }, { tick: 5251, type: 'snare' }, { tick: 5265, type: 'snare' }, { tick: 5265, type: 'hihat' }, { tick: 5282, type: 'kick' }, { tick: 5283, type: 'hihat' }, { tick: 5302, type: 'hihat' }, { tick: 5311, type: 'kick' }, { tick: 5315, type: 'hihat' }, { tick: 5318, type: 'snare' }, { tick: 5332, type: 'hihat' }, { tick: 5333, type: 'snare' }, { tick: 5349, type: 'hihat' }, { tick: 5350, type: 'kick' }, { tick: 5366, type: 'hihat' }, { tick: 5374, type: 'kick' }, { tick: 5380, type: 'hihat' }, { tick: 5384, type: 'snare' }, { tick: 5399, type: 'hihat' }, { tick: 5400, type: 'snare' }, { tick: 5416, type: 'snare' }, { tick: 5425, type: 'snare' }, { tick: 5434, type: 'snare' }, { tick: 5447, type: 'tom1' }, { tick: 5456, type: 'tom1' }, { tick: 5464, type: 'tom1' }, { tick: 5475, type: 'snare' }, { tick: 5484, type: 'kick' }, { tick: 5484, type: 'crash1' }, { tick: 5516, type: 'hihat' }, { tick: 5518, type: 'snare' }, { tick: 5533, type: 'hihat' }, { tick: 5535, type: 'snare' }, { tick: 5549, type: 'hihat' }, { tick: 5551, type: 'kick' }, { tick: 5566, type: 'hihat' }, { tick: 5575, type: 'hihat' }, { tick: 5578, type: 'kick' }, { tick: 5586, type: 'snare' }, { tick: 5601, type: 'hihat' }, { tick: 5602, type: 'snare' }, { tick: 5616, type: 'hihat' }, { tick: 5618, type: 'kick' }, { tick: 5636, type: 'hihat' }, { tick: 5646, type: 'kick' }, { tick: 5651, type: 'hihat' }, { tick: 5655, type: 'snare' }, { tick: 5671, type: 'hihat' }, { tick: 5673, type: 'snare' }, { tick: 5689, type: 'snare' }, { tick: 5697, type: 'snare' }, { tick: 5708, type: 'snare' }, { tick: 5723, type: 'tom1' }, { tick: 5740, type: 'tom1' }, { tick: 5745, type: 'snare' }, { tick: 5754, type: 'snare' }, { tick: 5760, type: 'crash1' }, { tick: 5762, type: 'kick' }, { tick: 5795, type: 'hihat' }, { tick: 5796, type: 'snare' }, { tick: 5811, type: 'hihat' }, { tick: 5812, type: 'snare' }, { tick: 5829, type: 'hihat' }, { tick: 5830, type: 'kick' }, { tick: 5845, type: 'hihat' }, { tick: 5852, type: 'kick' }, { tick: 5862, type: 'snare' }, { tick: 5863, type: 'hihat' }, { tick: 5879, type: 'snare' }, { tick: 5893, type: 'hihat' }, { tick: 5896, type: 'kick' }, { tick: 5912, type: 'hihat' }, { tick: 5920, type: 'kick' }, { tick: 5929, type: 'hihat' }, { tick: 5930, type: 'snare' }, { tick: 5946, type: 'hihat' }, { tick: 5946, type: 'snare' }, { tick: 5963, type: 'snare' }, { tick: 5971, type: 'snare' }, { tick: 5979, type: 'snare' }, { tick: 5988, type: 'snare' }, { tick: 5995, type: 'tom1' }, { tick: 6004, type: 'tom1' }, { tick: 6013, type: 'tom1' }, { tick: 6020, type: 'tom1' }, { tick: 6031, type: 'crash1' }, { tick: 6033, type: 'kick' }, { tick: 6066, type: 'hihat' }, { tick: 6070, type: 'snare' }, { tick: 6084, type: 'snare' }, { tick: 6085, type: 'hihat' }, { tick: 6101, type: 'hihat' }, { tick: 6103, type: 'kick' }, { tick: 6119, type: 'hihat' }, { tick: 6124, type: 'kick' }, { tick: 6135, type: 'snare' }, { tick: 6138, type: 'hihat' }, { tick: 6154, type: 'snare' }, { tick: 6168, type: 'hihat' }, { tick: 6170, type: 'kick' }, { tick: 6187, type: 'hihat' }, { tick: 6196, type: 'kick' }, { tick: 6204, type: 'hihat' }, { tick: 6205, type: 'snare' }, { tick: 6221, type: 'hihat' }, { tick: 6221, type: 'snare' }, { tick: 6238, type: 'snare' }, { tick: 6246, type: 'snare' }, { tick: 6257, type: 'snare' }, { tick: 6275, type: 'tom1' }, { tick: 6283, type: 'tom1' }, { tick: 6309, type: 'crash1' }, { tick: 6309, type: 'kick' }, { tick: 6324, type: 'kick' }, { tick: 6378, type: 'kick' }, { tick: 6392, type: 'crash1' }, { tick: 6394, type: 'kick' }, { tick: 6446, type: 'kick' }, { tick: 6460, type: 'hihat' }, { tick: 6464, type: 'snare' }, { tick: 6480, type: 'hihat' }, { tick: 6493, type: 'kick' }, { tick: 6497, type: 'hihat' }, ];
User prompt
gelen notaları doğru zamanda otomatik olarak padlere vur ve duyayım
User prompt
level 1 notalara 10 tick fazladan ekle
User prompt
level 1 notalarını şu şekilde değiştir: var songNotes = [ { tick: 0, type: 'crash1' }, { tick: 1, type: 'kick' }, { tick: 54, type: 'crash1' }, { tick: 55, type: 'kick' }, { tick: 73, type: 'crash1' }, { tick: 73, type: 'kick' }, { tick: 90, type: 'crash1' }, { tick: 91, type: 'kick' }, { tick: 186, type: 'kick' }, { tick: 186, type: 'crash1' }, { tick: 452, type: 'crash1' }, { tick: 454, type: 'kick' }, { tick: 471, type: 'crash1' }, { tick: 471, type: 'kick' }, { tick: 540, type: 'crash1' }, { tick: 541, type: 'kick' }, { tick: 559, type: 'crash1' }, { tick: 559, type: 'kick' }, { tick: 573, type: 'crash1' }, { tick: 574, type: 'kick' }, { tick: 729, type: 'crash1' }, { tick: 730, type: 'kick' }, { tick: 748, type: 'kick' }, { tick: 749, type: 'crash1' }, { tick: 816, type: 'crash1' }, { tick: 817, type: 'kick' }, { tick: 834, type: 'kick' }, { tick: 834, type: 'crash1' }, { tick: 849, type: 'kick' }, { tick: 850, type: 'crash1' }, { tick: 1003, type: 'crash1' }, { tick: 1004, type: 'kick' }, { tick: 1021, type: 'crash1' }, { tick: 1022, type: 'kick' }, { tick: 1091, type: 'crash1' }, { tick: 1091, type: 'kick' }, { tick: 1108, type: 'crash1' }, { tick: 1108, type: 'kick' }, { tick: 1122, type: 'crash1' }, { tick: 1123, type: 'kick' }, { tick: 1157, type: 'snare' }, { tick: 1165, type: 'snare' }, { tick: 1173, type: 'snare' }, { tick: 1180, type: 'snare' }, { tick: 1195, type: 'snare' }, { tick: 1204, type: 'snare' }, { tick: 1213, type: 'snare' }, { tick: 1221, type: 'snare' }, { tick: 1232, type: 'snare' }, { tick: 1242, type: 'snare' }, { tick: 1253, type: 'snare' }, { tick: 1272, type: 'snare' }, { tick: 1305, type: 'kick' }, { tick: 1305, type: 'crash1' }, { tick: 1501, type: 'crash1' }, { tick: 1503, type: 'kick' }, { tick: 1529, type: 'crash1' }, { tick: 1529, type: 'kick' }, { tick: 1552, type: 'kick' }, { tick: 1552, type: 'crash1' }, { tick: 1568, type: 'crash1' }, { tick: 1570, type: 'kick' }, { tick: 1776, type: 'crash1' }, { tick: 1777, type: 'kick' }, { tick: 1802, type: 'crash1' }, { tick: 1802, type: 'kick' }, { tick: 1825, type: 'crash1' }, { tick: 1826, type: 'kick' }, { tick: 1842, type: 'crash1' }, { tick: 1842, type: 'kick' }, { tick: 1858, type: 'snare' }, { tick: 1875, type: 'crash1' }, { tick: 1876, type: 'kick' }, { tick: 1896, type: 'snare' }, { tick: 1912, type: 'hihat' }, { tick: 1912, type: 'kick' }, { tick: 1930, type: 'snare' }, { tick: 1936, type: 'hihat' }, { tick: 1955, type: 'kick' }, { tick: 1961, type: 'hihat' }, { tick: 1964, type: 'snare' }, { tick: 1982, type: 'hihat' }, { tick: 1983, type: 'kick' }, { tick: 1999, type: 'hihat' }, { tick: 1999, type: 'snare' }, { tick: 2017, type: 'hihat' }, { tick: 2025, type: 'kick' }, { tick: 2032, type: 'hihat' }, { tick: 2035, type: 'snare' }, { tick: 2051, type: 'hihat' }, { tick: 2053, type: 'kick' }, { tick: 2068, type: 'hihat' }, { tick: 2069, type: 'snare' }, { tick: 2080, type: 'hihat' }, { tick: 2092, type: 'kick' }, { tick: 2101, type: 'hihat' }, { tick: 2102, type: 'snare' }, { tick: 2119, type: 'hihat' }, { tick: 2121, type: 'kick' }, { tick: 2135, type: 'hihat' }, { tick: 2137, type: 'snare' }, { tick: 2152, type: 'hihat' }, { tick: 2161, type: 'kick' }, { tick: 2167, type: 'hihat' }, { tick: 2172, type: 'snare' }, { tick: 2187, type: 'hihat' }, { tick: 2189, type: 'kick' }, { tick: 2204, type: 'hihat' }, { tick: 2205, type: 'snare' }, { tick: 2216, type: 'hihat' }, { tick: 2234, type: 'kick' }, { tick: 2240, type: 'hihat' }, { tick: 2243, type: 'snare' }, { tick: 2259, type: 'hihat' }, { tick: 2260, type: 'kick' }, { tick: 2274, type: 'kick' }, { tick: 2275, type: 'hihat' }, { tick: 2305, type: 'kick' }, { tick: 2305, type: 'hihat' }, { tick: 2313, type: 'snare' }, { tick: 2325, type: 'crash1' }, { tick: 2326, type: 'kick' }, { tick: 2348, type: 'crash1' }, { tick: 2349, type: 'kick' }, { tick: 2373, type: 'crash1' }, { tick: 2375, type: 'kick' }, { tick: 2389, type: 'crash1' }, { tick: 2391, type: 'kick' }, { tick: 2404, type: 'hihat' }, { tick: 2408, type: 'snare' }, { tick: 2421, type: 'hihat' }, { tick: 2431, type: 'kick' }, { tick: 2437, type: 'hihat' }, { tick: 2441, type: 'snare' }, { tick: 2457, type: 'hihat' }, { tick: 2458, type: 'kick' }, { tick: 2474, type: 'hihat' }, { tick: 2475, type: 'snare' }, { tick: 2486, type: 'hihat' }, { tick: 2494, type: 'kick' }, { tick: 2504, type: 'hihat' }, { tick: 2507, type: 'snare' }, { tick: 2524, type: 'hihat' }, { tick: 2526, type: 'kick' }, { tick: 2542, type: 'hihat' }, { tick: 2543, type: 'snare' }, { tick: 2562, type: 'hihat' }, { tick: 2571, type: 'kick' }, { tick: 2578, type: 'hihat' }, { tick: 2581, type: 'snare' }, { tick: 2598, type: 'hihat' }, { tick: 2599, type: 'kick' }, { tick: 2614, type: 'hihat' }, { tick: 2614, type: 'snare' }, { tick: 2626, type: 'kick' }, { tick: 2637, type: 'kick' }, { tick: 2644, type: 'hihat' }, { tick: 2655, type: 'snare' }, { tick: 2672, type: 'hihat' }, { tick: 2674, type: 'kick' }, { tick: 2689, type: 'hihat' }, { tick: 2689, type: 'snare' }, { tick: 2706, type: 'kick' }, { tick: 2714, type: 'kick' }, { tick: 2719, type: 'hihat' }, { tick: 2723, type: 'snare' }, { tick: 2740, type: 'hihat' }, { tick: 2741, type: 'kick' }, { tick: 2757, type: 'snare' }, { tick: 2757, type: 'hihat' }, { tick: 2770, type: 'kick' }, { tick: 2779, type: 'hihat' }, { tick: 2785, type: 'kick' }, { tick: 2791, type: 'hihat' }, { tick: 2797, type: 'snare' }, { tick: 2814, type: 'hihat' }, { tick: 2814, type: 'kick' }, { tick: 2829, type: 'hihat' }, { tick: 2830, type: 'snare' }, { tick: 2862, type: 'hihat' }, { tick: 2862, type: 'snare' }, { tick: 2880, type: 'crash1' }, { tick: 2902, type: 'crash1' }, { tick: 2903, type: 'kick' }, { tick: 2926, type: 'crash1' }, { tick: 2928, type: 'kick' }, { tick: 2941, type: 'crash1' }, { tick: 2944, type: 'kick' }, { tick: 2967, type: 'crash1' }, { tick: 2968, type: 'kick' }, { tick: 2990, type: 'crash1' }, { tick: 2992, type: 'kick' }, { tick: 3006, type: 'crash1' }, { tick: 3007, type: 'kick' }, { tick: 3023, type: 'hihat' }, { tick: 3040, type: 'hihat' }, { tick: 3059, type: 'hihat' }, { tick: 3078, type: 'hihat' }, { tick: 3097, type: 'hihat' }, { tick: 3113, type: 'hihat' }, { tick: 3131, type: 'hihat' }, { tick: 3149, type: 'crash1' }, { tick: 3149, type: 'kick' }, { tick: 3165, type: 'hihat' }, { tick: 3166, type: 'snare' }, { tick: 3183, type: 'hihat' }, { tick: 3191, type: 'kick' }, { tick: 3197, type: 'hihat' }, { tick: 3200, type: 'snare' }, { tick: 3216, type: 'hihat' }, { tick: 3218, type: 'kick' }, { tick: 3227, type: 'kick' }, { tick: 3233, type: 'hihat' }, { tick: 3236, type: 'snare' }, { tick: 3252, type: 'hihat' }, { tick: 3253, type: 'kick' }, { tick: 3268, type: 'snare' }, { tick: 3268, type: 'hihat' }, { tick: 3285, type: 'hihat' }, { tick: 3287, type: 'kick' }, { tick: 3295, type: 'kick' }, { tick: 3307, type: 'snare' }, { tick: 3307, type: 'hihat' }, { tick: 3324, type: 'kick' }, { tick: 3325, type: 'hihat' }, { tick: 3339, type: 'snare' }, { tick: 3340, type: 'hihat' }, { tick: 3358, type: 'hihat' }, { tick: 3358, type: 'kick' }, { tick: 3367, type: 'crash1' }, { tick: 3368, type: 'kick' }, { tick: 3384, type: 'crash1' }, { tick: 3385, type: 'kick' }, { tick: 3400, type: 'kick' }, { tick: 3400, type: 'hihat' }, { tick: 3415, type: 'hihat' }, { tick: 3416, type: 'snare' }, { tick: 3430, type: 'hihat' }, { tick: 3435, type: 'kick' }, { tick: 3444, type: 'kick' }, { tick: 3447, type: 'hihat' }, { tick: 3453, type: 'snare' }, { tick: 3469, type: 'hihat' }, { tick: 3481, type: 'snare' }, { tick: 3489, type: 'snare' }, { tick: 3504, type: 'tom1' }, { tick: 3513, type: 'tom1' }, { tick: 3522, type: 'tom1' }, { tick: 3529, type: 'tom1' }, { tick: 3540, type: 'kick' }, { tick: 3556, type: 'hihat' }, { tick: 3557, type: 'snare' }, { tick: 3575, type: 'hihat' }, { tick: 3585, type: 'hihat' }, { tick: 3586, type: 'kick' }, { tick: 3596, type: 'snare' }, { tick: 3623, type: 'crash1' }, { tick: 3624, type: 'kick' }, { tick: 3638, type: 'kick' }, { tick: 3638, type: 'crash1' }, { tick: 3654, type: 'hihat' }, { tick: 3669, type: 'hihat' }, { tick: 3669, type: 'snare' }, { tick: 3686, type: 'hihat' }, { tick: 3694, type: 'kick' }, { tick: 3699, type: 'hihat' }, { tick: 3704, type: 'snare' }, { tick: 3719, type: 'hihat' }, { tick: 3725, type: 'kick' }, { tick: 3734, type: 'hihat' }, { tick: 3735, type: 'kick' }, { tick: 3742, type: 'snare' }, { tick: 3757, type: 'hihat' }, { tick: 3758, type: 'kick' }, { tick: 3774, type: 'snare' }, { tick: 3774, type: 'hihat' }, { tick: 3789, type: 'kick' }, { tick: 3789, type: 'hihat' }, { tick: 3807, type: 'hihat' }, { tick: 3808, type: 'snare' }, { tick: 3824, type: 'hihat' }, { tick: 3832, type: 'kick' }, { tick: 3840, type: 'hihat' }, { tick: 3843, type: 'snare' }, { tick: 3858, type: 'hihat' }, { tick: 3861, type: 'kick' }, { tick: 3868, type: 'crash1' }, { tick: 3870, type: 'kick' }, { tick: 3886, type: 'crash1' }, { tick: 3887, type: 'kick' }, { tick: 3900, type: 'crash1' }, { tick: 3919, type: 'hihat' }, { tick: 3924, type: 'kick' }, { tick: 3949, type: 'hihat' }, { tick: 3953, type: 'snare' }, { tick: 3977, type: 'snare' }, { tick: 3985, type: 'snare' }, { tick: 3999, type: 'tom1' }, { tick: 4008, type: 'tom1' }, { tick: 4017, type: 'tom1' }, { tick: 4024, type: 'tom1' }, { tick: 4036, type: 'crash1' }, { tick: 4037, type: 'kick' }, { tick: 4052, type: 'snare' }, { tick: 4054, type: 'hihat' }, { tick: 4070, type: 'hihat' }, { tick: 4080, type: 'kick' }, { tick: 4085, type: 'hihat' }, { tick: 4088, type: 'snare' }, { tick: 4103, type: 'hihat' }, { tick: 4106, type: 'kick' }, { tick: 4114, type: 'crash1' }, { tick: 4114, type: 'kick' }, { tick: 4132, type: 'crash1' }, { tick: 4133, type: 'kick' }, { tick: 4148, type: 'crash1' }, { tick: 4150, type: 'kick' }, { tick: 4163, type: 'hihat' }, { tick: 4165, type: 'snare' }, { tick: 4180, type: 'hihat' }, { tick: 4191, type: 'kick' }, { tick: 4195, type: 'hihat' }, { tick: 4202, type: 'snare' }, { tick: 4215, type: 'hihat' }, { tick: 4221, type: 'kick' }, { tick: 4231, type: 'kick' }, { tick: 4237, type: 'kick' }, { tick: 4252, type: 'hihat' }, { tick: 4259, type: 'snare' }, { tick: 4270, type: 'snare' }, { tick: 4288, type: 'crash1' }, { tick: 4290, type: 'kick' }, { tick: 4305, type: 'hihat' }, { tick: 4306, type: 'snare' }, { tick: 4322, type: 'hihat' }, { tick: 4335, type: 'kick' }, { tick: 4339, type: 'hihat' }, { tick: 4344, type: 'snare' }, { tick: 4357, type: 'hihat' }, { tick: 4367, type: 'kick' }, { tick: 4367, type: 'crash1' }, { tick: 4385, type: 'crash1' }, { tick: 4386, type: 'kick' }, { tick: 4400, type: 'crash1' }, { tick: 4401, type: 'kick' }, { tick: 4415, type: 'hihat' }, { tick: 4417, type: 'snare' }, { tick: 4432, type: 'hihat' }, { tick: 4442, type: 'kick' }, { tick: 4447, type: 'hihat' }, { tick: 4451, type: 'snare' }, { tick: 4465, type: 'hihat' }, { tick: 4476, type: 'snare' }, { tick: 4483, type: 'snare' }, { tick: 4501, type: 'snare' }, { tick: 4508, type: 'snare' }, { tick: 4514, type: 'tom1' }, { tick: 4522, type: 'tom1' }, { tick: 4536, type: 'crash1' }, { tick: 4553, type: 'snare' }, { tick: 4553, type: 'hihat' }, { tick: 4569, type: 'hihat' }, { tick: 4581, type: 'kick' }, { tick: 4585, type: 'hihat' }, { tick: 4589, type: 'snare' }, { tick: 4604, type: 'hihat' }, { tick: 4615, type: 'crash1' }, { tick: 4616, type: 'kick' }, { tick: 4633, type: 'crash1' }, { tick: 4634, type: 'kick' }, { tick: 4648, type: 'kick' }, { tick: 4649, type: 'crash1' }, { tick: 4665, type: 'hihat' }, { tick: 4665, type: 'snare' }, { tick: 4680, type: 'hihat' }, { tick: 4690, type: 'kick' }, { tick: 4696, type: 'hihat' }, { tick: 4700, type: 'snare' }, { tick: 4714, type: 'hihat' }, { tick: 4723, type: 'snare' }, { tick: 4730, type: 'snare' }, { tick: 4746, type: 'tom1' }, { tick: 4755, type: 'tom1' }, { tick: 4763, type: 'tom1' }, { tick: 4770, type: 'tom1' }, { tick: 4781, type: 'kick' }, { tick: 4799, type: 'snare' }, { tick: 4799, type: 'hihat' }, { tick: 4815, type: 'hihat' }, { tick: 4828, type: 'kick' }, { tick: 4837, type: 'snare' }, { tick: 4863, type: 'crash1' }, { tick: 4864, type: 'kick' }, { tick: 4879, type: 'crash1' }, { tick: 4881, type: 'kick' }, { tick: 4894, type: 'crash1' }, { tick: 4894, type: 'kick' }, { tick: 4910, type: 'hihat' }, { tick: 4912, type: 'snare' }, { tick: 4927, type: 'hihat' }, { tick: 4934, type: 'kick' }, { tick: 4942, type: 'hihat' }, { tick: 4946, type: 'snare' }, { tick: 4961, type: 'hihat' }, { tick: 4974, type: 'snare' }, { tick: 4982, type: 'snare' }, { tick: 4996, type: 'snare' }, { tick: 5004, type: 'snare' }, { tick: 5009, type: 'tom1' }, { tick: 5019, type: 'snare' }, { tick: 5027, type: 'snare' }, { tick: 5032, type: 'crash1' }, { tick: 5082, type: 'hihat' }, { tick: 5082, type: 'snare' }, { tick: 5103, type: 'crash1' }, { tick: 5110, type: 'kick' }, { tick: 5127, type: 'kick' }, { tick: 5144, type: 'snare' }, { tick: 5153, type: 'snare' }, { tick: 5162, type: 'snare' }, { tick: 5171, type: 'snare' }, { tick: 5177, type: 'snare' }, { tick: 5185, type: 'snare' }, { tick: 5194, type: 'snare' }, { tick: 5200, type: 'snare' }, { tick: 5205, type: 'snare' }, { tick: 5211, type: 'crash1' }, { tick: 5214, type: 'kick' }, { tick: 5247, type: 'hihat' }, { tick: 5251, type: 'snare' }, { tick: 5265, type: 'snare' }, { tick: 5265, type: 'hihat' }, { tick: 5282, type: 'kick' }, { tick: 5283, type: 'hihat' }, { tick: 5302, type: 'hihat' }, { tick: 5311, type: 'kick' }, { tick: 5315, type: 'hihat' }, { tick: 5318, type: 'snare' }, { tick: 5332, type: 'hihat' }, { tick: 5333, type: 'snare' }, { tick: 5349, type: 'hihat' }, { tick: 5350, type: 'kick' }, { tick: 5366, type: 'hihat' }, { tick: 5374, type: 'kick' }, { tick: 5380, type: 'hihat' }, { tick: 5384, type: 'snare' }, { tick: 5399, type: 'hihat' }, { tick: 5400, type: 'snare' }, { tick: 5416, type: 'snare' }, { tick: 5425, type: 'snare' }, { tick: 5434, type: 'snare' }, { tick: 5447, type: 'tom1' }, { tick: 5456, type: 'tom1' }, { tick: 5464, type: 'tom1' }, { tick: 5475, type: 'snare' }, { tick: 5484, type: 'kick' }, { tick: 5484, type: 'crash1' }, { tick: 5516, type: 'hihat' }, { tick: 5518, type: 'snare' }, { tick: 5533, type: 'hihat' }, { tick: 5535, type: 'snare' }, { tick: 5549, type: 'hihat' }, { tick: 5551, type: 'kick' }, { tick: 5566, type: 'hihat' }, { tick: 5575, type: 'hihat' }, { tick: 5578, type: 'kick' }, { tick: 5586, type: 'snare' }, { tick: 5601, type: 'hihat' }, { tick: 5602, type: 'snare' }, { tick: 5616, type: 'hihat' }, { tick: 5618, type: 'kick' }, { tick: 5636, type: 'hihat' }, { tick: 5646, type: 'kick' }, { tick: 5651, type: 'hihat' }, { tick: 5655, type: 'snare' }, { tick: 5671, type: 'hihat' }, { tick: 5673, type: 'snare' }, { tick: 5689, type: 'snare' }, { tick: 5697, type: 'snare' }, { tick: 5708, type: 'snare' }, { tick: 5715, type: 'snare' }, { tick: 5723, type: 'tom1' }, { tick: 5740, type: 'tom1' }, { tick: 5745, type: 'snare' }, { tick: 5754, type: 'snare' }, { tick: 5760, type: 'crash1' }, { tick: 5762, type: 'kick' }, { tick: 5795, type: 'hihat' }, { tick: 5796, type: 'snare' }, { tick: 5811, type: 'hihat' }, { tick: 5812, type: 'snare' }, { tick: 5829, type: 'hihat' }, { tick: 5830, type: 'kick' }, { tick: 5845, type: 'hihat' }, { tick: 5852, type: 'kick' }, { tick: 5862, type: 'snare' }, { tick: 5863, type: 'hihat' }, { tick: 5879, type: 'snare' }, { tick: 5893, type: 'hihat' }, { tick: 5896, type: 'kick' }, { tick: 5912, type: 'hihat' }, { tick: 5920, type: 'kick' }, { tick: 5929, type: 'hihat' }, { tick: 5930, type: 'snare' }, { tick: 5946, type: 'hihat' }, { tick: 5946, type: 'snare' }, { tick: 5963, type: 'snare' }, { tick: 5971, type: 'snare' }, { tick: 5979, type: 'snare' }, { tick: 5988, type: 'snare' }, { tick: 5995, type: 'tom1' }, { tick: 6004, type: 'tom1' }, { tick: 6013, type: 'tom1' }, { tick: 6020, type: 'tom1' }, { tick: 6031, type: 'crash1' }, { tick: 6033, type: 'kick' }, { tick: 6066, type: 'hihat' }, { tick: 6070, type: 'snare' }, { tick: 6084, type: 'snare' }, { tick: 6085, type: 'hihat' }, { tick: 6101, type: 'hihat' }, { tick: 6103, type: 'kick' }, { tick: 6119, type: 'hihat' }, { tick: 6124, type: 'kick' }, { tick: 6135, type: 'snare' }, { tick: 6138, type: 'hihat' }, { tick: 6154, type: 'snare' }, { tick: 6168, type: 'hihat' }, { tick: 6170, type: 'kick' }, { tick: 6187, type: 'hihat' }, { tick: 6196, type: 'kick' }, { tick: 6204, type: 'hihat' }, { tick: 6205, type: 'snare' }, { tick: 6221, type: 'hihat' }, { tick: 6221, type: 'snare' }, { tick: 6238, type: 'snare' }, { tick: 6246, type: 'snare' }, { tick: 6251, type: 'snare' }, { tick: 6257, type: 'snare' }, { tick: 6275, type: 'tom1' }, { tick: 6283, type: 'tom1' }, { tick: 6309, type: 'crash1' }, { tick: 6309, type: 'kick' }, { tick: 6322, type: 'crash1' }, { tick: 6324, type: 'kick' }, { tick: 6376, type: 'crash1' }, { tick: 6378, type: 'kick' }, { tick: 6392, type: 'crash1' }, { tick: 6394, type: 'kick' }, { tick: 6445, type: 'crash1' }, { tick: 6446, type: 'kick' }, { tick: 6460, type: 'hihat' }, { tick: 6464, type: 'snare' }, { tick: 6480, type: 'hihat' }, { tick: 6493, type: 'kick' }, { tick: 6497, type: 'hihat' }, ];
User prompt
level 1in default notalarını bu sekilde degistir: var songNotes = [ { tick: 0, type: 'crash1' }, { tick: 0, type: 'kick' }, { tick: 0, type: 'hihat' }, { tick: 17, type: 'hihat' }, { tick: 34, type: 'snare' }, { tick: 34, type: 'hihat' }, { tick: 51, type: 'hihat' }, { tick: 68, type: 'kick' }, { tick: 68, type: 'hihat' }, { tick: 85, type: 'kick' }, { tick: 85, type: 'hihat' }, { tick: 102, type: 'snare' }, { tick: 102, type: 'hihat' }, { tick: 119, type: 'hihat' }, { tick: 136, type: 'crash1' }, { tick: 136, type: 'kick' }, { tick: 170, type: 'snare' }, { tick: 204, type: 'kick' }, { tick: 221, type: 'kick' }, { tick: 238, type: 'snare' }, { tick: 272, type: 'crash1' }, { tick: 272, type: 'kick' }, { tick: 306, type: 'snare' }, { tick: 340, type: 'kick' }, { tick: 357, type: 'kick' }, { tick: 374, type: 'snare' }, { tick: 408, type: 'crash1' }, { tick: 408, type: 'kick' }, { tick: 442, type: 'snare' }, { tick: 476, type: 'kick' }, { tick: 493, type: 'kick' }, { tick: 510, type: 'snare' }, { tick: 544, type: 'crash1' }, { tick: 544, type: 'kick' }, { tick: 544, type: 'hihat' }, { tick: 561, type: 'hihat' }, { tick: 578, type: 'snare' }, { tick: 578, type: 'hihat' }, { tick: 595, type: 'hihat' }, { tick: 612, type: 'kick' }, { tick: 612, type: 'hihat' }, { tick: 629, type: 'kick' }, { tick: 629, type: 'hihat' }, { tick: 646, type: 'snare' }, { tick: 646, type: 'hihat' }, { tick: 663, type: 'hihat' }, { tick: 680, type: 'crash1' }, { tick: 680, type: 'kick' }, { tick: 714, type: 'snare' }, { tick: 748, type: 'kick' }, { tick: 765, type: 'kick' }, { tick: 782, type: 'snare' }, { tick: 816, type: 'crash1' }, { tick: 816, type: 'kick' }, { tick: 850, type: 'snare' }, { tick: 884, type: 'kick' }, { tick: 901, type: 'kick' }, { tick: 918, type: 'snare' }, { tick: 952, type: 'crash1' }, { tick: 952, type: 'kick' }, { tick: 986, type: 'snare' }, { tick: 1020, type: 'kick' }, { tick: 1037, type: 'kick' }, { tick: 1054, type: 'snare' }, { tick: 1088, type: 'crash1' }, { tick: 1088, type: 'kick' }, { tick: 1088, type: 'hihat' }, { tick: 1105, type: 'hihat' }, { tick: 1122, type: 'snare' }, { tick: 1122, type: 'hihat' }, { tick: 1139, type: 'hihat' }, { tick: 1156, type: 'kick' }, { tick: 1156, type: 'hihat' }, { tick: 1173, type: 'kick' }, { tick: 1173, type: 'hihat' }, { tick: 1190, type: 'snare' }, { tick: 1190, type: 'hihat' }, { tick: 1207, type: 'hihat' }, { tick: 1224, type: 'crash1' }, { tick: 1224, type: 'kick' }, { tick: 1258, type: 'snare' }, { tick: 1292, type: 'kick' }, { tick: 1309, type: 'kick' }, { tick: 1326, type: 'snare' }, { tick: 1360, type: 'crash1' }, { tick: 1360, type: 'kick' }, { tick: 1394, type: 'snare' }, { tick: 1428, type: 'kick' }, { tick: 1445, type: 'kick' }, { tick: 1462, type: 'snare' }, { tick: 1496, type: 'crash1' }, { tick: 1496, type: 'kick' }, { tick: 1530, type: 'snare' }, { tick: 1564, type: 'kick' }, { tick: 1581, type: 'kick' }, { tick: 1598, type: 'snare' }, { tick: 1632, type: 'crash1' }, { tick: 1632, type: 'kick' }, { tick: 1632, type: 'hihat' }, { tick: 1649, type: 'hihat' }, { tick: 1666, type: 'snare' }, { tick: 1666, type: 'hihat' }, { tick: 1683, type: 'hihat' }, { tick: 1700, type: 'kick' }, { tick: 1700, type: 'hihat' }, { tick: 1717, type: 'kick' }, { tick: 1717, type: 'hihat' }, { tick: 1734, type: 'snare' }, { tick: 1734, type: 'hihat' }, { tick: 1751, type: 'hihat' }, { tick: 1768, type: 'crash1' }, { tick: 1768, type: 'kick' }, { tick: 1802, type: 'snare' }, { tick: 1836, type: 'kick' }, { tick: 1853, type: 'kick' }, { tick: 1870, type: 'snare' }, { tick: 1904, type: 'crash1' }, { tick: 1904, type: 'kick' }, { tick: 1938, type: 'snare' }, { tick: 1972, type: 'kick' }, { tick: 1989, type: 'kick' }, { tick: 2006, type: 'snare' }, { tick: 2040, type: 'crash1' }, { tick: 2040, type: 'kick' }, { tick: 2074, type: 'snare' }, { tick: 2108, type: 'kick' }, { tick: 2125, type: 'kick' }, { tick: 2136, type: 'tom1' }, { tick: 2142, type: 'snare' }, { tick: 2146, type: 'tom1' }, { tick: 2156, type: 'tom1' }, { tick: 2166, type: 'tom1' }, { tick: 2176, type: 'crash1' }, { tick: 2176, type: 'kick' }, { tick: 2176, type: 'hihat' }, { tick: 2193, type: 'hihat' }, { tick: 2210, type: 'snare' }, { tick: 2210, type: 'hihat' }, { tick: 2227, type: 'hihat' }, { tick: 2244, type: 'kick' }, { tick: 2244, type: 'hihat' }, { tick: 2261, type: 'kick' }, { tick: 2261, type: 'hihat' }, { tick: 2278, type: 'snare' }, { tick: 2278, type: 'hihat' }, { tick: 2295, type: 'hihat' }, { tick: 2312, type: 'crash1' }, { tick: 2312, type: 'kick' }, { tick: 2346, type: 'snare' }, { tick: 2380, type: 'kick' }, { tick: 2397, type: 'kick' }, { tick: 2414, type: 'snare' }, { tick: 2448, type: 'crash1' }, { tick: 2448, type: 'kick' }, { tick: 2482, type: 'snare' }, { tick: 2516, type: 'kick' }, { tick: 2533, type: 'kick' }, { tick: 2550, type: 'snare' }, { tick: 2584, type: 'crash1' }, { tick: 2584, type: 'kick' }, { tick: 2618, type: 'snare' }, { tick: 2652, type: 'kick' }, { tick: 2669, type: 'kick' }, { tick: 2686, type: 'snare' }, { tick: 2720, type: 'crash1' }, { tick: 2720, type: 'kick' }, { tick: 2720, type: 'hihat' }, { tick: 2737, type: 'hihat' }, { tick: 2754, type: 'snare' }, { tick: 2754, type: 'hihat' }, { tick: 2771, type: 'hihat' }, { tick: 2788, type: 'kick' }, { tick: 2788, type: 'hihat' }, { tick: 2805, type: 'kick' }, { tick: 2805, type: 'hihat' }, { tick: 2822, type: 'snare' }, { tick: 2822, type: 'hihat' }, { tick: 2839, type: 'hihat' }, { tick: 2856, type: 'crash1' }, { tick: 2856, type: 'kick' }, { tick: 2890, type: 'snare' }, { tick: 2924, type: 'kick' }, { tick: 2941, type: 'kick' }, { tick: 2958, type: 'snare' }, { tick: 2992, type: 'crash1' }, { tick: 2992, type: 'kick' }, { tick: 3026, type: 'snare' }, { tick: 3060, type: 'kick' }, { tick: 3077, type: 'kick' }, { tick: 3094, type: 'snare' }, { tick: 3128, type: 'crash1' }, { tick: 3128, type: 'kick' }, { tick: 3162, type: 'snare' }, { tick: 3196, type: 'kick' }, { tick: 3213, type: 'kick' }, { tick: 3230, type: 'snare' }, { tick: 3264, type: 'crash1' }, { tick: 3264, type: 'kick' }, { tick: 3264, type: 'hihat' }, { tick: 3281, type: 'hihat' }, { tick: 3298, type: 'snare' }, { tick: 3298, type: 'hihat' }, { tick: 3315, type: 'hihat' }, { tick: 3332, type: 'kick' }, { tick: 3332, type: 'hihat' }, { tick: 3349, type: 'kick' }, { tick: 3349, type: 'hihat' }, { tick: 3366, type: 'snare' }, { tick: 3366, type: 'hihat' }, { tick: 3383, type: 'hihat' }, { tick: 3400, type: 'crash1' }, { tick: 3400, type: 'kick' }, { tick: 3434, type: 'snare' }, { tick: 3468, type: 'kick' }, { tick: 3485, type: 'kick' }, { tick: 3502, type: 'snare' }, { tick: 3536, type: 'crash1' }, { tick: 3536, type: 'kick' }, { tick: 3570, type: 'snare' }, { tick: 3604, type: 'kick' }, { tick: 3621, type: 'kick' }, { tick: 3638, type: 'snare' }, { tick: 3672, type: 'crash1' }, { tick: 3672, type: 'kick' }, { tick: 3706, type: 'snare' }, { tick: 3740, type: 'kick' }, { tick: 3757, type: 'kick' }, { tick: 3774, type: 'snare' }, { tick: 3808, type: 'crash1' }, { tick: 3808, type: 'kick' }, { tick: 3808, type: 'hihat' }, { tick: 3825, type: 'hihat' }, { tick: 3842, type: 'snare' }, { tick: 3842, type: 'hihat' }, { tick: 3859, type: 'hihat' }, { tick: 3876, type: 'kick' }, { tick: 3876, type: 'hihat' }, { tick: 3893, type: 'kick' }, { tick: 3893, type: 'hihat' }, { tick: 3910, type: 'snare' }, { tick: 3910, type: 'hihat' }, { tick: 3927, type: 'hihat' }, { tick: 3944, type: 'crash1' }, { tick: 3944, type: 'kick' }, { tick: 3978, type: 'snare' }, { tick: 4012, type: 'kick' }, { tick: 4029, type: 'kick' }, { tick: 4046, type: 'snare' }, { tick: 4080, type: 'crash1' }, { tick: 4080, type: 'kick' }, { tick: 4114, type: 'snare' }, { tick: 4148, type: 'kick' }, { tick: 4165, type: 'kick' }, { tick: 4182, type: 'snare' }, { tick: 4216, type: 'crash1' }, { tick: 4216, type: 'kick' }, { tick: 4250, type: 'snare' }, { tick: 4284, type: 'kick' }, { tick: 4301, type: 'kick' }, { tick: 4312, type: 'tom1' }, { tick: 4318, type: 'snare' }, { tick: 4322, type: 'tom1' }, { tick: 4332, type: 'tom1' }, { tick: 4342, type: 'tom1' }, { tick: 4352, type: 'crash1' }, { tick: 4352, type: 'kick' }, { tick: 4352, type: 'hihat' }, { tick: 4369, type: 'hihat' }, { tick: 4386, type: 'snare' }, { tick: 4386, type: 'hihat' }, { tick: 4403, type: 'hihat' }, { tick: 4420, type: 'kick' }, { tick: 4420, type: 'hihat' }, { tick: 4437, type: 'kick' }, { tick: 4437, type: 'hihat' }, { tick: 4454, type: 'snare' }, { tick: 4454, type: 'hihat' }, { tick: 4471, type: 'hihat' }, { tick: 4488, type: 'crash1' }, { tick: 4488, type: 'kick' }, { tick: 4522, type: 'snare' }, { tick: 4556, type: 'kick' }, { tick: 4573, type: 'kick' }, { tick: 4590, type: 'snare' }, { tick: 4624, type: 'crash1' }, { tick: 4624, type: 'kick' }, { tick: 4658, type: 'snare' }, { tick: 4692, type: 'kick' }, { tick: 4709, type: 'kick' }, { tick: 4726, type: 'snare' }, { tick: 4760, type: 'crash1' }, { tick: 4760, type: 'kick' }, { tick: 4794, type: 'snare' }, { tick: 4828, type: 'kick' }, { tick: 4845, type: 'kick' }, { tick: 4862, type: 'snare' }, { tick: 4896, type: 'crash1' }, { tick: 4896, type: 'kick' }, { tick: 4896, type: 'hihat' }, { tick: 4913, type: 'hihat' }, { tick: 4930, type: 'snare' }, { tick: 4930, type: 'hihat' }, { tick: 4947, type: 'hihat' }, { tick: 4964, type: 'kick' }, { tick: 4964, type: 'hihat' }, { tick: 4981, type: 'kick' }, { tick: 4981, type: 'hihat' }, { tick: 4998, type: 'snare' }, { tick: 4998, type: 'hihat' }, { tick: 5015, type: 'hihat' }, { tick: 5032, type: 'crash1' }, { tick: 5032, type: 'kick' }, { tick: 5066, type: 'snare' }, { tick: 5100, type: 'kick' }, { tick: 5117, type: 'kick' }, { tick: 5134, type: 'snare' }, { tick: 5168, type: 'crash1' }, { tick: 5168, type: 'kick' }, { tick: 5202, type: 'snare' }, { tick: 5236, type: 'kick' }, { tick: 5253, type: 'kick' }, { tick: 5270, type: 'snare' }, { tick: 5304, type: 'crash1' }, { tick: 5304, type: 'kick' }, { tick: 5338, type: 'snare' }, { tick: 5372, type: 'kick' }, { tick: 5389, type: 'kick' }, { tick: 5406, type: 'snare' }, { tick: 5440, type: 'crash1' }, { tick: 5440, type: 'kick' }, { tick: 5440, type: 'hihat' }, { tick: 5457, type: 'hihat' }, { tick: 5474, type: 'snare' }, { tick: 5474, type: 'hihat' }, { tick: 5491, type: 'hihat' }, { tick: 5508, type: 'kick' }, { tick: 5508, type: 'hihat' }, { tick: 5525, type: 'kick' }, { tick: 5525, type: 'hihat' }, { tick: 5542, type: 'snare' }, { tick: 5542, type: 'hihat' }, { tick: 5559, type: 'hihat' }, { tick: 5576, type: 'crash1' }, { tick: 5576, type: 'kick' }, { tick: 5610, type: 'snare' }, { tick: 5644, type: 'kick' }, { tick: 5661, type: 'kick' }, { tick: 5678, type: 'snare' }, { tick: 5712, type: 'crash1' }, { tick: 5712, type: 'kick' }, { tick: 5746, type: 'snare' }, { tick: 5780, type: 'kick' }, { tick: 5797, type: 'kick' }, { tick: 5814, type: 'snare' }, { tick: 5848, type: 'crash1' }, { tick: 5848, type: 'kick' }, { tick: 5882, type: 'snare' }, { tick: 5916, type: 'kick' }, { tick: 5933, type: 'kick' }, { tick: 5950, type: 'snare' }, { tick: 5984, type: 'crash1' }, { tick: 5984, type: 'kick' }, { tick: 5984, type: 'hihat' }, { tick: 6001, type: 'hihat' }, { tick: 6018, type: 'snare' }, { tick: 6018, type: 'hihat' }, { tick: 6035, type: 'hihat' }, { tick: 6052, type: 'kick' }, { tick: 6052, type: 'hihat' }, { tick: 6069, type: 'kick' }, { tick: 6069, type: 'hihat' }, { tick: 6086, type: 'snare' }, { tick: 6086, type: 'hihat' }, { tick: 6103, type: 'hihat' }, { tick: 6120, type: 'crash1' }, { tick: 6120, type: 'kick' }, { tick: 6154, type: 'snare' }, { tick: 6188, type: 'kick' }, { tick: 6205, type: 'kick' }, { tick: 6222, type: 'snare' }, { tick: 6256, type: 'crash1' }, { tick: 6256, type: 'kick' }, { tick: 6290, type: 'snare' }, { tick: 6324, type: 'kick' }, { tick: 6341, type: 'kick' }, { tick: 6358, type: 'snare' }, ];
User prompt
oyun bozuldu level 1 için belirtilen notalar gelmiyor ve müzik de çalmıyor
User prompt
Please fix the bug: 'Cannot set properties of undefined (setting 'visible')' in or related to this line: 'recordTxt.visible = false;' Line Number: 1191
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ // DrumPad: Interactive drum pad at the bottom var DrumPad = Container.expand(function () { var self = Container.call(this); // .padType: 'kick', 'snare', etc. (set after creation) self.padType = null; self.asset = null; // .isPressed: for visual feedback self.isPressed = false; // Set up asset self.setPadType = function (type) { self.padType = type; var assetId = type + 'Pad'; if (self.asset) self.removeChild(self.asset); var size = PAD_SIZES[type]; self.asset = self.attachAsset(assetId, { anchorX: 0.5, anchorY: 0.5, width: size ? size.w : undefined, height: size ? size.h : undefined }); }; // Visual feedback on press self.flash = function () { if (!self.asset) return; tween(self.asset, { alpha: 0.5 }, { duration: 60, onFinish: function onFinish() { tween(self.asset, { alpha: 1 }, { duration: 120 }); } }); }; return self; }); // Note: Falling note bar var Note = Container.expand(function () { var self = Container.call(this); // .noteType: 'kick', 'snare', etc. self.noteType = null; self.asset = null; self.hit = false; // If already hit self.setNoteType = function (type) { self.noteType = type; var assetId = type + 'Note'; if (self.asset) self.removeChild(self.asset); self.asset = self.attachAsset(assetId, { anchorX: 0.5, anchorY: 0.5 }); }; // Called every tick self.update = function () { self.y += noteSpeed; }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x181818 }); /**** * Game Code ****/ // 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; // --- 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: "Level 1", music: "MasterofUpit", notes: [{ tick: 0, type: 'crash1' }, { tick: 60, type: 'crash1' }, { tick: 77, type: 'crash1' }, { tick: 92, type: 'crash1' }, { tick: 199, type: 'crash1' }, { tick: 453, type: 'crash1' }, { tick: 469, type: 'crash1' }, { tick: 537, type: 'crash1' }, { tick: 554, type: 'crash1' }, { tick: 571, type: 'crash1' }, { tick: 726, type: 'crash1' }, { tick: 744, type: 'crash1' }, { tick: 814, type: 'crash1' }, { tick: 830, type: 'crash1' }, { tick: 848, type: 'crash1' }, { tick: 1001, type: 'crash1' }, { tick: 1016, type: 'crash1' }, { tick: 1086, type: 'crash1' }, { tick: 1105, type: 'crash1' }, { tick: 1122, type: 'crash1' }, { tick: 1293, type: 'crash1' }, { tick: 1500, type: 'crash1' }, { tick: 1526, type: 'crash1' }, { tick: 1550, type: 'crash1' }, { tick: 1566, type: 'crash1' }, { tick: 1771, type: 'crash1' }, { tick: 1799, type: 'crash1' }, { tick: 1825, type: 'crash1' }, { tick: 1841, type: 'crash1' }, { tick: 1858, type: 'snare' }, { tick: 1874, type: 'kick' }, { tick: 1890, type: 'snare' }, { tick: 1911, type: 'kick' }, { tick: 1928, type: 'snare' }, { tick: 1939, type: 'kick' }, { tick: 1954, type: 'kick' }, { tick: 1962, type: 'snare' }, { tick: 1981, type: 'kick' }, { tick: 1995, type: 'snare' }, { tick: 2014, type: 'kick' }, { tick: 2022, type: 'kick' }, { tick: 2030, type: 'snare' }, { tick: 2051, type: 'kick' }, { tick: 2066, type: 'snare' }, { tick: 2076, type: 'kick' }, { tick: 2092, type: 'kick' }, { tick: 2101, type: 'snare' }, { tick: 2120, type: 'kick' }, { tick: 2135, type: 'snare' }, { tick: 2153, type: 'kick' }, { tick: 2160, type: 'kick' }, { tick: 2169, type: 'snare' }, { tick: 2189, type: 'kick' }, { tick: 2204, type: 'snare' }, { tick: 2214, type: 'kick' }, { tick: 2231, type: 'kick' }, { tick: 2240, type: 'snare' }, { tick: 2258, type: 'kick' }, { tick: 2274, type: 'snare' }, { tick: 2290, type: 'kick' }, { tick: 2303, type: 'snare' }, { tick: 2320, type: 'crash1' }, { tick: 2346, type: 'crash1' }, { tick: 2371, type: 'crash1' }, { tick: 2389, type: 'snare' }, { tick: 2407, type: 'snare' }, { tick: 2441, type: 'snare' }, { tick: 2460, type: 'kick' }, { tick: 2476, type: 'snare' }, { tick: 2486, type: 'kick' }, { tick: 2501, type: 'kick' }, { tick: 2511, type: 'snare' }, { tick: 2531, type: 'kick' }, { tick: 2548, type: 'snare' }, { tick: 2563, type: 'kick' }, { tick: 2571, type: 'kick' }, { tick: 2580, type: 'snare' }, { tick: 2599, type: 'kick' }, { tick: 2615, type: 'snare' }, { tick: 2625, type: 'kick' }, { tick: 2640, type: 'kick' }, { tick: 2649, type: 'snare' }, { tick: 2668, type: 'kick' }, { tick: 2684, type: 'snare' }, { tick: 2701, type: 'kick' }, { tick: 2709, type: 'kick' }, { tick: 2719, type: 'snare' }, { tick: 2739, type: 'kick' }, { tick: 2754, type: 'snare' }, { tick: 2764, type: 'kick' }, { tick: 2786, type: 'snare' }, { tick: 2806, type: 'kick' }, { tick: 2820, type: 'snare' }, { tick: 2835, type: 'kick' }, { tick: 2849, type: 'kick' }, { tick: 2857, type: 'snare' }, { tick: 2875, type: 'hihat' }, { tick: 2898, type: 'crash1' }, { tick: 2923, type: 'crash1' }, { tick: 2938, type: 'crash1' }, { tick: 2964, type: 'crash1' }, { tick: 2990, type: 'crash1' }, { tick: 3006, type: 'crash1' }, { tick: 3022, type: 'hihat' }, { tick: 3038, type: 'hihat' }, { tick: 3058, type: 'hihat' }, { tick: 3077, type: 'hihat' }, { tick: 3095, type: 'hihat' }, { tick: 3113, type: 'hihat' }, { tick: 3131, type: 'hihat' }, { tick: 3146, type: 'crash1' }, { tick: 3164, type: 'snare' }, { tick: 3181, type: 'kick' }, { tick: 3188, type: 'kick' }, { tick: 3197, type: 'snare' }, { tick: 3216, type: 'kick' }, { tick: 3227, type: 'snare' }, { tick: 3248, type: 'kick' }, { tick: 3264, type: 'snare' }, { tick: 3281, type: 'kick' }, { tick: 3299, type: 'snare' }, { tick: 3318, type: 'kick' }, { tick: 3325, type: 'kick' }, { tick: 3334, type: 'snare' }, { tick: 3352, type: 'kick' }, { tick: 3362, type: 'snare' }, { tick: 3380, type: 'snare' }, { tick: 3398, type: 'kick' }, { tick: 3414, type: 'snare' }, { tick: 3431, type: 'kick' }, { tick: 3438, type: 'kick' }, { tick: 3448, type: 'snare' }, { tick: 3468, type: 'kick' }, { tick: 3486, type: 'snare' }, { tick: 3503, type: 'kick' }, { tick: 3517, type: 'snare' }, { tick: 3534, type: 'kick' }, { tick: 3550, type: 'snare' }, { tick: 3570, type: 'kick' }, { tick: 3584, type: 'snare' }, { tick: 3601, type: 'kick' }, { tick: 3611, type: 'snare' }, { tick: 3625, type: 'crash1' }, { tick: 3646, type: 'snare' }, { tick: 3663, type: 'kick' }, { tick: 3690, type: 'snare' }, { tick: 3779, type: 'kick' }, { tick: 3795, type: 'snare' }, { tick: 3813, type: 'kick' }, { tick: 3820, type: 'kick' }, { tick: 3829, type: 'snare' }, { tick: 3846, type: 'kick' }, { tick: 3875, type: 'crash1' }, { tick: 3899, type: 'snare' }, { tick: 3939, type: 'snare' }, { tick: 4030, type: 'kick' }, { tick: 4047, type: 'snare' }, { tick: 4066, type: 'kick' }, { tick: 4072, type: 'kick' }, { tick: 4081, type: 'snare' }, { tick: 4100, type: 'kick' }, { tick: 4127, type: 'crash1' }, { tick: 4144, type: 'kick' }, { tick: 4161, type: 'snare' }, { tick: 4179, type: 'kick' }, { tick: 4186, type: 'kick' }, { tick: 4195, type: 'snare' }, { tick: 4214, type: 'kick' }, { tick: 4228, type: 'snare' }, { tick: 4248, type: 'kick' }, { tick: 4264, type: 'snare' }, { tick: 4281, type: 'kick' }, { tick: 4297, type: 'snare' }, { tick: 4315, type: 'kick' }, { tick: 4330, type: 'snare' }, { tick: 4347, type: 'crash1' }, { tick: 4357, type: 'crash1' }, { tick: 4376, type: 'crash1' }, { tick: 4395, type: 'kick' }, { tick: 4411, type: 'snare' }, { tick: 4429, type: 'kick' }, { tick: 4435, type: 'kick' }, { tick: 4444, type: 'snare' }, { tick: 4461, type: 'kick' }, { tick: 4471, type: 'snare' }, { tick: 4478, type: 'snare' }, { tick: 4495, type: 'tom1' }, { tick: 4502, type: 'tom1' }, { tick: 4509, type: 'tom1' }, { tick: 4516, type: 'tom1' }, { tick: 4546, type: 'snare' }, { tick: 4580, type: 'snare' }, { tick: 4598, type: 'kick' }, { tick: 4622, type: 'crash1' }, { tick: 4652, type: 'kick' }, { tick: 4663, type: 'snare' }, { tick: 4679, type: 'kick' }, { tick: 4686, type: 'kick' }, { tick: 4695, type: 'snare' }, { tick: 4715, type: 'snare' }, { tick: 4726, type: 'tom1' }, { tick: 4733, type: 'tom1' }, { tick: 4754, type: 'snare' }, { tick: 4761, type: 'snare' }, { tick: 4767, type: 'snare' }, { tick: 4784, type: 'crash1' }, { tick: 4799, type: 'kick' }, { tick: 4834, type: 'snare' }, { tick: 4851, type: 'kick' }, { tick: 4862, type: 'kick' }, { tick: 4880, type: 'snare' }, { tick: 4896, type: 'kick' }, { tick: 4912, type: 'snare' }, { tick: 4930, type: 'kick' }, { tick: 4938, type: 'kick' }, { tick: 4946, type: 'snare' }, { tick: 4973, type: 'crash1' }, { tick: 4993, type: 'crash1' }, { tick: 5010, type: 'crash1' }, { tick: 5023, type: 'crash1' }, { tick: 5043, type: 'snare' }, { tick: 5060, type: 'kick' }, { tick: 5069, type: 'kick' }, { tick: 5081, type: 'snare' }, { tick: 5100, type: 'kick' }, { tick: 5110, type: 'snare' }, { tick: 5126, type: 'snare' }, { tick: 5143, type: 'snare' }, { tick: 5152, type: 'snare' }, { tick: 5160, type: 'snare' }, { tick: 5167, type: 'snare' }, { tick: 5174, type: 'snare' }, { tick: 5181, type: 'snare' }, { tick: 5189, type: 'snare' }, { tick: 5196, type: 'snare' }, { tick: 5208, type: 'crash1' }, { tick: 5243, type: 'hihat' }, { tick: 5259, type: 'hihat' }, { tick: 5307, type: 'hihat' }, { tick: 5324, type: 'snare' }, { tick: 5342, type: 'kick' }, { tick: 5376, type: 'snare' }, { tick: 5393, type: 'snare' }, { tick: 5411, type: 'kick' }, { tick: 5445, type: 'snare' }, { tick: 5481, type: 'kick' }, { tick: 5513, type: 'snare' }, { tick: 5530, type: 'snare' }, { tick: 5548, type: 'kick' }, { tick: 5564, type: 'kick' }, { tick: 5571, type: 'kick' }, { tick: 5578, type: 'snare' }, { tick: 5584, type: 'snare' }, { tick: 5598, type: 'snare' }, { tick: 5613, type: 'kick' }, { tick: 5629, type: 'kick' }, { tick: 5636, type: 'kick' }, { tick: 5646, type: 'snare' }, { tick: 5665, type: 'snare' }, { tick: 5685, type: 'kick' }, { tick: 5718, type: 'snare' }, { tick: 5753, type: 'kick' }, { tick: 5786, type: 'snare' }, { tick: 5804, type: 'snare' }, { tick: 5824, type: 'kick' }, { tick: 5839, type: 'kick' }, { tick: 5846, type: 'kick' }, { tick: 5855, type: 'snare' }, { tick: 5873, type: 'snare' }, { tick: 5888, type: 'kick' }, { tick: 5906, type: 'kick' }, { tick: 5913, type: 'kick' }, { tick: 5924, type: 'snare' }, { tick: 5942, type: 'snare' }, { tick: 5960, type: 'kick' }, { tick: 5993, type: 'snare' }, { tick: 6029, type: 'kick' }, { tick: 6061, type: 'snare' }, { tick: 6080, type: 'snare' }, { tick: 6098, type: 'kick' }, { tick: 6114, type: 'kick' }, { tick: 6122, type: 'kick' }, { tick: 6132, type: 'snare' }, { tick: 6149, type: 'snare' }, { tick: 6166, type: 'kick' }, { tick: 6199, type: 'snare' }, { tick: 6216, type: 'snare' }, { tick: 6234, type: 'kick' }, { tick: 6269, type: 'snare' }, { tick: 6304, type: 'crash1' }, { tick: 6321, type: 'crash1' }, { tick: 6373, type: 'crash1' }, { tick: 6393, type: 'crash1' }, { tick: 6441, type: 'crash1' }, { tick: 6459, type: 'snare' }] }, { name: "Level 2", music: "MasterofUpit", notes: [ // Example: simple pattern for demo, replace with real notes for level 2 { tick: 0, type: 'kick' }, { tick: 30, type: 'snare' }, { tick: 60, type: 'hihat' }, { tick: 90, type: 'crash1' }, { tick: 120, type: 'tom1' }, { tick: 150, type: 'kick' }, { tick: 180, type: 'snare' }, { tick: 210, type: 'hihat' }] }, { name: "Level 3", music: "MasterofUpit", notes: [ // Example: simple pattern for demo, replace with real notes for level 3 { tick: 0, type: 'hihat' }, { tick: 20, type: 'kick' }, { tick: 40, type: 'snare' }, { tick: 60, type: 'tom1' }, { tick: 80, type: 'crash1' }, { tick: 100, type: 'kick' }, { tick: 120, type: 'snare' }, { tick: 140, type: 'hihat' }] }]; // Current level index and songNotes reference var currentLevelIndex = 0; var songNotes = LEVELS[0].notes; var currentMusic = LEVELS[0].music; // --- Level Selection UI --- var levelSelectContainer = new Container(); levelSelectContainer.x = 0; levelSelectContainer.y = 0; levelSelectContainer.visible = true; LK.gui.center.addChild(levelSelectContainer); var levelSelectTitle = new Text2("Seviye Seç", { size: 120, fill: "#fff" }); levelSelectTitle.anchor.set(0.5, 0); levelSelectTitle.x = LK.gui.center.width / 2; levelSelectTitle.y = 100; levelSelectContainer.addChild(levelSelectTitle); var levelButtons = []; for (var i = 0; i < LEVELS.length; i++) { (function (idx) { var btn = new Text2(LEVELS[idx].name, { size: 100, fill: 0xFFE066 }); btn.anchor.set(0.5, 0.5); btn.x = LK.gui.center.width / 2; btn.y = 350 + idx * 220; btn.interactive = true; btn.buttonMode = true; btn.down = function () { selectLevel(idx); }; levelSelectContainer.addChild(btn); levelButtons.push(btn); })(i); } // --- Recording UI and Logic --- var recordTxt = new Text2('KAYIT: KAPALI', { size: 70, fill: 0xFF6666 }); recordTxt.anchor.set(0.5, 0); LK.gui.top.addChild(recordTxt); recordTxt.x = LK.gui.top.width / 2; recordTxt.y = 220; // Hide gameplay UI until level is selected scoreTxt.visible = false; comboTxt.visible = false; recordTxt.visible = false; // Level selection handler function selectLevel(idx) { currentLevelIndex = idx; songNotes = LEVELS[idx].notes; currentMusic = LEVELS[idx].music; levelSelectContainer.visible = false; scoreTxt.visible = true; comboTxt.visible = true; recordTxt.visible = true; // Do not auto-start game; wait for level selection } var isRecording = false; var recordedNotes = []; var recordStartTick = 0; // Toggle recording on tap of recordTxt recordTxt.interactive = true; recordTxt.buttonMode = true; recordTxt.down = function () { if (!isRecording) { // Start recording isRecording = true; recordedNotes = []; recordStartTick = LK.ticks; recordTxt.setText('KAYIT: AÇIK'); comboTxt.setText('KAYIT MODU'); } else { // Stop recording and save as new level isRecording = false; recordTxt.setText('KAYIT: KAPALI'); comboTxt.setText(''); // Convert recordedNotes to songNotes format if (recordedNotes.length > 0) { // Normalize ticks to start at 0 var minTick = recordedNotes.length > 0 ? recordedNotes[0].tick : 0; for (var i = 0; i < recordedNotes.length; i++) { recordedNotes[i].tick -= minTick; } songNotes = []; for (var i = 0; i < recordedNotes.length; i++) { songNotes.push({ tick: recordedNotes[i].tick, type: recordedNotes[i].type }); } // Print recorded notes as code in the console var codeStr = "var songNotes = [\n"; for (var i = 0; i < recordedNotes.length; i++) { codeStr += " { tick: " + recordedNotes[i].tick + ", type: '" + recordedNotes[i].type + "' },\n"; } codeStr += "];"; console.log(codeStr); // Restart game with new level startGame(); } } }; LK.gui.top.addChild(recordTxt); // --- Record pad hits if in recording mode --- function recordPadHit(padType) { if (isRecording) { var tick = LK.ticks - recordStartTick; recordedNotes.push({ tick: tick, type: padType }); } } // --- Create Drum Pads --- for (var i = 0; i < PAD_COLS; i++) { var pad = new DrumPad(); pad.setPadType(PAD_TYPES[i]); pad.x = PAD_X_POSITIONS[PAD_TYPES[i]]; pad.y = PAD_Y; pad.padIndex = i; pads.push(pad); game.addChild(pad); } // --- Pad Touch Handling --- var activePad = null; function getPadAt(x, y) { for (var i = 0; i < pads.length; i++) { var pad = pads[i]; var dx = x - pad.x, dy = y - pad.y; var rx = pad.asset.width / 2, ry = pad.asset.height / 2; if (dx * dx / (rx * rx) + dy * dy / (ry * ry) <= 1) return pad; } return null; } game.down = function (x, y, obj) { var pad = getPadAt(x, y); if (pad) { activePad = pad; handlePadHit(pad); } }; game.move = function (x, y, obj) { // For multi-touch, could be extended }; game.up = function (x, y, obj) { activePad = null; }; // --- Note Spawning --- function spawnNote(type) { var note = new Note(); note.setNoteType(type); note.x = PAD_X_POSITIONS[type]; note.y = NOTE_START_Y; note.noteType = type; note.hit = false; notes.push(note); game.addChild(note); } // --- Pad Hit Logic --- function handlePadHit(pad) { // Play sound var soundId = pad.padType + 'Sound'; var sound = LK.getSound(soundId); if (sound) { if (sound.stop) sound.stop(); // Stop if already playing to avoid overlap/delay sound.play(); } // Record pad hit if in recording mode recordPadHit(pad.padType); // Visual feedback pad.flash(); // Find closest note of this type in hit window var bestNote = null, bestDist = HIT_WINDOW; 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); if (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' : ''); } else { // Miss! LK.effects.flashScreen(0xff0000, 200); combo = 0; comboTxt.setText(''); } } // --- 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; } // 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) { // Missed note LK.effects.flashObject(note, 0xff0000, 120); tween(note, { alpha: 0 }, { duration: 120, onFinish: function onFinish() { note.destroy(); } }); notes.splice(i, 1); combo = 0; comboTxt.setText(''); } // 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(); LK.showYouWin(); } }; // --- Start Game --- function startGame() { score = 0; combo = 0; maxCombo = 0; scoreTxt.setText('0'); comboTxt.setText(''); notes = []; noteIndex = 0; isPlaying = true; songStartTick = LK.ticks; // 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; // --- 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) { 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); } }; }(game.update); }
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
// DrumPad: Interactive drum pad at the bottom
var DrumPad = Container.expand(function () {
var self = Container.call(this);
// .padType: 'kick', 'snare', etc. (set after creation)
self.padType = null;
self.asset = null;
// .isPressed: for visual feedback
self.isPressed = false;
// Set up asset
self.setPadType = function (type) {
self.padType = type;
var assetId = type + 'Pad';
if (self.asset) self.removeChild(self.asset);
var size = PAD_SIZES[type];
self.asset = self.attachAsset(assetId, {
anchorX: 0.5,
anchorY: 0.5,
width: size ? size.w : undefined,
height: size ? size.h : undefined
});
};
// Visual feedback on press
self.flash = function () {
if (!self.asset) return;
tween(self.asset, {
alpha: 0.5
}, {
duration: 60,
onFinish: function onFinish() {
tween(self.asset, {
alpha: 1
}, {
duration: 120
});
}
});
};
return self;
});
// Note: Falling note bar
var Note = Container.expand(function () {
var self = Container.call(this);
// .noteType: 'kick', 'snare', etc.
self.noteType = null;
self.asset = null;
self.hit = false; // If already hit
self.setNoteType = function (type) {
self.noteType = type;
var assetId = type + 'Note';
if (self.asset) self.removeChild(self.asset);
self.asset = self.attachAsset(assetId, {
anchorX: 0.5,
anchorY: 0.5
});
};
// Called every tick
self.update = function () {
self.y += noteSpeed;
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x181818
});
/****
* Game Code
****/
// 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;
// --- 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: "Level 1",
music: "MasterofUpit",
notes: [{
tick: 0,
type: 'crash1'
}, {
tick: 60,
type: 'crash1'
}, {
tick: 77,
type: 'crash1'
}, {
tick: 92,
type: 'crash1'
}, {
tick: 199,
type: 'crash1'
}, {
tick: 453,
type: 'crash1'
}, {
tick: 469,
type: 'crash1'
}, {
tick: 537,
type: 'crash1'
}, {
tick: 554,
type: 'crash1'
}, {
tick: 571,
type: 'crash1'
}, {
tick: 726,
type: 'crash1'
}, {
tick: 744,
type: 'crash1'
}, {
tick: 814,
type: 'crash1'
}, {
tick: 830,
type: 'crash1'
}, {
tick: 848,
type: 'crash1'
}, {
tick: 1001,
type: 'crash1'
}, {
tick: 1016,
type: 'crash1'
}, {
tick: 1086,
type: 'crash1'
}, {
tick: 1105,
type: 'crash1'
}, {
tick: 1122,
type: 'crash1'
}, {
tick: 1293,
type: 'crash1'
}, {
tick: 1500,
type: 'crash1'
}, {
tick: 1526,
type: 'crash1'
}, {
tick: 1550,
type: 'crash1'
}, {
tick: 1566,
type: 'crash1'
}, {
tick: 1771,
type: 'crash1'
}, {
tick: 1799,
type: 'crash1'
}, {
tick: 1825,
type: 'crash1'
}, {
tick: 1841,
type: 'crash1'
}, {
tick: 1858,
type: 'snare'
}, {
tick: 1874,
type: 'kick'
}, {
tick: 1890,
type: 'snare'
}, {
tick: 1911,
type: 'kick'
}, {
tick: 1928,
type: 'snare'
}, {
tick: 1939,
type: 'kick'
}, {
tick: 1954,
type: 'kick'
}, {
tick: 1962,
type: 'snare'
}, {
tick: 1981,
type: 'kick'
}, {
tick: 1995,
type: 'snare'
}, {
tick: 2014,
type: 'kick'
}, {
tick: 2022,
type: 'kick'
}, {
tick: 2030,
type: 'snare'
}, {
tick: 2051,
type: 'kick'
}, {
tick: 2066,
type: 'snare'
}, {
tick: 2076,
type: 'kick'
}, {
tick: 2092,
type: 'kick'
}, {
tick: 2101,
type: 'snare'
}, {
tick: 2120,
type: 'kick'
}, {
tick: 2135,
type: 'snare'
}, {
tick: 2153,
type: 'kick'
}, {
tick: 2160,
type: 'kick'
}, {
tick: 2169,
type: 'snare'
}, {
tick: 2189,
type: 'kick'
}, {
tick: 2204,
type: 'snare'
}, {
tick: 2214,
type: 'kick'
}, {
tick: 2231,
type: 'kick'
}, {
tick: 2240,
type: 'snare'
}, {
tick: 2258,
type: 'kick'
}, {
tick: 2274,
type: 'snare'
}, {
tick: 2290,
type: 'kick'
}, {
tick: 2303,
type: 'snare'
}, {
tick: 2320,
type: 'crash1'
}, {
tick: 2346,
type: 'crash1'
}, {
tick: 2371,
type: 'crash1'
}, {
tick: 2389,
type: 'snare'
}, {
tick: 2407,
type: 'snare'
}, {
tick: 2441,
type: 'snare'
}, {
tick: 2460,
type: 'kick'
}, {
tick: 2476,
type: 'snare'
}, {
tick: 2486,
type: 'kick'
}, {
tick: 2501,
type: 'kick'
}, {
tick: 2511,
type: 'snare'
}, {
tick: 2531,
type: 'kick'
}, {
tick: 2548,
type: 'snare'
}, {
tick: 2563,
type: 'kick'
}, {
tick: 2571,
type: 'kick'
}, {
tick: 2580,
type: 'snare'
}, {
tick: 2599,
type: 'kick'
}, {
tick: 2615,
type: 'snare'
}, {
tick: 2625,
type: 'kick'
}, {
tick: 2640,
type: 'kick'
}, {
tick: 2649,
type: 'snare'
}, {
tick: 2668,
type: 'kick'
}, {
tick: 2684,
type: 'snare'
}, {
tick: 2701,
type: 'kick'
}, {
tick: 2709,
type: 'kick'
}, {
tick: 2719,
type: 'snare'
}, {
tick: 2739,
type: 'kick'
}, {
tick: 2754,
type: 'snare'
}, {
tick: 2764,
type: 'kick'
}, {
tick: 2786,
type: 'snare'
}, {
tick: 2806,
type: 'kick'
}, {
tick: 2820,
type: 'snare'
}, {
tick: 2835,
type: 'kick'
}, {
tick: 2849,
type: 'kick'
}, {
tick: 2857,
type: 'snare'
}, {
tick: 2875,
type: 'hihat'
}, {
tick: 2898,
type: 'crash1'
}, {
tick: 2923,
type: 'crash1'
}, {
tick: 2938,
type: 'crash1'
}, {
tick: 2964,
type: 'crash1'
}, {
tick: 2990,
type: 'crash1'
}, {
tick: 3006,
type: 'crash1'
}, {
tick: 3022,
type: 'hihat'
}, {
tick: 3038,
type: 'hihat'
}, {
tick: 3058,
type: 'hihat'
}, {
tick: 3077,
type: 'hihat'
}, {
tick: 3095,
type: 'hihat'
}, {
tick: 3113,
type: 'hihat'
}, {
tick: 3131,
type: 'hihat'
}, {
tick: 3146,
type: 'crash1'
}, {
tick: 3164,
type: 'snare'
}, {
tick: 3181,
type: 'kick'
}, {
tick: 3188,
type: 'kick'
}, {
tick: 3197,
type: 'snare'
}, {
tick: 3216,
type: 'kick'
}, {
tick: 3227,
type: 'snare'
}, {
tick: 3248,
type: 'kick'
}, {
tick: 3264,
type: 'snare'
}, {
tick: 3281,
type: 'kick'
}, {
tick: 3299,
type: 'snare'
}, {
tick: 3318,
type: 'kick'
}, {
tick: 3325,
type: 'kick'
}, {
tick: 3334,
type: 'snare'
}, {
tick: 3352,
type: 'kick'
}, {
tick: 3362,
type: 'snare'
}, {
tick: 3380,
type: 'snare'
}, {
tick: 3398,
type: 'kick'
}, {
tick: 3414,
type: 'snare'
}, {
tick: 3431,
type: 'kick'
}, {
tick: 3438,
type: 'kick'
}, {
tick: 3448,
type: 'snare'
}, {
tick: 3468,
type: 'kick'
}, {
tick: 3486,
type: 'snare'
}, {
tick: 3503,
type: 'kick'
}, {
tick: 3517,
type: 'snare'
}, {
tick: 3534,
type: 'kick'
}, {
tick: 3550,
type: 'snare'
}, {
tick: 3570,
type: 'kick'
}, {
tick: 3584,
type: 'snare'
}, {
tick: 3601,
type: 'kick'
}, {
tick: 3611,
type: 'snare'
}, {
tick: 3625,
type: 'crash1'
}, {
tick: 3646,
type: 'snare'
}, {
tick: 3663,
type: 'kick'
}, {
tick: 3690,
type: 'snare'
}, {
tick: 3779,
type: 'kick'
}, {
tick: 3795,
type: 'snare'
}, {
tick: 3813,
type: 'kick'
}, {
tick: 3820,
type: 'kick'
}, {
tick: 3829,
type: 'snare'
}, {
tick: 3846,
type: 'kick'
}, {
tick: 3875,
type: 'crash1'
}, {
tick: 3899,
type: 'snare'
}, {
tick: 3939,
type: 'snare'
}, {
tick: 4030,
type: 'kick'
}, {
tick: 4047,
type: 'snare'
}, {
tick: 4066,
type: 'kick'
}, {
tick: 4072,
type: 'kick'
}, {
tick: 4081,
type: 'snare'
}, {
tick: 4100,
type: 'kick'
}, {
tick: 4127,
type: 'crash1'
}, {
tick: 4144,
type: 'kick'
}, {
tick: 4161,
type: 'snare'
}, {
tick: 4179,
type: 'kick'
}, {
tick: 4186,
type: 'kick'
}, {
tick: 4195,
type: 'snare'
}, {
tick: 4214,
type: 'kick'
}, {
tick: 4228,
type: 'snare'
}, {
tick: 4248,
type: 'kick'
}, {
tick: 4264,
type: 'snare'
}, {
tick: 4281,
type: 'kick'
}, {
tick: 4297,
type: 'snare'
}, {
tick: 4315,
type: 'kick'
}, {
tick: 4330,
type: 'snare'
}, {
tick: 4347,
type: 'crash1'
}, {
tick: 4357,
type: 'crash1'
}, {
tick: 4376,
type: 'crash1'
}, {
tick: 4395,
type: 'kick'
}, {
tick: 4411,
type: 'snare'
}, {
tick: 4429,
type: 'kick'
}, {
tick: 4435,
type: 'kick'
}, {
tick: 4444,
type: 'snare'
}, {
tick: 4461,
type: 'kick'
}, {
tick: 4471,
type: 'snare'
}, {
tick: 4478,
type: 'snare'
}, {
tick: 4495,
type: 'tom1'
}, {
tick: 4502,
type: 'tom1'
}, {
tick: 4509,
type: 'tom1'
}, {
tick: 4516,
type: 'tom1'
}, {
tick: 4546,
type: 'snare'
}, {
tick: 4580,
type: 'snare'
}, {
tick: 4598,
type: 'kick'
}, {
tick: 4622,
type: 'crash1'
}, {
tick: 4652,
type: 'kick'
}, {
tick: 4663,
type: 'snare'
}, {
tick: 4679,
type: 'kick'
}, {
tick: 4686,
type: 'kick'
}, {
tick: 4695,
type: 'snare'
}, {
tick: 4715,
type: 'snare'
}, {
tick: 4726,
type: 'tom1'
}, {
tick: 4733,
type: 'tom1'
}, {
tick: 4754,
type: 'snare'
}, {
tick: 4761,
type: 'snare'
}, {
tick: 4767,
type: 'snare'
}, {
tick: 4784,
type: 'crash1'
}, {
tick: 4799,
type: 'kick'
}, {
tick: 4834,
type: 'snare'
}, {
tick: 4851,
type: 'kick'
}, {
tick: 4862,
type: 'kick'
}, {
tick: 4880,
type: 'snare'
}, {
tick: 4896,
type: 'kick'
}, {
tick: 4912,
type: 'snare'
}, {
tick: 4930,
type: 'kick'
}, {
tick: 4938,
type: 'kick'
}, {
tick: 4946,
type: 'snare'
}, {
tick: 4973,
type: 'crash1'
}, {
tick: 4993,
type: 'crash1'
}, {
tick: 5010,
type: 'crash1'
}, {
tick: 5023,
type: 'crash1'
}, {
tick: 5043,
type: 'snare'
}, {
tick: 5060,
type: 'kick'
}, {
tick: 5069,
type: 'kick'
}, {
tick: 5081,
type: 'snare'
}, {
tick: 5100,
type: 'kick'
}, {
tick: 5110,
type: 'snare'
}, {
tick: 5126,
type: 'snare'
}, {
tick: 5143,
type: 'snare'
}, {
tick: 5152,
type: 'snare'
}, {
tick: 5160,
type: 'snare'
}, {
tick: 5167,
type: 'snare'
}, {
tick: 5174,
type: 'snare'
}, {
tick: 5181,
type: 'snare'
}, {
tick: 5189,
type: 'snare'
}, {
tick: 5196,
type: 'snare'
}, {
tick: 5208,
type: 'crash1'
}, {
tick: 5243,
type: 'hihat'
}, {
tick: 5259,
type: 'hihat'
}, {
tick: 5307,
type: 'hihat'
}, {
tick: 5324,
type: 'snare'
}, {
tick: 5342,
type: 'kick'
}, {
tick: 5376,
type: 'snare'
}, {
tick: 5393,
type: 'snare'
}, {
tick: 5411,
type: 'kick'
}, {
tick: 5445,
type: 'snare'
}, {
tick: 5481,
type: 'kick'
}, {
tick: 5513,
type: 'snare'
}, {
tick: 5530,
type: 'snare'
}, {
tick: 5548,
type: 'kick'
}, {
tick: 5564,
type: 'kick'
}, {
tick: 5571,
type: 'kick'
}, {
tick: 5578,
type: 'snare'
}, {
tick: 5584,
type: 'snare'
}, {
tick: 5598,
type: 'snare'
}, {
tick: 5613,
type: 'kick'
}, {
tick: 5629,
type: 'kick'
}, {
tick: 5636,
type: 'kick'
}, {
tick: 5646,
type: 'snare'
}, {
tick: 5665,
type: 'snare'
}, {
tick: 5685,
type: 'kick'
}, {
tick: 5718,
type: 'snare'
}, {
tick: 5753,
type: 'kick'
}, {
tick: 5786,
type: 'snare'
}, {
tick: 5804,
type: 'snare'
}, {
tick: 5824,
type: 'kick'
}, {
tick: 5839,
type: 'kick'
}, {
tick: 5846,
type: 'kick'
}, {
tick: 5855,
type: 'snare'
}, {
tick: 5873,
type: 'snare'
}, {
tick: 5888,
type: 'kick'
}, {
tick: 5906,
type: 'kick'
}, {
tick: 5913,
type: 'kick'
}, {
tick: 5924,
type: 'snare'
}, {
tick: 5942,
type: 'snare'
}, {
tick: 5960,
type: 'kick'
}, {
tick: 5993,
type: 'snare'
}, {
tick: 6029,
type: 'kick'
}, {
tick: 6061,
type: 'snare'
}, {
tick: 6080,
type: 'snare'
}, {
tick: 6098,
type: 'kick'
}, {
tick: 6114,
type: 'kick'
}, {
tick: 6122,
type: 'kick'
}, {
tick: 6132,
type: 'snare'
}, {
tick: 6149,
type: 'snare'
}, {
tick: 6166,
type: 'kick'
}, {
tick: 6199,
type: 'snare'
}, {
tick: 6216,
type: 'snare'
}, {
tick: 6234,
type: 'kick'
}, {
tick: 6269,
type: 'snare'
}, {
tick: 6304,
type: 'crash1'
}, {
tick: 6321,
type: 'crash1'
}, {
tick: 6373,
type: 'crash1'
}, {
tick: 6393,
type: 'crash1'
}, {
tick: 6441,
type: 'crash1'
}, {
tick: 6459,
type: 'snare'
}]
}, {
name: "Level 2",
music: "MasterofUpit",
notes: [
// Example: simple pattern for demo, replace with real notes for level 2
{
tick: 0,
type: 'kick'
}, {
tick: 30,
type: 'snare'
}, {
tick: 60,
type: 'hihat'
}, {
tick: 90,
type: 'crash1'
}, {
tick: 120,
type: 'tom1'
}, {
tick: 150,
type: 'kick'
}, {
tick: 180,
type: 'snare'
}, {
tick: 210,
type: 'hihat'
}]
}, {
name: "Level 3",
music: "MasterofUpit",
notes: [
// Example: simple pattern for demo, replace with real notes for level 3
{
tick: 0,
type: 'hihat'
}, {
tick: 20,
type: 'kick'
}, {
tick: 40,
type: 'snare'
}, {
tick: 60,
type: 'tom1'
}, {
tick: 80,
type: 'crash1'
}, {
tick: 100,
type: 'kick'
}, {
tick: 120,
type: 'snare'
}, {
tick: 140,
type: 'hihat'
}]
}];
// Current level index and songNotes reference
var currentLevelIndex = 0;
var songNotes = LEVELS[0].notes;
var currentMusic = LEVELS[0].music;
// --- Level Selection UI ---
var levelSelectContainer = new Container();
levelSelectContainer.x = 0;
levelSelectContainer.y = 0;
levelSelectContainer.visible = true;
LK.gui.center.addChild(levelSelectContainer);
var levelSelectTitle = new Text2("Seviye Seç", {
size: 120,
fill: "#fff"
});
levelSelectTitle.anchor.set(0.5, 0);
levelSelectTitle.x = LK.gui.center.width / 2;
levelSelectTitle.y = 100;
levelSelectContainer.addChild(levelSelectTitle);
var levelButtons = [];
for (var i = 0; i < LEVELS.length; i++) {
(function (idx) {
var btn = new Text2(LEVELS[idx].name, {
size: 100,
fill: 0xFFE066
});
btn.anchor.set(0.5, 0.5);
btn.x = LK.gui.center.width / 2;
btn.y = 350 + idx * 220;
btn.interactive = true;
btn.buttonMode = true;
btn.down = function () {
selectLevel(idx);
};
levelSelectContainer.addChild(btn);
levelButtons.push(btn);
})(i);
}
// --- Recording UI and Logic ---
var recordTxt = new Text2('KAYIT: KAPALI', {
size: 70,
fill: 0xFF6666
});
recordTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(recordTxt);
recordTxt.x = LK.gui.top.width / 2;
recordTxt.y = 220;
// Hide gameplay UI until level is selected
scoreTxt.visible = false;
comboTxt.visible = false;
recordTxt.visible = false;
// Level selection handler
function selectLevel(idx) {
currentLevelIndex = idx;
songNotes = LEVELS[idx].notes;
currentMusic = LEVELS[idx].music;
levelSelectContainer.visible = false;
scoreTxt.visible = true;
comboTxt.visible = true;
recordTxt.visible = true;
// Do not auto-start game; wait for level selection
}
var isRecording = false;
var recordedNotes = [];
var recordStartTick = 0;
// Toggle recording on tap of recordTxt
recordTxt.interactive = true;
recordTxt.buttonMode = true;
recordTxt.down = function () {
if (!isRecording) {
// Start recording
isRecording = true;
recordedNotes = [];
recordStartTick = LK.ticks;
recordTxt.setText('KAYIT: AÇIK');
comboTxt.setText('KAYIT MODU');
} else {
// Stop recording and save as new level
isRecording = false;
recordTxt.setText('KAYIT: KAPALI');
comboTxt.setText('');
// Convert recordedNotes to songNotes format
if (recordedNotes.length > 0) {
// Normalize ticks to start at 0
var minTick = recordedNotes.length > 0 ? recordedNotes[0].tick : 0;
for (var i = 0; i < recordedNotes.length; i++) {
recordedNotes[i].tick -= minTick;
}
songNotes = [];
for (var i = 0; i < recordedNotes.length; i++) {
songNotes.push({
tick: recordedNotes[i].tick,
type: recordedNotes[i].type
});
}
// Print recorded notes as code in the console
var codeStr = "var songNotes = [\n";
for (var i = 0; i < recordedNotes.length; i++) {
codeStr += " { tick: " + recordedNotes[i].tick + ", type: '" + recordedNotes[i].type + "' },\n";
}
codeStr += "];";
console.log(codeStr);
// Restart game with new level
startGame();
}
}
};
LK.gui.top.addChild(recordTxt);
// --- Record pad hits if in recording mode ---
function recordPadHit(padType) {
if (isRecording) {
var tick = LK.ticks - recordStartTick;
recordedNotes.push({
tick: tick,
type: padType
});
}
}
// --- Create Drum Pads ---
for (var i = 0; i < PAD_COLS; i++) {
var pad = new DrumPad();
pad.setPadType(PAD_TYPES[i]);
pad.x = PAD_X_POSITIONS[PAD_TYPES[i]];
pad.y = PAD_Y;
pad.padIndex = i;
pads.push(pad);
game.addChild(pad);
}
// --- Pad Touch Handling ---
var activePad = null;
function getPadAt(x, y) {
for (var i = 0; i < pads.length; i++) {
var pad = pads[i];
var dx = x - pad.x,
dy = y - pad.y;
var rx = pad.asset.width / 2,
ry = pad.asset.height / 2;
if (dx * dx / (rx * rx) + dy * dy / (ry * ry) <= 1) return pad;
}
return null;
}
game.down = function (x, y, obj) {
var pad = getPadAt(x, y);
if (pad) {
activePad = pad;
handlePadHit(pad);
}
};
game.move = function (x, y, obj) {
// For multi-touch, could be extended
};
game.up = function (x, y, obj) {
activePad = null;
};
// --- Note Spawning ---
function spawnNote(type) {
var note = new Note();
note.setNoteType(type);
note.x = PAD_X_POSITIONS[type];
note.y = NOTE_START_Y;
note.noteType = type;
note.hit = false;
notes.push(note);
game.addChild(note);
}
// --- Pad Hit Logic ---
function handlePadHit(pad) {
// Play sound
var soundId = pad.padType + 'Sound';
var sound = LK.getSound(soundId);
if (sound) {
if (sound.stop) sound.stop(); // Stop if already playing to avoid overlap/delay
sound.play();
}
// Record pad hit if in recording mode
recordPadHit(pad.padType);
// Visual feedback
pad.flash();
// Find closest note of this type in hit window
var bestNote = null,
bestDist = HIT_WINDOW;
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);
if (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' : '');
} else {
// Miss!
LK.effects.flashScreen(0xff0000, 200);
combo = 0;
comboTxt.setText('');
}
}
// --- 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;
}
// 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) {
// Missed note
LK.effects.flashObject(note, 0xff0000, 120);
tween(note, {
alpha: 0
}, {
duration: 120,
onFinish: function onFinish() {
note.destroy();
}
});
notes.splice(i, 1);
combo = 0;
comboTxt.setText('');
}
// 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();
LK.showYouWin();
}
};
// --- Start Game ---
function startGame() {
score = 0;
combo = 0;
maxCombo = 0;
scoreTxt.setText('0');
comboTxt.setText('');
notes = [];
noteIndex = 0;
isPlaying = true;
songStartTick = LK.ticks;
// 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;
// --- 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) {
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);
}
};
}(game.update);
}
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