User prompt
level başarıyla tamamlanırsa ekranda mavi bir bold fontla "GREAT! NEXT LEVEL UNLOCKED!" yazısı çıksın ↪💡 Consider importing and using the following plugins: @upit/tween.v1
Code edit (5 edits merged)
Please save this source code
User prompt
leveli oynarken yukarıya tick sayacı ekle ki hangi tickte olduğumu görebileyim
User prompt
levelde yukarı tick sayacı ekle
Code edit (1 edits merged)
Please save this source code
User prompt
Seven stripe armey levelindeli notaların hepsini -40 azalt, başka bir değişilik yapma sadece oradaki sayılardan 40 çıkart lütfen
User prompt
o levelin nota tick zamanlamalarını değiştirmeden, nota geliş hızını yavaşlatabilir misin
Code edit (3 edits merged)
Please save this source code
User prompt
otomatik oyna vuruş yap
User prompt
notaları doğru zamanda otomatik padlere vurarak çal ↪💡 Consider importing and using the following plugins: @upit/tween.v1
Code edit (1 edits merged)
Please save this source code
User prompt
"beginner: Seven stripe- armey" deki notaların tüm vuruşların tick sayılarını 400 tick ekleyerek arttır
Code edit (1 edits merged)
Please save this source code
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); var storage = LK.import("@upit/storage.v1", { unlockedLevels: 1 }); /**** * Classes ****/ // Default: only beginner (index 3) unlocked // DrumPad: Interactive drum pad at the bottom var DrumPad = Container.expand(function () { var self = Container.call(this); // .padType: 'kick', 'snare', etc. (set after creation) self.padType = null; self.asset = null; // .isPressed: for visual feedback self.isPressed = false; // Set up asset self.setPadType = function (type) { self.padType = type; var assetId = type + 'Pad'; if (self.asset) { self.removeChild(self.asset); } var size = PAD_SIZES[type]; self.asset = self.attachAsset(assetId, { anchorX: 0.5, anchorY: 0.5, width: size ? size.w : undefined, height: size ? size.h : undefined }); }; // Visual feedback on press self.flash = function () { if (!self.asset) { return; } tween(self.asset, { alpha: 0.5 }, { duration: 60, onFinish: function onFinish() { tween(self.asset, { alpha: 1 }, { duration: 120 }); } }); }; return self; }); // Note: Falling note bar var Note = Container.expand(function () { var self = Container.call(this); // .noteType: 'kick', 'snare', etc. self.noteType = null; self.asset = null; self.hit = false; // If already hit self.setNoteType = function (type) { self.noteType = type; var assetId = type + 'Note'; if (self.asset) { self.removeChild(self.asset); } self.asset = self.attachAsset(assetId, { anchorX: 0.5, anchorY: 0.5 }); }; // Called every tick self.update = function () { // Store initial scale if not set if (self.initialScale === undefined) { self.initialScale = 0.6; // Start smaller than normal self.asset.scaleX = self.initialScale; self.asset.scaleY = self.initialScale; } // Calculate progress from spawn to target (0 to 1) var totalDistance = NOTE_TARGET_Y - NOTE_START_Y; var currentDistance = self.y - NOTE_START_Y; var progress = Math.max(0, Math.min(1, currentDistance / totalDistance)); // Scale from 0.6 to 1.8 (gradually growing larger) var targetScale = self.initialScale + 1.2 * progress; // 0.6 + (1.2 * progress) = 0.6 to 1.8 self.asset.scaleX = targetScale; self.asset.scaleY = targetScale; self.y += noteSpeed; }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x181818 }); /**** * Game Code ****/ // Add customizable background var gameBackground = LK.getAsset('gameBackground', { anchorX: 0, anchorY: 0, x: 0, y: 0, width: GAME_W, height: GAME_H }); game.addChild(gameBackground); // Health bar visual assets // Drum pad sounds // Music track // Sounds for each drum // Note bars (falling notes) // Drum pads (kick, snare, hi-hat, tom1, tom2, crash1, crash2) // --- Game constants --- var PAD_TYPES = ['kick', 'snare', 'hihat', 'tom1', 'crash1']; var PAD_COLS = PAD_TYPES.length; var GAME_W = 2048, GAME_H = 2732; var PAD_Y = GAME_H - 320; // Y position for pads // --- Pad Sizing and Full-Width Layout --- // Each pad will be as wide as possible, with no side gaps, and all pads will be adjacent. var PAD_SIZES = {}; var PAD_X_POSITIONS = {}; var padWidth = GAME_W / PAD_COLS; var padCenterY = PAD_Y; for (var i = 0; i < PAD_COLS; i++) { var type = PAD_TYPES[i]; // Pad width: fill the column, pad height: keep previous aspect ratio (or max of previous) // We'll use the original aspect ratio for each pad type, but scale width to padWidth // Use original aspect ratios from previous PAD_SIZES var origSizes = { 'kick': { w: 420, h: 210 }, 'snare': { w: 340, h: 170 }, 'hihat': { w: 300, h: 150 }, 'tom1': { w: 320, h: 160 }, 'crash1': { w: 340, h: 170 } }; var aspect = origSizes[type].h / origSizes[type].w; var w = padWidth; var h = w * aspect; PAD_SIZES[type] = { w: w, h: h }; // Center of each pad: left edge + half width + i*padWidth PAD_X_POSITIONS[type] = i * padWidth + padWidth / 2; } // Swap hihat and tom1 X positions var tmpX = PAD_X_POSITIONS['hihat']; PAD_X_POSITIONS['hihat'] = PAD_X_POSITIONS['tom1']; PAD_X_POSITIONS['tom1'] = tmpX; // Note spawn area (top) var NOTE_START_Y = -60; var NOTE_TARGET_Y = PAD_Y - 80; // Where notes should be hit // Note speed (pixels per frame) var noteSpeed = 18; // Timing window (pixels): how close to NOTE_TARGET_Y is a "hit" var HIT_WINDOW = 100; // --- State --- // NOTE_OFFSET_TICKS: Delay (in ticks) to align first note with music start (positive = notes spawn later) var NOTE_OFFSET_TICKS = 0; // Default 0, adjust for perfect sync (e.g. try 20, 30, 40, ...) var pads = []; var notes = []; var score = 0; var combo = 0; var maxCombo = 0; var lastTick = 0; var noteIndex = 0; var isPlaying = false; var songStartTick = 0; // --- Health Bar State --- var health = 150; var maxHealth = 150; var healthBarContainer = null; var healthBarBg = null; var healthBarFg = null; // --- UI --- var scoreTxt = new Text2('0', { size: 120, fill: "#fff" }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); var comboTxt = new Text2('', { size: 70, fill: 0xFFE066 }); comboTxt.anchor.set(0.5, 0); LK.gui.top.addChild(comboTxt); comboTxt.y = 130; // --- Song Data for all levels --- // Each entry: {tick: <when to spawn>, type: <padType>} // Level 1: MasterofUpit, original notes var LEVELS = [{ name: "Hard: Master of Upit", music: "MasterofUpit", notes: [{ tick: 1, type: 'kick' }, { tick: 1, type: 'crash1' }, { tick: 62, type: 'crash1' }, { tick: 63, type: 'kick' }, { tick: 78, type: 'crash1' }, { tick: 78, type: 'kick' }, { tick: 93, type: 'crash1' }, { tick: 93, type: 'kick' }, { tick: 193, type: 'crash1' }, { tick: 193, type: 'kick' }, { tick: 266, type: 'hihat' }, { tick: 283, type: 'hihat' }, { tick: 299, type: 'hihat' }, { tick: 316, type: 'hihat' }, { tick: 334, type: 'hihat' }, { tick: 351, type: 'hihat' }, { tick: 368, type: 'hihat' }, { tick: 386, type: 'hihat' }, { tick: 403, type: 'hihat' }, { tick: 420, type: 'hihat' }, { tick: 438, type: 'hihat' }, { tick: 451, type: 'kick' }, { tick: 452, type: 'crash1' }, { tick: 470, type: 'crash1' }, { tick: 471, type: 'kick' }, { tick: 490, type: 'hihat' }, { tick: 505, type: 'hihat' }, { tick: 522, type: 'hihat' }, { tick: 538, type: 'kick' }, { tick: 539, type: 'crash1' }, { tick: 556, type: 'crash1' }, { tick: 558, type: 'kick' }, { tick: 572, type: 'crash1' }, { tick: 572, type: 'kick' }, { tick: 590, type: 'hihat' }, { tick: 607, type: 'hihat' }, { tick: 625, type: 'hihat' }, { tick: 640, type: 'hihat' }, { tick: 658, type: 'hihat' }, { tick: 676, type: 'hihat' }, { tick: 694, type: 'hihat' }, { tick: 710, type: 'hihat' }, { tick: 725, type: 'crash1' }, { tick: 727, type: 'kick' }, { tick: 742, type: 'kick' }, { tick: 742, type: 'crash1' }, { tick: 758, type: 'hihat' }, { tick: 776, type: 'hihat' }, { tick: 795, type: 'hihat' }, { tick: 812, type: 'crash1' }, { tick: 812, type: 'kick' }, { tick: 829, type: 'crash1' }, { tick: 829, type: 'kick' }, { tick: 847, type: 'crash1' }, { tick: 847, type: 'kick' }, { tick: 863, type: 'hihat' }, { tick: 881, type: 'hihat' }, { tick: 899, type: 'hihat' }, { tick: 916, type: 'hihat' }, { tick: 933, type: 'hihat' }, { tick: 951, type: 'hihat' }, { tick: 969, type: 'hihat' }, { tick: 986, type: 'hihat' }, { tick: 1003, type: 'kick' }, { tick: 1003, type: 'crash1' }, { tick: 1020, type: 'crash1' }, { tick: 1021, type: 'kick' }, { tick: 1036, type: 'hihat' }, { tick: 1054, type: 'hihat' }, { tick: 1070, type: 'hihat' }, { tick: 1087, type: 'crash1' }, { tick: 1087, type: 'kick' }, { tick: 1104, type: 'crash1' }, { tick: 1105, type: 'kick' }, { tick: 1122, type: 'crash1' }, { tick: 1122, type: 'kick' }, { tick: 1155, type: 'snare' }, { tick: 1166, type: 'snare' }, { tick: 1173, type: 'snare' }, { tick: 1183, type: 'snare' }, { tick: 1189, type: 'snare' }, { tick: 1198, type: 'snare' }, { tick: 1206, type: 'snare' }, { tick: 1215, type: 'snare' }, { tick: 1223, type: 'snare' }, { tick: 1231, type: 'snare' }, { tick: 1239, type: 'snare' }, { tick: 1249, type: 'snare' }, { tick: 1257, type: 'snare' }, { tick: 1267, type: 'snare' }, { tick: 1275, type: 'snare' }, { tick: 1293, type: 'kick' }, { tick: 1293, type: 'crash1' }, { tick: 1500, type: 'crash1' }, { tick: 1500, type: 'kick' }, { tick: 1527, type: 'crash1' }, { tick: 1528, type: 'kick' }, { tick: 1549, type: 'crash1' }, { tick: 1549, type: 'kick' }, { tick: 1566, type: 'crash1' }, { tick: 1566, type: 'kick' }, { tick: 1775, type: 'crash1' }, { tick: 1776, type: 'kick' }, { tick: 1802, type: 'kick' }, { tick: 1802, type: 'crash1' }, { tick: 1825, type: 'crash1' }, { tick: 1826, type: 'kick' }, { tick: 1842, type: 'crash1' }, { tick: 1842, type: 'kick' }, { tick: 1856, type: 'hihat' }, { tick: 1860, type: 'snare' }, { tick: 1876, type: 'hihat' }, { tick: 1884, type: 'kick' }, { tick: 1892, type: 'hihat' }, { tick: 1892, type: 'snare' }, { tick: 1910, type: 'hihat' }, { tick: 1911, type: 'kick' }, { tick: 1927, type: 'snare' }, { tick: 1928, type: 'hihat' }, { tick: 1946, type: 'hihat' }, { tick: 1954, type: 'kick' }, { tick: 1961, type: 'hihat' }, { tick: 1963, type: 'snare' }, { tick: 1980, type: 'hihat' }, { tick: 1981, type: 'kick' }, { tick: 1996, type: 'snare' }, { tick: 1996, type: 'hihat' }, { tick: 2014, type: 'hihat' }, { tick: 2021, type: 'kick' }, { tick: 2028, type: 'hihat' }, { tick: 2031, type: 'snare' }, { tick: 2048, type: 'hihat' }, { tick: 2049, type: 'kick' }, { tick: 2066, type: 'hihat' }, { tick: 2066, type: 'snare' }, { tick: 2086, type: 'hihat' }, { tick: 2096, type: 'kick' }, { tick: 2102, type: 'crash1' }, { tick: 2105, type: 'kick' }, { tick: 2119, type: 'kick' }, { tick: 2119, type: 'crash1' }, { tick: 2165, type: 'hihat' }, { tick: 2168, type: 'snare' }, { tick: 2185, type: 'hihat' }, { tick: 2187, type: 'kick' }, { tick: 2202, type: 'snare' }, { tick: 2202, type: 'hihat' }, { tick: 2219, type: 'hihat' }, { tick: 2229, type: 'kick' }, { tick: 2235, type: 'hihat' }, { tick: 2237, type: 'snare' }, { tick: 2245, type: 'snare' }, { tick: 2252, type: 'snare' }, { tick: 2257, type: 'crash1' }, { tick: 2261, type: 'kick' }, { tick: 2273, type: 'snare' }, { tick: 2273, type: 'hihat' }, { tick: 2290, type: 'hihat' }, { tick: 2305, type: 'hihat' }, { tick: 2308, type: 'snare' }, { tick: 2324, type: 'crash1' }, { tick: 2325, type: 'kick' }, { tick: 2350, type: 'kick' }, { tick: 2350, type: 'crash1' }, { tick: 2376, type: 'crash1' }, { tick: 2376, type: 'kick' }, { tick: 2392, type: 'crash1' }, { tick: 2392, type: 'kick' }, { tick: 2407, type: 'hihat' }, { tick: 2409, type: 'snare' }, { tick: 2427, type: 'hihat' }, { tick: 2436, type: 'kick' }, { tick: 2442, type: 'hihat' }, { tick: 2444, type: 'snare' }, { tick: 2460, type: 'hihat' }, { tick: 2462, type: 'kick' }, { tick: 2479, type: 'hihat' }, { tick: 2479, type: 'snare' }, { tick: 2496, type: 'hihat' }, { tick: 2506, type: 'kick' }, { tick: 2511, type: 'hihat' }, { tick: 2515, type: 'snare' }, { tick: 2530, type: 'hihat' }, { tick: 2532, type: 'kick' }, { tick: 2546, type: 'hihat' }, { tick: 2546, type: 'snare' }, { tick: 2564, type: 'hihat' }, { tick: 2573, type: 'kick' }, { tick: 2581, type: 'hihat' }, { tick: 2584, type: 'snare' }, { tick: 2599, type: 'hihat' }, { tick: 2600, type: 'kick' }, { tick: 2615, type: 'snare' }, { tick: 2615, type: 'hihat' }, { tick: 2635, type: 'hihat' }, { tick: 2641, type: 'kick' }, { tick: 2651, type: 'snare' }, { tick: 2654, type: 'crash1' }, { tick: 2669, type: 'kick' }, { tick: 2671, type: 'hihat' }, { tick: 2686, type: 'snare' }, { tick: 2686, type: 'hihat' }, { tick: 2704, type: 'hihat' }, { tick: 2713, type: 'kick' }, { tick: 2719, type: 'hihat' }, { tick: 2724, type: 'kick' }, { tick: 2739, type: 'hihat' }, { tick: 2750, type: 'snare' }, { tick: 2759, type: 'snare' }, { tick: 2769, type: 'snare' }, { tick: 2773, type: 'snare' }, { tick: 2781, type: 'snare' }, { tick: 2792, type: 'tom1' }, { tick: 2808, type: 'crash1' }, { tick: 2809, type: 'kick' }, { tick: 2822, type: 'hihat' }, { tick: 2823, type: 'snare' }, { tick: 2840, type: 'hihat' }, { tick: 2848, type: 'kick' }, { tick: 2855, type: 'hihat' }, { tick: 2856, type: 'snare' }, { tick: 2873, type: 'crash1' }, { tick: 2873, type: 'kick' }, { tick: 2899, type: 'kick' }, { tick: 2899, type: 'crash1' }, { tick: 2921, type: 'crash1' }, { tick: 2924, type: 'kick' }, { tick: 2939, type: 'crash1' }, { tick: 2939, type: 'kick' }, { tick: 2964, type: 'crash1' }, { tick: 2965, type: 'kick' }, { tick: 2988, type: 'crash1' }, { tick: 2988, type: 'kick' }, { tick: 3006, type: 'crash1' }, { tick: 3006, type: 'kick' }, { tick: 3024, type: 'hihat' }, { tick: 3044, type: 'hihat' }, { tick: 3060, type: 'hihat' }, { tick: 3079, type: 'hihat' }, { tick: 3097, type: 'hihat' }, { tick: 3114, type: 'hihat' }, { tick: 3132, type: 'hihat' }, { tick: 3149, type: 'crash1' }, { tick: 3149, type: 'kick' }, { tick: 3165, type: 'hihat' }, { tick: 3165, type: 'snare' }, { tick: 3183, type: 'hihat' }, { tick: 3192, type: 'kick' }, { tick: 3198, type: 'hihat' }, { tick: 3200, type: 'snare' }, { tick: 3217, type: 'hihat' }, { tick: 3231, type: 'kick' }, { tick: 3235, type: 'hihat' }, { tick: 3239, type: 'snare' }, { tick: 3254, type: 'hihat' }, { tick: 3254, type: 'kick' }, { tick: 3269, type: 'hihat' }, { tick: 3269, type: 'snare' }, { tick: 3285, type: 'hihat' }, { tick: 3288, type: 'kick' }, { tick: 3303, type: 'hihat' }, { tick: 3304, type: 'snare' }, { tick: 3321, type: 'hihat' }, { tick: 3329, type: 'kick' }, { tick: 3336, type: 'hihat' }, { tick: 3337, type: 'snare' }, { tick: 3354, type: 'hihat' }, { tick: 3361, type: 'snare' }, { tick: 3362, type: 'crash1' }, { tick: 3381, type: 'crash1' }, { tick: 3381, type: 'kick' }, { tick: 3399, type: 'hihat' }, { tick: 3399, type: 'kick' }, { tick: 3415, type: 'hihat' }, { tick: 3416, type: 'snare' }, { tick: 3434, type: 'hihat' }, { tick: 3443, type: 'kick' }, { tick: 3449, type: 'hihat' }, { tick: 3452, type: 'snare' }, { tick: 3469, type: 'hihat' }, { tick: 3478, type: 'snare' }, { tick: 3485, type: 'snare' }, { tick: 3501, type: 'tom1' }, { tick: 3519, type: 'tom1' }, { tick: 3537, type: 'kick' }, { tick: 3539, type: 'crash1' }, { tick: 3553, type: 'snare' }, { tick: 3554, type: 'hihat' }, { tick: 3570, type: 'hihat' }, { tick: 3578, type: 'kick' }, { tick: 3585, type: 'hihat' }, { tick: 3587, type: 'snare' }, { tick: 3603, type: 'hihat' }, { tick: 3612, type: 'crash1' }, { tick: 3613, type: 'kick' }, { tick: 3630, type: 'crash1' }, { tick: 3630, type: 'kick' }, { tick: 3647, type: 'hihat' }, { tick: 3663, type: 'hihat' }, { tick: 3664, type: 'snare' }, { tick: 3681, type: 'hihat' }, { tick: 3690, type: 'kick' }, { tick: 3697, type: 'hihat' }, { tick: 3699, type: 'snare' }, { tick: 3721, type: 'snare' }, { tick: 3729, type: 'snare' }, { tick: 3748, type: 'snare' }, { tick: 3756, type: 'snare' }, { tick: 3765, type: 'tom1' }, { tick: 3772, type: 'tom1' }, { tick: 3782, type: 'crash1' }, { tick: 3782, type: 'kick' }, { tick: 3798, type: 'snare' }, { tick: 3798, type: 'hihat' }, { tick: 3815, type: 'hihat' }, { tick: 3826, type: 'kick' }, { tick: 3831, type: 'hihat' }, { tick: 3834, type: 'snare' }, { tick: 3850, type: 'crash1' }, { tick: 3859, type: 'crash1' }, { tick: 3859, type: 'kick' }, { tick: 3878, type: 'crash1' }, { tick: 3878, type: 'kick' }, { tick: 3896, type: 'kick' }, { tick: 3896, type: 'hihat' }, { tick: 3912, type: 'hihat' }, { tick: 3913, type: 'snare' }, { tick: 3930, type: 'hihat' }, { tick: 3942, type: 'kick' }, { tick: 3947, type: 'hihat' }, { tick: 3950, type: 'snare' }, { tick: 3964, type: 'hihat' }, { tick: 3973, type: 'snare' }, { tick: 3981, type: 'snare' }, { tick: 3998, type: 'snare' }, { tick: 4006, type: 'snare' }, { tick: 4012, type: 'snare' }, { tick: 4020, type: 'tom1' }, { tick: 4027, type: 'tom1' }, { tick: 4035, type: 'kick' }, { tick: 4036, type: 'crash1' }, { tick: 4051, type: 'snare' }, { tick: 4052, type: 'hihat' }, { tick: 4068, type: 'hihat' }, { tick: 4078, type: 'kick' }, { tick: 4083, type: 'hihat' }, { tick: 4086, type: 'snare' }, { tick: 4101, type: 'hihat' }, { tick: 4106, type: 'kick' }, { tick: 4112, type: 'kick' }, { tick: 4112, type: 'crash1' }, { tick: 4128, type: 'crash1' }, { tick: 4128, type: 'kick' }, { tick: 4145, type: 'hihat' }, { tick: 4163, type: 'hihat' }, { tick: 4163, type: 'snare' }, { tick: 4180, type: 'hihat' }, { tick: 4190, type: 'kick' }, { tick: 4196, type: 'hihat' }, { tick: 4200, type: 'snare' }, { tick: 4224, type: 'snare' }, { tick: 4233, type: 'snare' }, { tick: 4249, type: 'snare' }, { tick: 4258, type: 'snare' }, { tick: 4265, type: 'tom1' }, { tick: 4273, type: 'tom1' }, { tick: 4282, type: 'crash1' }, { tick: 4283, type: 'kick' }, { tick: 4299, type: 'hihat' }, { tick: 4300, type: 'snare' }, { tick: 4317, type: 'hihat' }, { tick: 4329, type: 'kick' }, { tick: 4333, type: 'hihat' }, { tick: 4336, type: 'snare' }, { tick: 4351, type: 'hihat' }, { tick: 4361, type: 'crash1' }, { tick: 4361, type: 'kick' }, { tick: 4378, type: 'crash1' }, { tick: 4379, type: 'kick' }, { tick: 4394, type: 'crash1' }, { tick: 4396, type: 'kick' }, { tick: 4411, type: 'hihat' }, { tick: 4412, type: 'snare' }, { tick: 4429, type: 'hihat' }, { tick: 4439, type: 'kick' }, { tick: 4445, type: 'hihat' }, { tick: 4449, type: 'snare' }, { tick: 4464, type: 'hihat' }, { tick: 4474, type: 'snare' }, { tick: 4481, type: 'snare' }, { tick: 4497, type: 'snare' }, { tick: 4506, type: 'snare' }, { tick: 4519, type: 'tom1' }, { tick: 4531, type: 'kick' }, { tick: 4531, type: 'crash1' }, { tick: 4548, type: 'snare' }, { tick: 4548, type: 'hihat' }, { tick: 4565, type: 'hihat' }, { tick: 4574, type: 'kick' }, { tick: 4580, type: 'hihat' }, { tick: 4583, type: 'snare' }, { tick: 4599, type: 'hihat' }, { tick: 4602, type: 'kick' }, { tick: 4609, type: 'crash1' }, { tick: 4610, type: 'kick' }, { tick: 4627, type: 'crash1' }, { tick: 4627, type: 'kick' }, { tick: 4642, type: 'hihat' }, { tick: 4660, type: 'hihat' }, { tick: 4661, type: 'snare' }, { tick: 4678, type: 'hihat' }, { tick: 4688, type: 'snare' }, { tick: 4694, type: 'hihat' }, { tick: 4699, type: 'snare' }, { tick: 4725, type: 'snare' }, { tick: 4732, type: 'snare' }, { tick: 4748, type: 'snare' }, { tick: 4756, type: 'snare' }, { tick: 4763, type: 'tom1' }, { tick: 4772, type: 'kick' }, { tick: 4779, type: 'kick' }, { tick: 4780, type: 'crash1' }, { tick: 4797, type: 'snare' }, { tick: 4797, type: 'hihat' }, { tick: 4814, type: 'hihat' }, { tick: 4823, type: 'kick' }, { tick: 4830, type: 'hihat' }, { tick: 4832, type: 'snare' }, { tick: 4849, type: 'crash1' }, { tick: 4850, type: 'kick' }, { tick: 4856, type: 'crash1' }, { tick: 4857, type: 'kick' }, { tick: 4874, type: 'kick' }, { tick: 4875, type: 'crash1' }, { tick: 4891, type: 'hihat' }, { tick: 4907, type: 'hihat' }, { tick: 4907, type: 'snare' }, { tick: 4924, type: 'hihat' }, { tick: 4932, type: 'kick' }, { tick: 4940, type: 'hihat' }, { tick: 4942, type: 'snare' }, { tick: 4958, type: 'hihat' }, { tick: 4968, type: 'snare' }, { tick: 4975, type: 'snare' }, { tick: 4993, type: 'snare' }, { tick: 5000, type: 'snare' }, { tick: 5007, type: 'tom1' }, { tick: 5015, type: 'tom1' }, { tick: 5026, type: 'kick' }, { tick: 5029, type: 'crash1' }, { tick: 5046, type: 'hihat' }, { tick: 5046, type: 'snare' }, { tick: 5063, type: 'hihat' }, { tick: 5074, type: 'kick' }, { tick: 5079, type: 'hihat' }, { tick: 5083, type: 'snare' }, { tick: 5096, type: 'hihat' }, { tick: 5105, type: 'kick' }, { tick: 5106, type: 'crash1' }, { tick: 5124, type: 'crash1' }, { tick: 5125, type: 'kick' }, { tick: 5140, type: 'kick' }, { tick: 5150, type: 'snare' }, { tick: 5159, type: 'snare' }, { tick: 5168, type: 'snare' }, { tick: 5177, type: 'snare' }, { tick: 5182, type: 'snare' }, { tick: 5190, type: 'snare' }, { tick: 5198, type: 'snare' }, { tick: 5210, type: 'crash1' }, { tick: 5210, type: 'kick' }, { tick: 5245, type: 'hihat' }, { tick: 5246, type: 'snare' }, { tick: 5262, type: 'snare' }, { tick: 5262, type: 'hihat' }, { tick: 5278, type: 'crash1' }, { tick: 5312, type: 'hihat' }, { tick: 5313, type: 'snare' }, { tick: 5330, type: 'snare' }, { tick: 5330, type: 'hihat' }, { tick: 5347, type: 'hihat' }, { tick: 5348, type: 'kick' }, { tick: 5367, type: 'kick' }, { tick: 5368, type: 'hihat' }, { tick: 5381, type: 'hihat' }, { tick: 5383, type: 'snare' }, { tick: 5400, type: 'hihat' }, { tick: 5400, type: 'snare' }, { tick: 5416, type: 'snare' }, { tick: 5424, type: 'snare' }, { tick: 5431, type: 'snare' }, { tick: 5440, type: 'snare' }, { tick: 5447, type: 'tom1' }, { tick: 5456, type: 'tom1' }, { tick: 5463, type: 'snare' }, { tick: 5471, type: 'snare' }, { tick: 5482, type: 'kick' }, { tick: 5483, type: 'crash1' }, { tick: 5516, type: 'hihat' }, { tick: 5519, type: 'snare' }, { tick: 5534, type: 'hihat' }, { tick: 5535, type: 'snare' }, { tick: 5551, type: 'crash1' }, { tick: 5554, type: 'kick' }, { tick: 5569, type: 'kick' }, { tick: 5582, type: 'kick' }, { tick: 5584, type: 'hihat' }, { tick: 5601, type: 'snare' }, { tick: 5602, type: 'hihat' }, { tick: 5617, type: 'crash1' }, { tick: 5619, type: 'kick' }, { tick: 5637, type: 'kick' }, { tick: 5647, type: 'kick' }, { tick: 5653, type: 'hihat' }, { tick: 5655, type: 'snare' }, { tick: 5671, type: 'snare' }, { tick: 5687, type: 'snare' }, { tick: 5696, type: 'snare' }, { tick: 5703, type: 'snare' }, { tick: 5713, type: 'snare' }, { tick: 5721, type: 'tom1' }, { tick: 5729, type: 'tom1' }, { tick: 5739, type: 'snare' }, { tick: 5747, type: 'snare' }, { tick: 5757, type: 'crash1' }, { tick: 5758, type: 'kick' }, { tick: 5777, type: 'kick' }, { tick: 5786, type: 'kick' }, { tick: 5793, type: 'hihat' }, { tick: 5794, type: 'snare' }, { tick: 5809, type: 'snare' }, { tick: 5825, type: 'hihat' }, { tick: 5827, type: 'kick' }, { tick: 5842, type: 'kick' }, { tick: 5851, type: 'kick' }, { tick: 5859, type: 'hihat' }, { tick: 5861, type: 'snare' }, { tick: 5877, type: 'snare' }, { tick: 5895, type: 'hihat' }, { tick: 5896, type: 'kick' }, { tick: 5913, type: 'kick' }, { tick: 5914, type: 'hihat' }, { tick: 5931, type: 'snare' }, { tick: 5934, type: 'hihat' }, { tick: 5947, type: 'snare' }, { tick: 5964, type: 'snare' }, { tick: 5981, type: 'snare' }, { tick: 5998, type: 'tom1' }, { tick: 6008, type: 'snare' }, { tick: 6017, type: 'snare' }, { tick: 6025, type: 'snare' }, { tick: 6034, type: 'crash1' }, { tick: 6035, type: 'kick' }, { tick: 6054, type: 'kick' }, { tick: 6063, type: 'kick' }, { tick: 6067, type: 'hihat' }, { tick: 6072, type: 'snare' }, { tick: 6086, type: 'hihat' }, { tick: 6086, type: 'snare' }, { tick: 6103, type: 'hihat' }, { tick: 6103, type: 'kick' }, { tick: 6121, type: 'kick' }, { tick: 6133, type: 'hihat' }, { tick: 6134, type: 'snare' }, { tick: 6151, type: 'hihat' }, { tick: 6151, type: 'snare' }, { tick: 6168, type: 'hihat' }, { tick: 6169, type: 'kick' }, { tick: 6184, type: 'kick' }, { tick: 6193, type: 'kick' }, { tick: 6201, type: 'hihat' }, { tick: 6202, type: 'snare' }, { tick: 6220, type: 'snare' }, { tick: 6220, type: 'hihat' }, { tick: 6237, type: 'snare' }, { tick: 6243, type: 'snare' }, { tick: 6248, type: 'snare' }, { tick: 6254, type: 'snare' }, { tick: 6273, type: 'tom1' }, { tick: 6290, type: 'tom1' }, { tick: 6310, type: 'kick' }, { tick: 6310, type: 'crash1' }, { tick: 6324, type: 'kick' }, { tick: 6324, type: 'crash1' }, { tick: 6374, type: 'crash1' }, { tick: 6374, type: 'kick' }, { tick: 6390, type: 'kick' }, { tick: 6390, type: 'crash1' }] }, { name: "Medium: Blast Funk-Wet Puppy", music: "BlastFunkWetPuppy", notes: [{ tick: 0, type: 'snare' }, { tick: 0, type: 'hihat' }, { tick: 26, type: 'kick' }, { tick: 27, type: 'hihat' }, { tick: 43, type: 'kick' }, { tick: 54, type: 'hihat' }, { tick: 55, type: 'snare' }, { tick: 82, type: 'hihat' }, { tick: 86, type: 'kick' }, { tick: 113, type: 'snare' }, { tick: 113, type: 'hihat' }, { tick: 141, type: 'kick' }, { tick: 143, type: 'hihat' }, { tick: 170, type: 'snare' }, { tick: 171, type: 'hihat' }, { tick: 197, type: 'hihat' }, { tick: 202, type: 'kick' }, { tick: 227, type: 'snare' }, { tick: 227, type: 'hihat' }, { tick: 250, type: 'kick' }, { tick: 255, type: 'kick' }, { tick: 255, type: 'hihat' }, { tick: 270, type: 'kick' }, { tick: 284, type: 'snare' }, { tick: 287, type: 'hihat' }, { tick: 314, type: 'kick' }, { tick: 317, type: 'hihat' }, { tick: 343, type: 'snare' }, { tick: 343, type: 'hihat' }, { tick: 364, type: 'kick' }, { tick: 371, type: 'kick' }, { tick: 373, type: 'hihat' }, { tick: 386, type: 'kick' }, { tick: 400, type: 'hihat' }, { tick: 402, type: 'snare' }, { tick: 417, type: 'hihat' }, { tick: 430, type: 'hihat' }, { tick: 430, type: 'hihat' }, { tick: 431, type: 'kick' }, { tick: 446, type: 'hihat' }, { tick: 459, type: 'hihat' }, { tick: 460, type: 'snare' }, { tick: 482, type: 'kick' }, { tick: 485, type: 'hihat' }, { tick: 488, type: 'kick' }, { tick: 503, type: 'kick' }, { tick: 514, type: 'hihat' }, { tick: 518, type: 'snare' }, { tick: 529, type: 'hihat' }, { tick: 545, type: 'kick' }, { tick: 552, type: 'hihat' }, { tick: 565, type: 'hihat' }, { tick: 571, type: 'hihat' }, { tick: 572, type: 'snare' }, { tick: 587, type: 'hihat' }, { tick: 598, type: 'kick' }, { tick: 601, type: 'hihat' }, { tick: 605, type: 'kick' }, { tick: 616, type: 'hihat' }, { tick: 619, type: 'kick' }, { tick: 630, type: 'hihat' }, { tick: 631, type: 'snare' }, { tick: 645, type: 'hihat' }, { tick: 658, type: 'hihat' }, { tick: 659, type: 'kick' }, { tick: 671, type: 'hihat' }, { tick: 675, type: 'hihat' }, { tick: 687, type: 'hihat' }, { tick: 688, type: 'snare' }, { tick: 701, type: 'hihat' }, { tick: 708, type: 'kick' }, { tick: 714, type: 'kick' }, { tick: 717, type: 'hihat' }, { tick: 730, type: 'kick' }, { tick: 732, type: 'hihat' }, { tick: 744, type: 'snare' }, { tick: 747, type: 'hihat' }, { tick: 761, type: 'hihat' }, { tick: 773, type: 'kick' }, { tick: 774, type: 'hihat' }, { tick: 774, type: 'hihat' }, { tick: 791, type: 'hihat' }, { tick: 803, type: 'snare' }, { tick: 805, type: 'hihat' }, { tick: 820, type: 'hihat' }, { tick: 829, type: 'kick' }, { tick: 835, type: 'hihat' }, { tick: 851, type: 'hihat' }, { tick: 858, type: 'snare' }, { tick: 864, type: 'hihat' }, { tick: 879, type: 'hihat' }, { tick: 887, type: 'kick' }, { tick: 901, type: 'hihat' }, { tick: 916, type: 'snare' }, { tick: 918, type: 'hihat' }, { tick: 929, type: 'hihat' }, { tick: 942, type: 'hihat' }, { tick: 944, type: 'kick' }, { tick: 959, type: 'hihat' }, { tick: 974, type: 'snare' }, { tick: 974, type: 'hihat' }, { tick: 990, type: 'hihat' }, { tick: 1004, type: 'hihat' }, { tick: 1005, type: 'kick' }, { tick: 1020, type: 'hihat' }, { tick: 1033, type: 'snare' }, { tick: 1033, type: 'hihat' }, { tick: 1048, type: 'hihat' }, { tick: 1061, type: 'kick' }, { tick: 1063, type: 'hihat' }, { tick: 1078, type: 'hihat' }, { tick: 1089, type: 'snare' }, { tick: 1093, type: 'hihat' }, { tick: 1108, type: 'hihat' }, { tick: 1117, type: 'kick' }, { tick: 1121, type: 'hihat' }, { tick: 1121, type: 'hihat' }, { tick: 1136, type: 'hihat' }, { tick: 1146, type: 'snare' }, { tick: 1150, type: 'hihat' }, { tick: 1165, type: 'hihat' }, { tick: 1176, type: 'kick' }, { tick: 1180, type: 'hihat' }, { tick: 1194, type: 'hihat' }, { tick: 1204, type: 'snare' }, { tick: 1208, type: 'hihat' }, { tick: 1223, type: 'hihat' }, { tick: 1233, type: 'kick' }, { tick: 1235, type: 'hihat' }, { tick: 1248, type: 'hihat' }, { tick: 1261, type: 'hihat' }, { tick: 1262, type: 'snare' }, { tick: 1275, type: 'hihat' }, { tick: 1288, type: 'hihat' }, { tick: 1290, type: 'hihat' }, { tick: 1291, type: 'kick' }, { tick: 1307, type: 'hihat' }, { tick: 1319, type: 'snare' }, { tick: 1322, type: 'hihat' }, { tick: 1337, type: 'hihat' }, { tick: 1348, type: 'kick' }, { tick: 1351, type: 'hihat' }, { tick: 1365, type: 'hihat' }, { tick: 1377, type: 'hihat' }, { tick: 1379, type: 'snare' }, { tick: 1392, type: 'hihat' }, { tick: 1405, type: 'hihat' }, { tick: 1405, type: 'hihat' }, { tick: 1407, type: 'kick' }, { tick: 1421, type: 'hihat' }, { tick: 1434, type: 'hihat' }, { tick: 1435, type: 'snare' }, { tick: 1451, type: 'hihat' }, { tick: 1464, type: 'hihat' }, { tick: 1466, type: 'kick' }, { tick: 1478, type: 'hihat' }, { tick: 1491, type: 'hihat' }, { tick: 1493, type: 'snare' }, { tick: 1507, type: 'hihat' }, { tick: 1512, type: 'hihat' }, { tick: 1518, type: 'hihat' }, { tick: 1522, type: 'kick' }, { tick: 1533, type: 'hihat' }, { tick: 1548, type: 'hihat' }, { tick: 1551, type: 'snare' }, { tick: 1565, type: 'hihat' }, { tick: 1580, type: 'kick' }, { tick: 1582, type: 'hihat' }, { tick: 1595, type: 'hihat' }, { tick: 1606, type: 'snare' }, { tick: 1609, type: 'hihat' }, { tick: 1623, type: 'hihat' }, { tick: 1635, type: 'kick' }, { tick: 1636, type: 'hihat' }, { tick: 1636, type: 'hihat' }, { tick: 1653, type: 'hihat' }, { tick: 1662, type: 'snare' }, { tick: 1668, type: 'hihat' }, { tick: 1683, type: 'hihat' }, { tick: 1693, type: 'kick' }, { tick: 1695, type: 'hihat' }, { tick: 1708, type: 'hihat' }, { tick: 1722, type: 'snare' }, { tick: 1723, type: 'hihat' }, { tick: 1737, type: 'hihat' }, { tick: 1744, type: 'kick' }, { tick: 1749, type: 'kick' }, { tick: 1752, type: 'hihat' }, { tick: 1764, type: 'kick' }, { tick: 1767, type: 'hihat' }, { tick: 1779, type: 'snare' }, { tick: 1781, type: 'hihat' }, { tick: 1796, type: 'hihat' }, { tick: 1809, type: 'kick' }, { tick: 1811, type: 'hihat' }, { tick: 1825, type: 'hihat' }, { tick: 1839, type: 'hihat' }, { tick: 1840, type: 'snare' }, { tick: 1853, type: 'hihat' }, { tick: 1867, type: 'hihat' }, { tick: 1868, type: 'kick' }, { tick: 1882, type: 'hihat' }, { tick: 1896, type: 'snare' }, { tick: 1896, type: 'hihat' }, { tick: 1911, type: 'hihat' }, { tick: 1924, type: 'kick' }, { tick: 1924, type: 'hihat' }, { tick: 1925, type: 'hihat' }, { tick: 1939, type: 'hihat' }, { tick: 1953, type: 'hihat' }, { tick: 1954, type: 'snare' }, { tick: 1967, type: 'hihat' }, { tick: 1980, type: 'hihat' }, { tick: 1981, type: 'kick' }, { tick: 1996, type: 'hihat' }, { tick: 2007, type: 'snare' }, { tick: 2010, type: 'hihat' }, { tick: 2026, type: 'hihat' }, { tick: 2032, type: 'hihat' }, { tick: 2038, type: 'hihat' }, { tick: 2039, type: 'kick' }, { tick: 2054, type: 'hihat' }, { tick: 2069, type: 'snare' }, { tick: 2069, type: 'hihat' }, { tick: 2083, type: 'hihat' }, { tick: 2097, type: 'hihat' }, { tick: 2100, type: 'kick' }, { tick: 2111, type: 'hihat' }, { tick: 2126, type: 'snare' }, { tick: 2126, type: 'hihat' }, { tick: 2142, type: 'hihat' }, { tick: 2154, type: 'kick' }, { tick: 2154, type: 'hihat' }, { tick: 2155, type: 'hihat' }, { tick: 2168, type: 'hihat' }, { tick: 2183, type: 'snare' }, { tick: 2183, type: 'hihat' }, { tick: 2197, type: 'hihat' }, { tick: 2209, type: 'kick' }, { tick: 2212, type: 'hihat' }, { tick: 2226, type: 'hihat' }, { tick: 2239, type: 'snare' }, { tick: 2239, type: 'hihat' }, { tick: 2262, type: 'hihat' }, { tick: 2270, type: 'kick' }, { tick: 2278, type: 'hihat' }, { tick: 2291, type: 'hihat' }, { tick: 2303, type: 'snare' }, { tick: 2304, type: 'hihat' }, { tick: 2317, type: 'hihat' }, { tick: 2327, type: 'kick' }, { tick: 2330, type: 'hihat' }, { tick: 2343, type: 'hihat' }, { tick: 2355, type: 'snare' }, { tick: 2355, type: 'hihat' }, { tick: 2370, type: 'hihat' }, { tick: 2383, type: 'hihat' }, { tick: 2384, type: 'kick' }, { tick: 2384, type: 'hihat' }, { tick: 2399, type: 'hihat' }, { tick: 2412, type: 'snare' }, { tick: 2414, type: 'hihat' }, { tick: 2429, type: 'hihat' }, { tick: 2434, type: 'kick' }, { tick: 2441, type: 'kick' }, { tick: 2442, type: 'hihat' }, { tick: 2454, type: 'kick' }, { tick: 2458, type: 'hihat' }, { tick: 2467, type: 'snare' }, { tick: 2473, type: 'hihat' }, { tick: 2490, type: 'hihat' }, { tick: 2496, type: 'kick' }, { tick: 2503, type: 'hihat' }, { tick: 2515, type: 'hihat' }, { tick: 2527, type: 'snare' }, { tick: 2530, type: 'hihat' }, { tick: 2545, type: 'hihat' }, { tick: 2554, type: 'kick' }, { tick: 2557, type: 'hihat' }, { tick: 2571, type: 'hihat' }, { tick: 2584, type: 'snare' }, { tick: 2586, type: 'hihat' }, { tick: 2600, type: 'hihat' }, { tick: 2611, type: 'kick' }, { tick: 2613, type: 'hihat' }, { tick: 2629, type: 'hihat' }, { tick: 2639, type: 'snare' }, { tick: 2643, type: 'hihat' }, { tick: 2657, type: 'hihat' }, { tick: 2660, type: 'kick' }, { tick: 2667, type: 'kick' }, { tick: 2671, type: 'hihat' }, { tick: 2682, type: 'kick' }, { tick: 2683, type: 'hihat' }, { tick: 2697, type: 'snare' }, { tick: 2699, type: 'hihat' }, { tick: 2714, type: 'hihat' }, { tick: 2727, type: 'hihat' }, { tick: 2727, type: 'hihat' }, { tick: 2728, type: 'kick' }, { tick: 2742, type: 'hihat' }, { tick: 2758, type: 'snare' }, { tick: 2758, type: 'hihat' }, { tick: 2774, type: 'hihat' }, { tick: 2783, type: 'kick' }, { tick: 2788, type: 'hihat' }, { tick: 2803, type: 'hihat' }, { tick: 2814, type: 'snare' }, { tick: 2816, type: 'hihat' }, { tick: 2829, type: 'hihat' }, { tick: 2842, type: 'kick' }, { tick: 2843, type: 'hihat' }, { tick: 2857, type: 'hihat' }, { tick: 2871, type: 'snare' }, { tick: 2872, type: 'hihat' }, { tick: 2886, type: 'hihat' }, { tick: 2900, type: 'hihat' }, { tick: 2901, type: 'kick' }, { tick: 2916, type: 'hihat' }, { tick: 2930, type: 'hihat' }, { tick: 2932, type: 'snare' }, { tick: 2943, type: 'hihat' }, { tick: 2958, type: 'kick' }, { tick: 2958, type: 'hihat' }, { tick: 2973, type: 'hihat' }, { tick: 2988, type: 'hihat' }, { tick: 2989, type: 'snare' }, { tick: 3003, type: 'hihat' }, { tick: 3015, type: 'kick' }, { tick: 3017, type: 'hihat' }, { tick: 3032, type: 'hihat' }, { tick: 3043, type: 'snare' }, { tick: 3045, type: 'hihat' }, { tick: 3061, type: 'hihat' }, { tick: 3073, type: 'hihat' }, { tick: 3074, type: 'kick' }, { tick: 3088, type: 'hihat' }, { tick: 3102, type: 'snare' }, { tick: 3103, type: 'hihat' }, { tick: 3117, type: 'hihat' }, { tick: 3130, type: 'hihat' }, { tick: 3131, type: 'hihat' }, { tick: 3132, type: 'kick' }, { tick: 3146, type: 'hihat' }, { tick: 3159, type: 'snare' }, { tick: 3159, type: 'hihat' }, { tick: 3175, type: 'hihat' }, { tick: 3188, type: 'hihat' }, { tick: 3191, type: 'kick' }, { tick: 3203, type: 'hihat' }, { tick: 3216, type: 'hihat' }, { tick: 3217, type: 'snare' }, { tick: 3231, type: 'hihat' }, { tick: 3240, type: 'kick' }, { tick: 3244, type: 'hihat' }, { tick: 3245, type: 'hihat' }, { tick: 3246, type: 'kick' }, { tick: 3260, type: 'kick' }, { tick: 3262, type: 'hihat' }, { tick: 3274, type: 'snare' }, { tick: 3275, type: 'hihat' }, { tick: 3288, type: 'hihat' }, { tick: 3302, type: 'kick' }, { tick: 3303, type: 'hihat' }, { tick: 3317, type: 'hihat' }, { tick: 3331, type: 'snare' }, { tick: 3334, type: 'hihat' }, { tick: 3348, type: 'hihat' }, { tick: 3353, type: 'kick' }, { tick: 3360, type: 'kick' }, { tick: 3360, type: 'hihat' }, { tick: 3374, type: 'kick' }, { tick: 3376, type: 'hihat' }, { tick: 3389, type: 'snare' }, { tick: 3390, type: 'hihat' }, { tick: 3405, type: 'hihat' }, { tick: 3419, type: 'hihat' }, { tick: 3420, type: 'kick' }, { tick: 3435, type: 'hihat' }, { tick: 3445, type: 'snare' }, { tick: 3450, type: 'hihat' }, { tick: 3463, type: 'hihat' }, { tick: 3473, type: 'kick' }, { tick: 3477, type: 'hihat' }, { tick: 3490, type: 'hihat' }, { tick: 3491, type: 'kick' }, { tick: 3503, type: 'hihat' }, { tick: 3505, type: 'snare' }, { tick: 3516, type: 'hihat' }, { tick: 3529, type: 'hihat' }, { tick: 3532, type: 'kick' }, { tick: 3542, type: 'hihat' }, { tick: 3557, type: 'hihat' }, { tick: 3562, type: 'snare' }, { tick: 3572, type: 'hihat' }, { tick: 3589, type: 'kick' }, { tick: 3589, type: 'hihat' }, { tick: 3603, type: 'hihat' }, { tick: 3605, type: 'kick' }, { tick: 3618, type: 'hihat' }, { tick: 3620, type: 'snare' }, { tick: 3633, type: 'hihat' }, { tick: 3646, type: 'hihat' }, { tick: 3647, type: 'kick' }, { tick: 3647, type: 'hihat' }, { tick: 3664, type: 'hihat' }, { tick: 3675, type: 'snare' }, { tick: 3677, type: 'hihat' }, { tick: 3692, type: 'hihat' }, { tick: 3704, type: 'kick' }, { tick: 3705, type: 'hihat' }, { tick: 3720, type: 'hihat' }, { tick: 3732, type: 'snare' }, { tick: 3734, type: 'hihat' }, { tick: 3750, type: 'hihat' }, { tick: 3763, type: 'kick' }, { tick: 3765, type: 'hihat' }, { tick: 3781, type: 'hihat' }, { tick: 3791, type: 'snare' }, { tick: 3794, type: 'hihat' }, { tick: 3807, type: 'hihat' }, { tick: 3820, type: 'kick' }, { tick: 3820, type: 'hihat' }, { tick: 3821, type: 'hihat' }, { tick: 3838, type: 'hihat' }, { tick: 3848, type: 'snare' }, { tick: 3851, type: 'hihat' }, { tick: 3864, type: 'hihat' }, { tick: 3877, type: 'kick' }, { tick: 3878, type: 'hihat' }, { tick: 3893, type: 'hihat' }, { tick: 3905, type: 'snare' }, { tick: 3908, type: 'hihat' }, { tick: 3923, type: 'hihat' }, { tick: 3934, type: 'kick' }, { tick: 3936, type: 'hihat' }, { tick: 3937, type: 'hihat' }, { tick: 3952, type: 'hihat' }, { tick: 3963, type: 'snare' }, { tick: 3965, type: 'hihat' }, { tick: 3979, type: 'hihat' }, { tick: 3992, type: 'kick' }, { tick: 3992, type: 'hihat' }, { tick: 4007, type: 'hihat' }, { tick: 4021, type: 'snare' }, { tick: 4022, type: 'hihat' }, { tick: 4035, type: 'hihat' }, { tick: 4042, type: 'kick' }, { tick: 4049, type: 'kick' }, { tick: 4049, type: 'hihat' }, { tick: 4063, type: 'kick' }, { tick: 4064, type: 'hihat' }, { tick: 4077, type: 'snare' }, { tick: 4077, type: 'hihat' }, { tick: 4091, type: 'hihat' }, { tick: 4104, type: 'hihat' }, { tick: 4104, type: 'hihat' }, { tick: 4108, type: 'kick' }, { tick: 4121, type: 'hihat' }, { tick: 4134, type: 'hihat' }, { tick: 4136, type: 'snare' }, { tick: 4149, type: 'hihat' }, { tick: 4164, type: 'hihat' }, { tick: 4166, type: 'kick' }, { tick: 4181, type: 'hihat' }, { tick: 4195, type: 'snare' }, { tick: 4196, type: 'hihat' }, { tick: 4209, type: 'hihat' }, { tick: 4222, type: 'hihat' }, { tick: 4223, type: 'hihat' }, { tick: 4224, type: 'kick' }, { tick: 4237, type: 'hihat' }, { tick: 4251, type: 'hihat' }, { tick: 4253, type: 'snare' }, { tick: 4267, type: 'hihat' }, { tick: 4280, type: 'hihat' }, { tick: 4282, type: 'kick' }, { tick: 4296, type: 'hihat' }, { tick: 4308, type: 'snare' }, { tick: 4310, type: 'hihat' }, { tick: 4323, type: 'hihat' }, { tick: 4336, type: 'hihat' }, { tick: 4337, type: 'hihat' }, { tick: 4338, type: 'kick' }, { tick: 4354, type: 'hihat' }, { tick: 4367, type: 'snare' }, { tick: 4368, type: 'hihat' }, { tick: 4382, type: 'hihat' }, { tick: 4396, type: 'kick' }, { tick: 4397, type: 'hihat' }, { tick: 4411, type: 'hihat' }, { tick: 4424, type: 'snare' }, { tick: 4424, type: 'hihat' }, { tick: 4438, type: 'hihat' }, { tick: 4451, type: 'hihat' }, { tick: 4451, type: 'hihat' }, { tick: 4452, type: 'kick' }, { tick: 4466, type: 'hihat' }, { tick: 4481, type: 'snare' }, { tick: 4482, type: 'hihat' }, { tick: 4494, type: 'hihat' }, { tick: 4503, type: 'kick' }, { tick: 4510, type: 'kick' }, { tick: 4510, type: 'hihat' }, { tick: 4524, type: 'kick' }, { tick: 4525, type: 'hihat' }, { tick: 4538, type: 'snare' }, { tick: 4538, type: 'hihat' }, { tick: 4552, type: 'hihat' }, { tick: 4565, type: 'hihat' }, { tick: 4567, type: 'kick' }, { tick: 4567, type: 'hihat' }, { tick: 4580, type: 'hihat' }, { tick: 4585, type: 'hihat' }, { tick: 4597, type: 'snare' }, { tick: 4599, type: 'hihat' }, { tick: 4613, type: 'hihat' }, { tick: 4624, type: 'kick' }, { tick: 4627, type: 'hihat' }, { tick: 4640, type: 'hihat' }, { tick: 4654, type: 'snare' }, { tick: 4654, type: 'hihat' }, { tick: 4669, type: 'hihat' }, { tick: 4682, type: 'hihat' }, { tick: 4683, type: 'kick' }, { tick: 4683, type: 'hihat' }, { tick: 4696, type: 'hihat' }, { tick: 4710, type: 'hihat' }, { tick: 4711, type: 'snare' }, { tick: 4725, type: 'hihat' }, { tick: 4740, type: 'hihat' }, { tick: 4741, type: 'kick' }, { tick: 4756, type: 'hihat' }, { tick: 4769, type: 'snare' }, { tick: 4771, type: 'hihat' }, { tick: 4785, type: 'hihat' }, { tick: 4797, type: 'kick' }, { tick: 4798, type: 'hihat' }, { tick: 4799, type: 'hihat' }, { tick: 4813, type: 'hihat' }, { tick: 4827, type: 'snare' }, { tick: 4828, type: 'hihat' }, { tick: 4842, type: 'hihat' }, { tick: 4856, type: 'kick' }, { tick: 4857, type: 'hihat' }, { tick: 4871, type: 'hihat' }, { tick: 4884, type: 'snare' }, { tick: 4884, type: 'hihat' }, { tick: 4898, type: 'hihat' }, { tick: 4911, type: 'hihat' }, { tick: 4914, type: 'kick' }, { tick: 4927, type: 'hihat' }, { tick: 4941, type: 'snare' }, { tick: 4942, type: 'hihat' }, { tick: 4956, type: 'hihat' }, { tick: 4962, type: 'kick' }, { tick: 4969, type: 'kick' }, { tick: 4971, type: 'hihat' }, { tick: 4983, type: 'kick' }, { tick: 4985, type: 'hihat' }, { tick: 4996, type: 'snare' }, { tick: 5001, type: 'hihat' }, { tick: 5014, type: 'hihat' }, { tick: 5027, type: 'kick' }, { tick: 5027, type: 'hihat' }, { tick: 5027, type: 'hihat' }, { tick: 5041, type: 'hihat' }, { tick: 5055, type: 'snare' }, { tick: 5056, type: 'hihat' }, { tick: 5071, type: 'hihat' }, { tick: 5079, type: 'kick' }, { tick: 5085, type: 'hihat' }, { tick: 5099, type: 'kick' }, { tick: 5100, type: 'hihat' }, { tick: 5114, type: 'hihat' }, { tick: 5115, type: 'snare' }, { tick: 5128, type: 'hihat' }, { tick: 5141, type: 'hihat' }, { tick: 5141, type: 'hihat' }, { tick: 5143, type: 'kick' }, { tick: 5158, type: 'hihat' }, { tick: 5171, type: 'snare' }, { tick: 5173, type: 'hihat' }, { tick: 5187, type: 'hihat' }, { tick: 5200, type: 'kick' }, { tick: 5202, type: 'hihat' }, { tick: 5217, type: 'hihat' }, { tick: 5229, type: 'snare' }, { tick: 5231, type: 'hihat' }, { tick: 5244, type: 'hihat' }, { tick: 5257, type: 'hihat' }, { tick: 5257, type: 'hihat' }, { tick: 5258, type: 'kick' }, { tick: 5272, type: 'hihat' }, { tick: 5286, type: 'snare' }, { tick: 5286, type: 'hihat' }, { tick: 5301, type: 'hihat' }, { tick: 5314, type: 'kick' }, { tick: 5317, type: 'hihat' }, { tick: 5330, type: 'hihat' }, { tick: 5341, type: 'snare' }, { tick: 5345, type: 'hihat' }, { tick: 5360, type: 'hihat' }, { tick: 5371, type: 'hihat' }, { tick: 5372, type: 'kick' }, { tick: 5384, type: 'hihat' }, { tick: 5397, type: 'hihat' }, { tick: 5399, type: 'snare' }, { tick: 5410, type: 'hihat' }, { tick: 5420, type: 'kick' }, { tick: 5423, type: 'hihat' }, { tick: 5427, type: 'kick' }, { tick: 5436, type: 'hihat' }, { tick: 5442, type: 'kick' }, { tick: 5457, type: 'snare' }, { tick: 5459, type: 'hihat' }, { tick: 5486, type: 'hihat' }, { tick: 5488, type: 'kick' }, { tick: 5516, type: 'hihat' }, { tick: 5517, type: 'snare' }, { tick: 5545, type: 'hihat' }, { tick: 5547, type: 'kick' }, { tick: 5573, type: 'snare' }, { tick: 5573, type: 'hihat' }, { tick: 5588, type: 'hihat' }, { tick: 5601, type: 'hihat' }, { tick: 5602, type: 'kick' }, { tick: 5614, type: 'hihat' }, { tick: 5629, type: 'hihat' }, { tick: 5630, type: 'snare' }, { tick: 5652, type: 'kick' }, { tick: 5658, type: 'kick' }, { tick: 5658, type: 'hihat' }, { tick: 5674, type: 'kick' }, { tick: 5686, type: 'hihat' }, { tick: 5689, type: 'snare' }, { tick: 5709, type: 'hihat' }, { tick: 5718, type: 'kick' }, { tick: 5725, type: 'hihat' }, { tick: 5731, type: 'hihat' }, { tick: 5746, type: 'hihat' }, { tick: 5747, type: 'snare' }, { tick: 5760, type: 'hihat' }, { tick: 5769, type: 'kick' }, { tick: 5775, type: 'kick' }, { tick: 5775, type: 'hihat' }, { tick: 5789, type: 'kick' }, { tick: 5803, type: 'hihat' }, { tick: 5804, type: 'snare' }, { tick: 5825, type: 'hihat' }, { tick: 5833, type: 'kick' }, { tick: 5842, type: 'hihat' }, { tick: 5848, type: 'hihat' }, { tick: 5861, type: 'snare' }, { tick: 5861, type: 'hihat' }, { tick: 5885, type: 'kick' }, { tick: 5890, type: 'hihat' }, { tick: 5904, type: 'kick' }, { tick: 5917, type: 'hihat' }, { tick: 5918, type: 'snare' }, { tick: 5934, type: 'hihat' }, { tick: 5940, type: 'hihat' }, { tick: 5945, type: 'kick' }, { tick: 5946, type: 'hihat' }, { tick: 5961, type: 'hihat' }, { tick: 5974, type: 'snare' }, { tick: 5977, type: 'hihat' }, { tick: 5995, type: 'kick' }, { tick: 6002, type: 'kick' }, { tick: 6006, type: 'hihat' }, { tick: 6018, type: 'kick' }, { tick: 6030, type: 'hihat' }, { tick: 6033, type: 'snare' }, { tick: 6045, type: 'hihat' }, { tick: 6058, type: 'hihat' }, { tick: 6061, type: 'hihat' }, { tick: 6062, type: 'kick' }, { tick: 6074, type: 'hihat' }, { tick: 6089, type: 'snare' }, { tick: 6090, type: 'hihat' }, { tick: 6105, type: 'hihat' }, { tick: 6110, type: 'kick' }, { tick: 6117, type: 'kick' }, { tick: 6118, type: 'hihat' }, { tick: 6132, type: 'kick' }, { tick: 6133, type: 'hihat' }, { tick: 6147, type: 'snare' }, { tick: 6147, type: 'hihat' }, { tick: 6161, type: 'hihat' }, { tick: 6174, type: 'hihat' }, { tick: 6174, type: 'hihat' }, { tick: 6176, type: 'kick' }, { tick: 6187, type: 'hihat' }, { tick: 6200, type: 'hihat' }, { tick: 6206, type: 'snare' }, { tick: 6213, type: 'hihat' }, { tick: 6226, type: 'hihat' }, { tick: 6228, type: 'kick' }, { tick: 6235, type: 'kick' }, { tick: 6239, type: 'hihat' }, { tick: 6250, type: 'kick' }, { tick: 6251, type: 'hihat' }, { tick: 6263, type: 'hihat' }, { tick: 6264, type: 'snare' }, { tick: 6278, type: 'hihat' }, { tick: 6284, type: 'hihat' }, { tick: 6289, type: 'kick' }, { tick: 6301, type: 'hihat' }, { tick: 6316, type: 'hihat' }, { tick: 6320, type: 'snare' }, { tick: 6344, type: 'kick' }, { tick: 6348, type: 'hihat' }, { tick: 6362, type: 'hihat' }, { tick: 6365, type: 'kick' }, { tick: 6377, type: 'hihat' }, { tick: 6380, type: 'snare' }, { tick: 6391, type: 'hihat' }, { tick: 6405, type: 'hihat' }, { tick: 6408, type: 'kick' }, { tick: 6421, type: 'hihat' }, { tick: 6435, type: 'hihat' }, { tick: 6437, type: 'snare' }, { tick: 6450, type: 'hihat' }, { tick: 6465, type: 'kick' }, { tick: 6465, type: 'hihat' }, { tick: 6480, type: 'hihat' }, { tick: 6494, type: 'snare' }, { tick: 6494, type: 'hihat' }, { tick: 6509, type: 'hihat' }, { tick: 6521, type: 'kick' }, { tick: 6522, type: 'hihat' }, { tick: 6535, type: 'hihat' }, { tick: 6551, type: 'snare' }, { tick: 6551, type: 'hihat' }, { tick: 6566, type: 'hihat' }, { tick: 6576, type: 'kick' }, { tick: 6579, type: 'hihat' }, { tick: 6583, type: 'kick' }, { tick: 6593, type: 'hihat' }, { tick: 6596, type: 'kick' }, { tick: 6607, type: 'hihat' }, { tick: 6610, type: 'snare' }, { tick: 6622, type: 'hihat' }, { tick: 6635, type: 'hihat' }, { tick: 6637, type: 'kick' }, { tick: 6650, type: 'hihat' }, { tick: 6665, type: 'snare' }, { tick: 6665, type: 'hihat' }, { tick: 6686, type: 'kick' }, { tick: 6692, type: 'kick' }, { tick: 6692, type: 'hihat' }, { tick: 6707, type: 'hihat' }, { tick: 6708, type: 'kick' }, { tick: 6720, type: 'hihat' }, { tick: 6724, type: 'snare' }, { tick: 6734, type: 'hihat' }, { tick: 6748, type: 'hihat' }, { tick: 6752, type: 'kick' }, { tick: 6763, type: 'hihat' }, { tick: 6779, type: 'snare' }, { tick: 6780, type: 'hihat' }, { tick: 6794, type: 'hihat' }, { tick: 6803, type: 'kick' }, { tick: 6808, type: 'hihat' }, { tick: 6809, type: 'kick' }, { tick: 6824, type: 'kick' }, { tick: 6824, type: 'hihat' }, { tick: 6836, type: 'hihat' }, { tick: 6839, type: 'snare' }, { tick: 6850, type: 'hihat' }, { tick: 6863, type: 'hihat' }, { tick: 6866, type: 'kick' }, { tick: 6874, type: 'hihat' }, { tick: 6889, type: 'hihat' }, { tick: 6895, type: 'snare' }, { tick: 6905, type: 'hihat' }, { tick: 6920, type: 'hihat' }, { tick: 6924, type: 'kick' }, { tick: 6935, type: 'hihat' }, { tick: 6950, type: 'snare' }, { tick: 6950, type: 'hihat' }, { tick: 6963, type: 'hihat' }, { tick: 6977, type: 'hihat' }, { tick: 6979, type: 'kick' }, { tick: 6991, type: 'hihat' }, { tick: 7008, type: 'hihat' }, { tick: 7010, type: 'snare' }, { tick: 7024, type: 'hihat' }, { tick: 7038, type: 'kick' }, { tick: 7039, type: 'hihat' }, { tick: 7051, type: 'hihat' }, { tick: 7066, type: 'hihat' }, { tick: 7067, type: 'snare' }, { tick: 7081, type: 'hihat' }, { tick: 7094, type: 'hihat' }, { tick: 7095, type: 'kick' }, { tick: 7095, type: 'hihat' }, { tick: 7110, type: 'hihat' }, { tick: 7126, type: 'snare' }, { tick: 7127, type: 'hihat' }, { tick: 7142, type: 'hihat' }, { tick: 7154, type: 'kick' }, { tick: 7155, type: 'hihat' }, { tick: 7169, type: 'hihat' }, { tick: 7172, type: 'kick' }, { tick: 7182, type: 'hihat' }, { tick: 7185, type: 'snare' }, { tick: 7196, type: 'hihat' }, { tick: 7211, type: 'hihat' }, { tick: 7213, type: 'kick' }, { tick: 7224, type: 'hihat' }, { tick: 7239, type: 'snare' }, { tick: 7240, type: 'hihat' }, { tick: 7254, type: 'hihat' }, { tick: 7264, type: 'kick' }, { tick: 7269, type: 'hihat' }, { tick: 7282, type: 'kick' }, { tick: 7285, type: 'hihat' }, { tick: 7287, type: 'kick' }, { tick: 7299, type: 'hihat' }, { tick: 7307, type: 'snare' }, { tick: 7313, type: 'hihat' }, { tick: 7327, type: 'hihat' }, { tick: 7341, type: 'hihat' }, { tick: 7356, type: 'hihat' }, { tick: 7360, type: 'snare' }, { tick: 7371, type: 'hihat' }, { tick: 7384, type: 'hihat' }, { tick: 7399, type: 'hihat' }, { tick: 7411, type: 'snare' }, { tick: 7412, type: 'hihat' }, { tick: 7429, type: 'hihat' }, { tick: 7442, type: 'kick' }, { tick: 7442, type: 'hihat' }, { tick: 7455, type: 'hihat' }, { tick: 7468, type: 'snare' }, { tick: 7469, type: 'hihat' }, { tick: 7484, type: 'hihat' }, { tick: 7492, type: 'kick' }, { tick: 7497, type: 'hihat' }, { tick: 7498, type: 'hihat' }, { tick: 7509, type: 'kick' }, { tick: 7515, type: 'hihat' }, { tick: 7517, type: 'kick' }, { tick: 7528, type: 'snare' }, { tick: 7528, type: 'hihat' }, { tick: 7540, type: 'hihat' }, { tick: 7553, type: 'hihat' }, { tick: 7555, type: 'kick' }, { tick: 7567, type: 'hihat' }, { tick: 7581, type: 'hihat' }, { tick: 7582, type: 'snare' }, { tick: 7598, type: 'hihat' }, { tick: 7605, type: 'kick' }, { tick: 7612, type: 'hihat' }, { tick: 7623, type: 'kick' }, { tick: 7626, type: 'hihat' }, { tick: 7631, type: 'kick' }, { tick: 7641, type: 'hihat' }, { tick: 7643, type: 'snare' }, { tick: 7657, type: 'hihat' }, { tick: 7671, type: 'kick' }, { tick: 7671, type: 'hihat' }, { tick: 7685, type: 'hihat' }, { tick: 7700, type: 'snare' }, { tick: 7700, type: 'hihat' }, { tick: 7717, type: 'hihat' }, { tick: 7724, type: 'kick' }, { tick: 7740, type: 'kick' }, { tick: 7746, type: 'kick' }, { tick: 7758, type: 'snare' }] }, { name: "Easy: AB/CD Back in Track", music: "ABCDBackinDark", notes: [{ tick: 40, type: 'kick' }, { tick: 40, type: 'crash1' }, { tick: 58, type: 'hihat' }, { tick: 77, type: 'hihat' }, { tick: 78, type: 'snare' }, { tick: 95, type: 'hihat' }, { tick: 113, type: 'hihat' }, { tick: 114, type: 'kick' }, { tick: 131, type: 'hihat' }, { tick: 149, type: 'snare' }, { tick: 149, type: 'hihat' }, { tick: 168, type: 'hihat' }, { tick: 185, type: 'kick' }, { tick: 185, type: 'hihat' }, { tick: 202, type: 'hihat' }, { tick: 220, type: 'hihat' }, { tick: 220, type: 'snare' }, { tick: 237, type: 'hihat' }, { tick: 256, type: 'hihat' }, { tick: 257, type: 'kick' }, { tick: 276, type: 'hihat' }, { tick: 292, type: 'snare' }, { tick: 293, type: 'hihat' }, { tick: 311, type: 'hihat' }, { tick: 329, type: 'hihat' }, { tick: 329, type: 'kick' }, { tick: 346, type: 'hihat' }, { tick: 363, type: 'hihat' }, { tick: 364, type: 'snare' }, { tick: 382, type: 'hihat' }, { tick: 400, type: 'hihat' }, { tick: 400, type: 'kick' }, { tick: 419, type: 'hihat' }, { tick: 437, type: 'hihat' }, { tick: 438, type: 'snare' }, { tick: 455, type: 'hihat' }, { tick: 473, type: 'hihat' }, { tick: 473, type: 'kick' }, { tick: 490, type: 'hihat' }, { tick: 508, type: 'snare' }, { tick: 515, type: 'tom1' }, { tick: 537, type: 'snare' }, { tick: 543, type: 'tom1' }, { tick: 567, type: 'snare' }, { tick: 572, type: 'tom1' }, { tick: 594, type: 'snare' }, { tick: 598, type: 'tom1' }, { tick: 622, type: 'crash1' }, { tick: 622, type: 'kick' }, { tick: 643, type: 'hihat' }, { tick: 658, type: 'snare' }, { tick: 658, type: 'hihat' }, { tick: 676, type: 'hihat' }, { tick: 694, type: 'hihat' }, { tick: 694, type: 'kick' }, { tick: 711, type: 'hihat' }, { tick: 729, type: 'snare' }, { tick: 731, type: 'hihat' }, { tick: 750, type: 'hihat' }, { tick: 767, type: 'hihat' }, { tick: 768, type: 'kick' }, { tick: 783, type: 'hihat' }, { tick: 803, type: 'hihat' }, { tick: 803, type: 'snare' }, { tick: 821, type: 'hihat' }, { tick: 838, type: 'hihat' }, { tick: 838, type: 'kick' }, { tick: 854, type: 'hihat' }, { tick: 872, type: 'snare' }, { tick: 872, type: 'hihat' }, { tick: 890, type: 'hihat' }, { tick: 908, type: 'hihat' }, { tick: 910, type: 'kick' }, { tick: 927, type: 'hihat' }, { tick: 944, type: 'snare' }, { tick: 945, type: 'hihat' }, { tick: 965, type: 'hihat' }, { tick: 982, type: 'hihat' }, { tick: 982, type: 'kick' }, { tick: 1001, type: 'hihat' }, { tick: 1018, type: 'snare' }, { tick: 1018, type: 'hihat' }, { tick: 1037, type: 'hihat' }, { tick: 1055, type: 'hihat' }, { tick: 1056, type: 'kick' }, { tick: 1072, type: 'hihat' }, { tick: 1091, type: 'snare' }, { tick: 1098, type: 'tom1' }, { tick: 1120, type: 'snare' }, { tick: 1126, type: 'tom1' }, { tick: 1148, type: 'snare' }, { tick: 1153, type: 'tom1' }, { tick: 1175, type: 'snare' }, { tick: 1181, type: 'tom1' }, { tick: 1203, type: 'kick' }, { tick: 1203, type: 'crash1' }, { tick: 1221, type: 'hihat' }, { tick: 1240, type: 'hihat' }, { tick: 1240, type: 'snare' }, { tick: 1259, type: 'hihat' }, { tick: 1275, type: 'hihat' }, { tick: 1275, type: 'kick' }, { tick: 1293, type: 'hihat' }, { tick: 1310, type: 'snare' }, { tick: 1310, type: 'hihat' }, { tick: 1330, type: 'hihat' }, { tick: 1348, type: 'hihat' }, { tick: 1348, type: 'kick' }, { tick: 1365, type: 'hihat' }, { tick: 1384, type: 'hihat' }, { tick: 1385, type: 'snare' }, { tick: 1403, type: 'hihat' }, { tick: 1422, type: 'hihat' }, { tick: 1422, type: 'kick' }, { tick: 1438, type: 'hihat' }, { tick: 1457, type: 'hihat' }, { tick: 1458, type: 'snare' }, { tick: 1474, type: 'hihat' }, { tick: 1492, type: 'hihat' }, { tick: 1493, type: 'kick' }, { tick: 1511, type: 'hihat' }, { tick: 1529, type: 'hihat' }, { tick: 1529, type: 'snare' }, { tick: 1548, type: 'hihat' }, { tick: 1566, type: 'hihat' }, { tick: 1566, type: 'kick' }, { tick: 1584, type: 'hihat' }, { tick: 1602, type: 'hihat' }, { tick: 1603, type: 'snare' }, { tick: 1619, type: 'hihat' }, { tick: 1637, type: 'hihat' }, { tick: 1639, type: 'kick' }, { tick: 1656, type: 'hihat' }, { tick: 1677, type: 'snare' }, { tick: 1682, type: 'tom1' }, { tick: 1704, type: 'snare' }, { tick: 1709, type: 'tom1' }, { tick: 1729, type: 'snare' }, { tick: 1735, type: 'tom1' }, { tick: 1755, type: 'snare' }, { tick: 1761, type: 'tom1' }, { tick: 1783, type: 'crash1' }, { tick: 1784, type: 'kick' }, { tick: 1801, type: 'hihat' }, { tick: 1818, type: 'snare' }, { tick: 1820, type: 'hihat' }, { tick: 1838, type: 'hihat' }, { tick: 1856, type: 'hihat' }, { tick: 1857, type: 'kick' }, { tick: 1874, type: 'hihat' }, { tick: 1890, type: 'snare' }, { tick: 1891, type: 'hihat' }, { tick: 1909, type: 'hihat' }, { tick: 1926, type: 'hihat' }, { tick: 1928, type: 'kick' }, { tick: 1945, type: 'hihat' }, { tick: 1960, type: 'hihat' }, { tick: 1960, type: 'snare' }, { tick: 1981, type: 'hihat' }, { tick: 2001, type: 'hihat' }, { tick: 2001, type: 'kick' }, { tick: 2018, type: 'hihat' }, { tick: 2037, type: 'snare' }, { tick: 2037, type: 'hihat' }, { tick: 2055, type: 'hihat' }, { tick: 2074, type: 'kick' }, { tick: 2075, type: 'hihat' }, { tick: 2091, type: 'hihat' }, { tick: 2109, type: 'snare' }, { tick: 2109, type: 'hihat' }, { tick: 2127, type: 'hihat' }, { tick: 2144, type: 'hihat' }, { tick: 2144, type: 'kick' }, { tick: 2162, type: 'hihat' }, { tick: 2181, type: 'hihat' }, { tick: 2182, type: 'snare' }, { tick: 2199, type: 'hihat' }, { tick: 2217, type: 'hihat' }, { tick: 2217, type: 'kick' }, { tick: 2235, type: 'hihat' }, { tick: 2254, type: 'snare' }, { tick: 2261, type: 'tom1' }, { tick: 2281, type: 'snare' }, { tick: 2288, type: 'tom1' }, { tick: 2310, type: 'snare' }, { tick: 2316, type: 'tom1' }, { tick: 2336, type: 'snare' }, { tick: 2342, type: 'tom1' }, { tick: 2363, type: 'crash1' }, { tick: 2364, type: 'kick' }, { tick: 2382, type: 'hihat' }, { tick: 2400, type: 'snare' }, { tick: 2401, type: 'hihat' }, { tick: 2418, type: 'hihat' }, { tick: 2436, type: 'kick' }, { tick: 2437, type: 'hihat' }, { tick: 2455, type: 'hihat' }, { tick: 2472, type: 'snare' }, { tick: 2472, type: 'hihat' }, { tick: 2492, type: 'hihat' }, { tick: 2511, type: 'crash1' }, { tick: 2511, type: 'kick' }, { tick: 2533, type: 'hihat' }, { tick: 2547, type: 'snare' }, { tick: 2548, type: 'hihat' }, { tick: 2564, type: 'hihat' }, { tick: 2582, type: 'hihat' }, { tick: 2582, type: 'kick' }, { tick: 2598, type: 'hihat' }, { tick: 2616, type: 'snare' }, { tick: 2617, type: 'hihat' }, { tick: 2636, type: 'hihat' }, { tick: 2655, type: 'crash1' }, { tick: 2655, type: 'kick' }, { tick: 2676, type: 'hihat' }, { tick: 2691, type: 'snare' }, { tick: 2691, type: 'hihat' }, { tick: 2708, type: 'hihat' }, { tick: 2726, type: 'kick' }, { tick: 2726, type: 'hihat' }, { tick: 2745, type: 'hihat' }, { tick: 2762, type: 'snare' }, { tick: 2762, type: 'hihat' }, { tick: 2778, type: 'hihat' }, { tick: 2798, type: 'kick' }, { tick: 2799, type: 'crash1' }, { tick: 2816, type: 'hihat' }, { tick: 2835, type: 'hihat' }, { tick: 2835, type: 'snare' }, { tick: 2854, type: 'hihat' }, { tick: 2871, type: 'kick' }, { tick: 2871, type: 'hihat' }, { tick: 2891, type: 'hihat' }, { tick: 2908, type: 'hihat' }, { tick: 2908, type: 'snare' }, { tick: 2924, type: 'hihat' }, { tick: 2942, type: 'crash1' }, { tick: 2943, type: 'kick' }, { tick: 2962, type: 'hihat' }, { tick: 2981, type: 'hihat' }, { tick: 2981, type: 'snare' }, { tick: 2998, type: 'hihat' }, { tick: 3017, type: 'kick' }, { tick: 3017, type: 'hihat' }, { tick: 3034, type: 'hihat' }, { tick: 3052, type: 'hihat' }, { tick: 3052, type: 'snare' }, { tick: 3071, type: 'hihat' }, { tick: 3088, type: 'crash1' }, { tick: 3089, type: 'kick' }, { tick: 3107, type: 'hihat' }, { tick: 3124, type: 'snare' }, { tick: 3125, type: 'hihat' }, { tick: 3143, type: 'hihat' }, { tick: 3161, type: 'kick' }, { tick: 3161, type: 'hihat' }, { tick: 3178, type: 'hihat' }, { tick: 3197, type: 'snare' }, { tick: 3198, type: 'hihat' }, { tick: 3216, type: 'hihat' }, { tick: 3232, type: 'crash1' }, { tick: 3233, type: 'kick' }, { tick: 3251, type: 'hihat' }, { tick: 3269, type: 'snare' }, { tick: 3269, type: 'hihat' }, { tick: 3286, type: 'hihat' }, { tick: 3305, type: 'kick' }, { tick: 3305, type: 'hihat' }, { tick: 3323, type: 'hihat' }, { tick: 3341, type: 'snare' }, { tick: 3342, type: 'hihat' }, { tick: 3360, type: 'hihat' }, { tick: 3377, type: 'kick' }, { tick: 3377, type: 'crash1' }, { tick: 3405, type: 'crash1' }, { tick: 3405, type: 'kick' }, { tick: 3432, type: 'crash1' }, { tick: 3432, type: 'kick' }, { tick: 3481, type: 'snare' }, { tick: 3524, type: 'crash1' }, { tick: 3524, type: 'kick' }, { tick: 3543, type: 'hihat' }, { tick: 3561, type: 'hihat' }, { tick: 3561, type: 'snare' }, { tick: 3580, type: 'hihat' }, { tick: 3598, type: 'hihat' }, { tick: 3599, type: 'kick' }, { tick: 3617, type: 'hihat' }, { tick: 3634, type: 'snare' }, { tick: 3634, type: 'hihat' }, { tick: 3652, type: 'hihat' }, { tick: 3671, type: 'hihat' }, { tick: 3671, type: 'kick' }, { tick: 3691, type: 'hihat' }, { tick: 3707, type: 'snare' }, { tick: 3707, type: 'hihat' }, { tick: 3725, type: 'hihat' }, { tick: 3742, type: 'hihat' }, { tick: 3743, type: 'kick' }, { tick: 3761, type: 'hihat' }, { tick: 3780, type: 'snare' }, { tick: 3780, type: 'hihat' }, { tick: 3796, type: 'hihat' }, { tick: 3817, type: 'hihat' }, { tick: 3818, type: 'kick' }, { tick: 3833, type: 'hihat' }, { tick: 3851, type: 'hihat' }, { tick: 3852, type: 'snare' }, { tick: 3869, type: 'hihat' }, { tick: 3887, type: 'hihat' }, { tick: 3887, type: 'kick' }, { tick: 3905, type: 'hihat' }, { tick: 3923, type: 'hihat' }, { tick: 3923, type: 'snare' }, { tick: 3939, type: 'hihat' }, { tick: 3957, type: 'hihat' }, { tick: 3957, type: 'kick' }, { tick: 3976, type: 'hihat' }, { tick: 3998, type: 'snare' }, { tick: 4026, type: 'snare' }, { tick: 4030, type: 'tom1' }, { tick: 4052, type: 'snare' }, { tick: 4058, type: 'tom1' }, { tick: 4080, type: 'snare' }, { tick: 4086, type: 'tom1' }, { tick: 4105, type: 'kick' }, { tick: 4106, type: 'crash1' }, { tick: 4125, type: 'hihat' }, { tick: 4143, type: 'hihat' }, { tick: 4143, type: 'snare' }, { tick: 4161, type: 'hihat' }, { tick: 4178, type: 'kick' }, { tick: 4180, type: 'hihat' }, { tick: 4197, type: 'hihat' }, { tick: 4215, type: 'snare' }, { tick: 4215, type: 'hihat' }, { tick: 4233, type: 'hihat' }, { tick: 4250, type: 'kick' }, { tick: 4251, type: 'hihat' }, { tick: 4269, type: 'hihat' }, { tick: 4287, type: 'snare' }, { tick: 4288, type: 'hihat' }, { tick: 4306, type: 'hihat' }, { tick: 4324, type: 'hihat' }, { tick: 4325, type: 'kick' }, { tick: 4343, type: 'hihat' }, { tick: 4360, type: 'hihat' }, { tick: 4361, type: 'snare' }, { tick: 4380, type: 'hihat' }, { tick: 4397, type: 'kick' }, { tick: 4398, type: 'hihat' }, { tick: 4416, type: 'hihat' }, { tick: 4433, type: 'hihat' }, { tick: 4434, type: 'snare' }, { tick: 4451, type: 'hihat' }, { tick: 4470, type: 'hihat' }, { tick: 4471, type: 'kick' }, { tick: 4488, type: 'hihat' }, { tick: 4505, type: 'hihat' }, { tick: 4505, type: 'snare' }, { tick: 4524, type: 'hihat' }, { tick: 4541, type: 'hihat' }, { tick: 4542, type: 'kick' }, { tick: 4558, type: 'hihat' }, { tick: 4572, type: 'snare' }, { tick: 4584, type: 'tom1' }, { tick: 4608, type: 'snare' }, { tick: 4614, type: 'tom1' }, { tick: 4638, type: 'snare' }, { tick: 4642, type: 'tom1' }, { tick: 4664, type: 'snare' }, { tick: 4669, type: 'tom1' }, { tick: 4688, type: 'crash1' }, { tick: 4688, type: 'kick' }, { tick: 4705, type: 'hihat' }, { tick: 4723, type: 'snare' }, { tick: 4724, type: 'hihat' }, { tick: 4742, type: 'hihat' }, { tick: 4760, type: 'kick' }, { tick: 4761, type: 'hihat' }, { tick: 4779, type: 'hihat' }, { tick: 4796, type: 'snare' }, { tick: 4796, type: 'hihat' }, { tick: 4815, type: 'hihat' }, { tick: 4833, type: 'crash1' }, { tick: 4833, type: 'kick' }, { tick: 4850, type: 'hihat' }, { tick: 4867, type: 'snare' }, { tick: 4869, type: 'hihat' }, { tick: 4887, type: 'hihat' }, { tick: 4904, type: 'kick' }, { tick: 4905, type: 'hihat' }, { tick: 4923, type: 'hihat' }, { tick: 4940, type: 'snare' }, { tick: 4940, type: 'hihat' }, { tick: 4958, type: 'hihat' }, { tick: 4976, type: 'crash1' }, { tick: 4976, type: 'kick' }, { tick: 4996, type: 'hihat' }, { tick: 5014, type: 'snare' }, { tick: 5014, type: 'hihat' }, { tick: 5031, type: 'hihat' }, { tick: 5049, type: 'hihat' }, { tick: 5050, type: 'kick' }, { tick: 5066, type: 'hihat' }, { tick: 5084, type: 'hihat' }, { tick: 5085, type: 'snare' }, { tick: 5104, type: 'hihat' }, { tick: 5122, type: 'kick' }, { tick: 5122, type: 'crash1' }, { tick: 5144, type: 'hihat' }, { tick: 5159, type: 'snare' }, { tick: 5160, type: 'hihat' }, { tick: 5177, type: 'hihat' }, { tick: 5196, type: 'kick' }, { tick: 5196, type: 'hihat' }, { tick: 5212, type: 'hihat' }, { tick: 5231, type: 'hihat' }, { tick: 5231, type: 'snare' }, { tick: 5249, type: 'hihat' }, { tick: 5267, type: 'crash1' }, { tick: 5267, type: 'kick' }, { tick: 5287, type: 'hihat' }, { tick: 5304, type: 'snare' }, { tick: 5304, type: 'hihat' }, { tick: 5322, type: 'hihat' }, { tick: 5340, type: 'hihat' }, { tick: 5340, type: 'kick' }, { tick: 5358, type: 'hihat' }, { tick: 5374, type: 'snare' }, { tick: 5375, type: 'hihat' }, { tick: 5395, type: 'hihat' }, { tick: 5413, type: 'crash1' }, { tick: 5413, type: 'kick' }, { tick: 5434, type: 'hihat' }, { tick: 5449, type: 'snare' }, { tick: 5451, type: 'hihat' }, { tick: 5467, type: 'hihat' }, { tick: 5485, type: 'hihat' }, { tick: 5486, type: 'kick' }, { tick: 5503, type: 'hihat' }, { tick: 5520, type: 'hihat' }, { tick: 5521, type: 'snare' }, { tick: 5540, type: 'hihat' }, { tick: 5556, type: 'crash1' }, { tick: 5558, type: 'kick' }, { tick: 5575, type: 'hihat' }, { tick: 5591, type: 'snare' }, { tick: 5592, type: 'hihat' }, { tick: 5611, type: 'hihat' }, { tick: 5629, type: 'hihat' }, { tick: 5629, type: 'kick' }, { tick: 5647, type: 'hihat' }, { tick: 5666, type: 'hihat' }, { tick: 5666, type: 'snare' }, { tick: 5682, type: 'hihat' }, { tick: 5702, type: 'crash1' }, { tick: 5703, type: 'kick' }, { tick: 5728, type: 'crash1' }, { tick: 5729, type: 'kick' }, { tick: 5755, type: 'crash1' }, { tick: 5755, type: 'kick' }, { tick: 5801, type: 'snare' }, { tick: 5849, type: 'kick' }, { tick: 5849, type: 'crash1' }] }, { name: "Beginner: SevenStripe-Armey", music: "SevenStripeArmey", notes: [{ tick: 50, type: 'kick' }, { tick: 74, type: 'tom1' }, { tick: 74, type: 'kick' }, { tick: 105, type: 'kick' }, { tick: 132, type: 'tom1' }, { tick: 132, type: 'kick' }, { tick: 167, type: 'kick' }, { tick: 197, type: 'tom1' }, { tick: 197, type: 'kick' }, { tick: 227, type: 'kick' }, { tick: 258, type: 'tom1' }, { tick: 258, type: 'kick' }, { tick: 289, type: 'kick' }, { tick: 320, type: 'kick' }, { tick: 320, type: 'tom1' }, { tick: 351, type: 'kick' }, { tick: 381, type: 'kick' }, { tick: 381, type: 'tom1' }, { tick: 412, type: 'kick' }, { tick: 439, type: 'tom1' }, { tick: 439, type: 'kick' }, { tick: 470, type: 'kick' }, { tick: 500, type: 'tom1' }, { tick: 500, type: 'kick' }, { tick: 531, type: 'kick' }, { tick: 558, type: 'tom1' }, { tick: 558, type: 'kick' }, { tick: 594, type: 'kick' }, { tick: 624, type: 'kick' }, { tick: 624, type: 'tom1' }, { tick: 654, type: 'kick' }, { tick: 684, type: 'tom1' }, { tick: 684, type: 'kick' }, { tick: 715, type: 'kick' }, { tick: 742, type: 'tom1' }, { tick: 742, type: 'kick' }, { tick: 773, type: 'kick' }, { tick: 803, type: 'kick' }, { tick: 803, type: 'tom1' }, { tick: 834, type: 'kick' }, { tick: 865, type: 'tom1' }, { tick: 865, type: 'kick' }, { tick: 892, type: 'kick' }, { tick: 923, type: 'tom1' }, { tick: 923, type: 'kick' }, { tick: 958, type: 'kick' }, { tick: 988, type: 'kick' }, { tick: 988, type: 'tom1' }, { tick: 1018, type: 'kick' }, { tick: 1045, type: 'kick' }, { tick: 1045, type: 'tom1' }, { tick: 1075, type: 'kick' }, { tick: 1102, type: 'tom1' }, { tick: 1106, type: 'kick' }, { tick: 1137, type: 'kick' }, { tick: 1167, type: 'kick' }, { tick: 1167, type: 'tom1' }, { tick: 1198, type: 'kick' }, { tick: 1228, type: 'tom1' }, { tick: 1228, type: 'kick' }, { tick: 1259, type: 'kick' }, { tick: 1289, type: 'tom1' }, { tick: 1289, type: 'kick' }, { tick: 1320, type: 'kick' }, { tick: 1350, type: 'tom1' }, { tick: 1350, type: 'kick' }, { tick: 1381, type: 'kick' }, { tick: 1408, type: 'tom1' }, { tick: 1408, type: 'kick' }, { tick: 1439, type: 'kick' }, { tick: 1469, type: 'tom1' }, { tick: 1469, type: 'kick' }, { tick: 1500, type: 'kick' }, { tick: 1531, type: 'snare' }, { tick: 1531, type: 'kick' }, { tick: 1562, type: 'kick' }, { tick: 1593, type: 'snare' }, { tick: 1593, type: 'kick' }, { tick: 1624, type: 'kick' }, { tick: 1654, type: 'snare' }, { tick: 1654, type: 'kick' }, { tick: 1684, type: 'kick' }, { tick: 1714, type: 'snare' }, { tick: 1714, type: 'kick' }, { tick: 1745, type: 'kick' }, { tick: 1775, type: 'snare' }, { tick: 1775, type: 'kick' }, { tick: 1806, type: 'kick' }, { tick: 1836, type: 'snare' }, { tick: 1836, type: 'kick' }, { tick: 1867, type: 'kick' }, { tick: 1893, type: 'snare' }, { tick: 1893, type: 'kick' }, { tick: 1924, type: 'kick' }, { tick: 1955, type: 'snare' }, { tick: 1955, type: 'kick' }, { tick: 1989, type: 'kick' }, { tick: 2016, type: 'snare' }, { tick: 2016, type: 'kick' }, { tick: 2051, type: 'kick' }, { tick: 2077, type: 'snare' }, { tick: 2077, type: 'kick' }, { tick: 2108, type: 'kick' }, { tick: 2138, type: 'snare' }, { tick: 2138, type: 'kick' }, { tick: 2169, type: 'kick' }, { tick: 2196, type: 'snare' }, { tick: 2196, type: 'kick' }, { tick: 2231, type: 'kick' }, { tick: 2261, type: 'snare' }, { tick: 2261, type: 'kick' }, { tick: 2292, type: 'kick' }, { tick: 2319, type: 'kick' }, { tick: 2319, type: 'snare' }, { tick: 2350, type: 'kick' }, { tick: 2380, type: 'snare' }, { tick: 2380, type: 'kick' }, { tick: 2411, type: 'kick' }, { tick: 2441, type: 'snare' }, { tick: 2441, type: 'kick' }, { tick: 2471, type: 'crash1' }, { tick: 2471, type: 'kick' }, { tick: 2496, type: 'tom1' }, { tick: 2505, type: 'tom1' }, { tick: 2525, type: 'tom1' }, { tick: 2540, type: 'tom1' }, { tick: 2557, type: 'tom1' }, { tick: 2572, type: 'tom1' }, { tick: 2591, type: 'kick' }, { tick: 2591, type: 'crash1' }, { tick: 2603, type: 'tom1' }, { tick: 2621, type: 'tom1' }, { tick: 2632, type: 'tom1' }, { tick: 2646, type: 'tom1' }, { tick: 2660, type: 'tom1' }, { tick: 2673, type: 'tom1' }, { tick: 2686, type: 'tom1' }, { tick: 2701, type: 'tom1' }, { tick: 2716, type: 'crash1' }, { tick: 2716, type: 'kick' }, { tick: 2750, type: 'snare' }, { tick: 2780, type: 'crash1' }, { tick: 2780, type: 'kick' }, { tick: 2803, type: 'snare' }, { tick: 2803, type: 'crash1' }, { tick: 2834, type: 'crash1' }, { tick: 2834, type: 'kick' }, { tick: 2864, type: 'snare' }, { tick: 2864, type: 'crash1' }, { tick: 2895, type: 'crash1' }, { tick: 2895, type: 'kick' }, { tick: 2926, type: 'snare' }, { tick: 2926, type: 'crash1' }, { tick: 2956, type: 'crash1' }, { tick: 2956, type: 'kick' }, { tick: 2987, type: 'crash1' }, { tick: 2987, type: 'snare' }, { tick: 3017, type: 'crash1' }, { tick: 3017, type: 'kick' }, { tick: 3040, type: 'crash1' }, { tick: 3040, type: 'kick' }, { tick: 3063, type: 'snare' }, { tick: 3063, type: 'crash1' }, { tick: 3082, type: 'crash1' }, { tick: 3082, type: 'kick' }, { tick: 3109, type: 'snare' }, { tick: 3109, type: 'crash1' }, { tick: 3139, type: 'kick' }, { tick: 3139, type: 'crash1' }, { tick: 3170, type: 'snare' }, { tick: 3201, type: 'crash1' }, { tick: 3201, type: 'kick' }, { tick: 3231, type: 'crash1' }, { tick: 3231, type: 'snare' }, { tick: 3261, type: 'crash1' }, { tick: 3261, type: 'kick' }, { tick: 3286, type: 'crash1' }, { tick: 3286, type: 'snare' }, { tick: 3317, type: 'kick' }, { tick: 3317, type: 'crash1' }, { tick: 3348, type: 'crash1' }, { tick: 3348, type: 'snare' }, { tick: 3382, type: 'crash1' }, { tick: 3382, type: 'kick' }, { tick: 3409, type: 'snare' }, { tick: 3409, type: 'crash1' }, { tick: 3443, type: 'crash1' }, { tick: 3443, type: 'kick' }, { tick: 3474, type: 'crash1' }, { tick: 3474, type: 'snare' }, { tick: 3504, type: 'crash1' }, { tick: 3504, type: 'kick' }, { tick: 3526, type: 'crash1' }, { tick: 3526, type: 'kick' }, { tick: 3550, type: 'crash1' }, { tick: 3550, type: 'snare' }, { tick: 3569, type: 'crash1' }, { tick: 3569, type: 'kick' }, { tick: 3596, type: 'snare' }, { tick: 3596, type: 'crash1' }, { tick: 3626, type: 'crash1' }, { tick: 3626, type: 'kick' }, { tick: 3656, type: 'snare' }, { tick: 3656, type: 'crash1' }, { tick: 3686, type: 'crash1' }, { tick: 3686, type: 'kick' }, { tick: 3700, type: 'tom1' }, { tick: 3717, type: 'tom1' }, { tick: 3730, type: 'tom1' }, { tick: 3747, type: 'tom1' }, { tick: 3761, type: 'tom1' }, { tick: 3775, type: 'tom1' }, { tick: 3792, type: 'tom1' }, { tick: 3808, type: 'crash1' }, { tick: 3808, type: 'kick' }, { tick: 3821, type: 'tom1' }, { tick: 3833, type: 'tom1' }, { tick: 3848, type: 'tom1' }, { tick: 3865, type: 'tom1' }, { tick: 3881, type: 'tom1' }, { tick: 3896, type: 'tom1' }, { tick: 3910, type: 'tom1' }, { tick: 3926, type: 'kick' }, { tick: 3926, type: 'crash1' }, { tick: 4412, type: 'kick' }, { tick: 4439, type: 'kick' }, { tick: 4439, type: 'tom1' }, { tick: 4473, type: 'kick' }, { tick: 4503, type: 'kick' }, { tick: 4503, type: 'tom1' }, { tick: 4534, type: 'kick' }, { tick: 4560, type: 'tom1' }, { tick: 4560, type: 'kick' }, { tick: 4597, type: 'kick' }, { tick: 4623, type: 'kick' }, { tick: 4623, type: 'tom1' }, { tick: 4654, type: 'kick' }, { tick: 4685, type: 'kick' }, { tick: 4685, type: 'tom1' }, { tick: 4719, type: 'kick' }, { tick: 4745, type: 'tom1' }, { tick: 4745, type: 'kick' }, { tick: 4781, type: 'kick' }, { tick: 4806, type: 'tom1' }, { tick: 4806, type: 'kick' }, { tick: 4842, type: 'kick' }, { tick: 4866, type: 'kick' }, { tick: 4866, type: 'tom1' }, { tick: 4901, type: 'kick' }, { tick: 4928, type: 'kick' }, { tick: 4928, type: 'tom1' }, { tick: 4959, type: 'kick' }, { tick: 4989, type: 'kick' }, { tick: 4989, type: 'tom1' }, { tick: 5019, type: 'kick' }, { tick: 5049, type: 'kick' }, { tick: 5049, type: 'tom1' }, { tick: 5080, type: 'kick' }, { tick: 5110, type: 'tom1' }, { tick: 5110, type: 'kick' }, { tick: 5141, type: 'kick' }, { tick: 5171, type: 'kick' }, { tick: 5171, type: 'tom1' }, { tick: 5201, type: 'kick' }, { tick: 5231, type: 'kick' }, { tick: 5231, type: 'tom1' }, { tick: 5262, type: 'kick' }, { tick: 5292, type: 'kick' }, { tick: 5292, type: 'tom1' }, { tick: 5326, type: 'kick' }, { tick: 5352, type: 'tom1' }, { tick: 5352, type: 'kick' }, { tick: 5383, type: 'kick' }, { tick: 5409, type: 'tom1' }, { tick: 5409, type: 'kick' }, { tick: 5445, type: 'kick' }, { tick: 5472, type: 'tom1' }, { tick: 5472, type: 'kick' }, { tick: 5503, type: 'kick' }, { tick: 5533, type: 'kick' }, { tick: 5533, type: 'tom1' }, { tick: 5564, type: 'kick' }, { tick: 5595, type: 'kick' }, { tick: 5595, type: 'tom1' }, { tick: 5626, type: 'kick' }, { tick: 5653, type: 'kick' }, { tick: 5653, type: 'tom1' }, { tick: 5684, type: 'kick' }, { tick: 5714, type: 'tom1' }, { tick: 5714, type: 'kick' }, { tick: 5745, type: 'kick' }, { tick: 5776, type: 'tom1' }, { tick: 5776, type: 'kick' }, { tick: 5810, type: 'kick' }, { tick: 5840, type: 'tom1' }, { tick: 5840, type: 'kick' }, { tick: 5870, type: 'kick' }, { tick: 5900, type: 'kick' }, { tick: 5900, type: 'snare' }, { tick: 5931, type: 'kick' }, { tick: 5961, type: 'kick' }, { tick: 5961, type: 'snare' }, { tick: 5991, type: 'kick' }, { tick: 6021, type: 'snare' }, { tick: 6021, type: 'kick' }, { tick: 6052, type: 'kick' }, { tick: 6082, type: 'snare' }, { tick: 6082, type: 'kick' }, { tick: 6113, type: 'kick' }, { tick: 6143, type: 'snare' }, { tick: 6143, type: 'kick' }, { tick: 6173, type: 'kick' }, { tick: 6199, type: 'snare' }, { tick: 6199, type: 'kick' }, { tick: 6230, type: 'kick' }, { tick: 6260, type: 'snare' }, { tick: 6260, type: 'kick' }, { tick: 6291, type: 'kick' }, { tick: 6321, type: 'snare' }, { tick: 6321, type: 'kick' }, { tick: 6351, type: 'kick' }, { tick: 6378, type: 'snare' }, { tick: 6378, type: 'kick' }, { tick: 6413, type: 'kick' }, { tick: 6439, type: 'snare' }, { tick: 6439, type: 'kick' }, { tick: 6470, type: 'kick' }, { tick: 6497, type: 'snare' }, { tick: 6497, type: 'kick' }, { tick: 6532, type: 'kick' }, { tick: 6562, type: 'snare' }, { tick: 6562, type: 'kick' }, { tick: 6593, type: 'kick' }, { tick: 6623, type: 'snare' }, { tick: 6623, type: 'kick' }, { tick: 6658, type: 'kick' }, { tick: 6684, type: 'kick' }, { tick: 6684, type: 'snare' }, { tick: 6715, type: 'kick' }, { tick: 6745, type: 'snare' }, { tick: 6745, type: 'kick' }, { tick: 6779, type: 'kick' }, { tick: 6806, type: 'snare' }, { tick: 6806, type: 'kick' }, { tick: 6837, type: 'kick' }, { tick: 6837, type: 'crash1' }, { tick: 6853, type: 'tom1' }, { tick: 6868, type: 'tom1' }, { tick: 6881, type: 'tom1' }, { tick: 6899, type: 'tom1' }, { tick: 6914, type: 'tom1' }, { tick: 6928, type: 'tom1' }, { tick: 6944, type: 'tom1' }, { tick: 6959, type: 'kick' }, { tick: 6959, type: 'crash1' }, { tick: 6974, type: 'tom1' }, { tick: 6988, type: 'tom1' }, { tick: 7002, type: 'tom1' }, { tick: 7017, type: 'tom1' }, { tick: 7032, type: 'tom1' }, { tick: 7048, type: 'tom1' }, { tick: 7060, type: 'tom1' }, { tick: 7082, type: 'kick' }, { tick: 7082, type: 'crash1' }, { tick: 7106, type: 'snare' }, { tick: 7106, type: 'crash1' }, { tick: 7137, type: 'kick' }, { tick: 7137, type: 'crash1' }, { tick: 7168, type: 'crash1' }, { tick: 7168, type: 'snare' }, { tick: 7199, type: 'kick' }, { tick: 7199, type: 'crash1' }, { tick: 7229, type: 'snare' }, { tick: 7229, type: 'crash1' }, { tick: 7260, type: 'crash1' }, { tick: 7260, type: 'kick' }, { tick: 7291, type: 'crash1' }, { tick: 7291, type: 'snare' }, { tick: 7322, type: 'crash1' }, { tick: 7322, type: 'kick' }, { tick: 7353, type: 'snare' }, { tick: 7353, type: 'crash1' }, { tick: 7384, type: 'kick' }, { tick: 7384, type: 'crash1' }, { tick: 7406, type: 'crash1' }, { tick: 7406, type: 'kick' }, { tick: 7429, type: 'snare' }, { tick: 7429, type: 'crash1' }, { tick: 7451, type: 'crash1' }, { tick: 7451, type: 'kick' }, { tick: 7475, type: 'crash1' }, { tick: 7475, type: 'snare' }, { tick: 7505, type: 'crash1' }, { tick: 7505, type: 'kick' }, { tick: 7535, type: 'snare' }, { tick: 7535, type: 'crash1' }, { tick: 7565, type: 'kick' }, { tick: 7565, type: 'crash1' }, { tick: 7595, type: 'snare' }, { tick: 7595, type: 'crash1' }, { tick: 7626, type: 'crash1' }, { tick: 7626, type: 'kick' }, { tick: 7656, type: 'crash1' }, { tick: 7656, type: 'snare' }, { tick: 7686, type: 'crash1' }, { tick: 7686, type: 'kick' }, { tick: 7716, type: 'crash1' }, { tick: 7716, type: 'snare' }, { tick: 7743, type: 'crash1' }, { tick: 7743, type: 'kick' }, { tick: 7774, type: 'snare' }, { tick: 7774, type: 'crash1' }, { tick: 7805, type: 'crash1' }, { tick: 7805, type: 'kick' }, { tick: 7836, type: 'crash1' }, { tick: 7836, type: 'snare' }, { tick: 7867, type: 'kick' }, { tick: 7867, type: 'crash1' }, { tick: 7889, type: 'crash1' }, { tick: 7889, type: 'kick' }, { tick: 7915, type: 'crash1' }, { tick: 7915, type: 'snare' }, { tick: 7933, type: 'crash1' }, { tick: 7933, type: 'kick' }, { tick: 7960, type: 'crash1' }, { tick: 7960, type: 'snare' }, { tick: 7990, type: 'kick' }, { tick: 7990, type: 'crash1' }, { tick: 8020, type: 'crash1' }, { tick: 8020, type: 'snare' }, { tick: 8050, type: 'crash1' }, { tick: 8050, type: 'kick' }, { tick: 8080, type: 'crash1' }, { tick: 8080, type: 'snare' }, { tick: 8110, type: 'crash1' }, { tick: 8110, type: 'kick' }, { tick: 8140, type: 'crash1' }, { tick: 8140, type: 'snare' }, { tick: 8170, type: 'crash1' }, { tick: 8170, type: 'kick' }, { tick: 8200, type: 'snare' }, { tick: 8200, type: 'crash1' }, { tick: 8231, type: 'crash1' }, { tick: 8231, type: 'kick' }, { tick: 8262, type: 'snare' }, { tick: 8262, type: 'crash1' }, { tick: 8292, type: 'kick' }, { tick: 8292, type: 'crash1' }, { tick: 8323, type: 'crash1' }, { tick: 8323, type: 'snare' }, { tick: 8353, type: 'crash1' }, { tick: 8353, type: 'kick' }, { tick: 8379, type: 'crash1' }, { tick: 8379, type: 'kick' }, { tick: 8404, type: 'snare' }, { tick: 8404, type: 'crash1' }, { tick: 8422, type: 'crash1' }, { tick: 8422, type: 'kick' }, { tick: 8445, type: 'snare' }, { tick: 8445, type: 'crash1' }, { tick: 8475, type: 'kick' }, { tick: 8475, type: 'crash1' }, { tick: 8505, type: 'snare' }, { tick: 8505, type: 'crash1' }, { tick: 8535, type: 'crash1' }, { tick: 8535, type: 'kick' }, { tick: 8566, type: 'crash1' }, { tick: 8566, type: 'snare' }, { tick: 8597, type: 'crash1' }, { tick: 8597, type: 'kick' }, { tick: 8624, type: 'crash1' }, { tick: 8624, type: 'snare' }, { tick: 8658, type: 'crash1' }, { tick: 8658, type: 'kick' }, { tick: 8685, type: 'snare' }, { tick: 8685, type: 'crash1' }, { tick: 8716, type: 'crash1' }, { tick: 8719, type: 'kick' }, { tick: 8749, type: 'crash1' }, { tick: 8749, type: 'snare' }, { tick: 8779, type: 'crash1' }, { tick: 8779, type: 'kick' }, { tick: 8809, type: 'crash1' }, { tick: 8809, type: 'snare' }, { tick: 8840, type: 'kick' }, { tick: 8840, type: 'crash1' }, { tick: 8863, type: 'crash1' }, { tick: 8863, type: 'kick' }, { tick: 8885, type: 'snare' }, { tick: 8889, type: 'crash1' }, { tick: 8906, type: 'crash1' }, { tick: 8906, type: 'kick' }, { tick: 8932, type: 'crash1' }, { tick: 8932, type: 'snare' }, { tick: 8962, type: 'crash1' }, { tick: 8962, type: 'kick' }, { tick: 8992, type: 'crash1' }, { tick: 8992, type: 'snare' }, { tick: 9022, type: 'kick' }, { tick: 9022, type: 'crash1' }, { tick: 9037, type: 'tom1' }, { tick: 9051, type: 'tom1' }, { tick: 9064, type: 'tom1' }, { tick: 9080, type: 'tom1' }, { tick: 9093, type: 'tom1' }, { tick: 9110, type: 'tom1' }, { tick: 9124, type: 'tom1' }, { tick: 9141, type: 'kick' }, { tick: 9141, type: 'crash1' }, { tick: 9156, type: 'tom1' }, { tick: 9169, type: 'tom1' }, { tick: 9184, type: 'tom1' }, { tick: 9199, type: 'tom1' }, { tick: 9212, type: 'tom1' }, { tick: 9224, type: 'tom1' }, { tick: 9238, type: 'tom1' }, { tick: 9262, type: 'kick' }, { tick: 9262, type: 'crash1' }] }]; // Current level index and songNotes reference var currentLevelIndex = 0; var songNotes = LEVELS[0].notes; var currentMusic = LEVELS[0].music; // Level progression system var unlockedLevels = storage.unlockedLevels || 1; // Number of unlocked levels, default 1 (only beginner) var levelOrder = [3, 2, 1, 0]; // Beginner(3) -> Easy(2) -> Medium(1) -> Hard(0) // Function to check if a level is unlocked function isLevelUnlocked(levelIndex) { // If developer mode is on, unlock all levels if (isDeveloperMode) { return true; } var orderIndex = levelOrder.indexOf(levelIndex); return orderIndex >= 0 && orderIndex < unlockedLevels; } // Function to unlock next level function unlockNextLevel() { if (unlockedLevels < levelOrder.length) { unlockedLevels++; storage.unlockedLevels = unlockedLevels; updateLevelButtonStates(); } } // --- Intro Screen UI --- var introContainer = new Container(); introContainer.x = 0; introContainer.y = 0; introContainer.visible = true; LK.gui.center.addChild(introContainer); // Background var introBg = LK.getAsset('introBg', { anchorX: 0, anchorY: 0, x: 0, y: 0, width: LK.gui.center.width, height: LK.gui.center.height }); introContainer.addChild(introBg); // Center column layout for intro var introColumn = new Container(); introColumn.x = LK.gui.center.width / 2; introColumn.y = LK.gui.center.height / 2; introContainer.addChild(introColumn); // Logos - create all three and set up alternating var introLogo1 = LK.getAsset('introLogo', { anchorX: 0.5, anchorY: 0.5, x: 0, y: 0, scaleX: 0.6, scaleY: 0.6 }); var introLogo2 = LK.getAsset('introLogo2', { anchorX: 0.5, anchorY: 0.5, x: 0, y: 0, scaleX: 0.6, scaleY: 0.6 }); var introLogo3 = LK.getAsset('introLogo3', { anchorX: 0.5, anchorY: 0.5, x: 0, y: 0, scaleX: 0.6, scaleY: 0.6 }); // Start with only first logo visible introLogo2.visible = false; introLogo3.visible = false; introColumn.addChild(introLogo1); introColumn.addChild(introLogo2); introColumn.addChild(introLogo3); // Set up alternating timer with cycling through all three logos var currentLogoIndex = 0; var logoSwitchTimer = LK.setInterval(function () { if (introContainer.visible) { // Hide all logos introLogo1.visible = false; introLogo2.visible = false; introLogo3.visible = false; // Show next logo in sequence currentLogoIndex = (currentLogoIndex + 1) % 3; if (currentLogoIndex === 0) { introLogo1.visible = true; } else if (currentLogoIndex === 1) { introLogo2.visible = true; } else { introLogo3.visible = true; } } }, 350); // Switch every 350ms // Play Button (moved to top) var playBtn = new Text2("Play", { size: 120, fill: "#fff", font: "Impact" }); playBtn.anchor.set(0.5, 0.5); playBtn.x = 0; playBtn.y = -LK.gui.center.height / 2 + 150 - 500; // Title Image Asset var introTitle = LK.getAsset('gameTitle', { anchorX: 0.5, anchorY: 0.5, x: 0, y: introLogo1.y + introLogo1.height / 2 + 100 - 200, width: 1400, height: 300 }); introColumn.addChild(introTitle); playBtn.interactive = true; playBtn.buttonMode = true; playBtn.bg = LK.getAsset('playButton', { anchorX: 0.5, anchorY: 0.5, x: playBtn.x, y: playBtn.y, width: 600, height: 180 }); introColumn.addChild(playBtn.bg); introColumn.addChild(playBtn); playBtn.down = function () { introContainer.visible = false; levelSelectContainer.visible = true; // Stop tip cycling when leaving intro if (tipDisplayTimer) { LK.clearInterval(tipDisplayTimer); } }; // Developer mode toggle button (250 pixels above play button, smaller size) var isDeveloperMode = false; // Always start as off var devModeBtn = new Text2("Developer mode: off", { size: 30, fill: 0xFF0000, // Red for off font: "Impact" }); devModeBtn.anchor.set(0.5, 0.5); devModeBtn.x = 0; devModeBtn.y = playBtn.y - 250; devModeBtn.interactive = true; devModeBtn.buttonMode = true; devModeBtn.down = function () { isDeveloperMode = !isDeveloperMode; storage.developerMode = isDeveloperMode; devModeBtn.setText("Developer mode: " + (isDeveloperMode ? "on" : "off")); devModeBtn.fill = isDeveloperMode ? "#00FF00" : "#FF0000"; // Update recording UI visibility based on developer mode if (recordTxt) { recordTxt.visible = isDeveloperMode && scoreTxt.visible; } // Update level button states when developer mode changes updateLevelButtonStates(); }; introColumn.addChild(devModeBtn); // --- Level Selection UI --- var levelSelectContainer = new Container(); levelSelectContainer.x = 0; levelSelectContainer.y = 0; levelSelectContainer.visible = false; LK.gui.center.addChild(levelSelectContainer); // Place the column at 30px from left, and vertically at 30px from the top (move further up by 20cm ≈ 720px) var levelSelectColumn = new Container(); // Move further up: 20cm ≈ 720px, so y = 30 - 720 = -690 levelSelectColumn.x = 30; levelSelectColumn.y = -690; levelSelectContainer.addChild(levelSelectColumn); // Title var levelSelectTitle = new Text2("Choose Level", { size: 120, fill: "#fff" }); levelSelectTitle.anchor.set(0.5, 0.5); levelSelectTitle.x = 0; levelSelectTitle.y = 0; levelSelectColumn.addChild(levelSelectTitle); // Back button to return to intro screen var backBtnBg = LK.getAsset('levelButton', { anchorX: 0.5, anchorY: 0.5, x: 0, y: levelSelectTitle.y - 150, width: 400, height: 80 }); var backBtn = new Text2("← Back", { size: 60, fill: "#fff", font: "Impact" }); backBtn.anchor.set(0.5, 0.5); backBtn.x = 0; backBtn.y = levelSelectTitle.y - 150; backBtn.interactive = true; backBtn.buttonMode = true; backBtn.down = function () { levelSelectContainer.visible = false; introContainer.visible = true; // Restart tip cycling when returning to intro screen startTipCycling(); }; levelSelectColumn.addChild(backBtnBg); levelSelectColumn.addChild(backBtn); // Level buttons, stacked vertically, centered below the title var levelButtons = []; var levelButtonBackgrounds = []; var levelBtnSpacing = 220; var firstBtnY = levelSelectTitle.y + 180; function updateLevelButtonStates() { for (var i = 0; i < LEVELS.length; i++) { var isUnlocked = isLevelUnlocked(i); var btn = levelButtons[i]; var btnBg = levelButtonBackgrounds[i]; if (isUnlocked) { btn.alpha = 1.0; btn.fill = "#fff"; btnBg.alpha = 1.0; btn.interactive = true; btn.buttonMode = true; } else { btn.alpha = 0.4; btn.fill = "#888"; btnBg.alpha = 0.4; btn.interactive = false; btn.buttonMode = false; } } } for (var i = 0; i < LEVELS.length; i++) { (function (idx) { // Button background for touch area var btnBg = LK.getAsset('levelButton', { anchorX: 0.5, anchorY: 0.5, x: 0, y: firstBtnY + idx * levelBtnSpacing, width: 1000, height: 200 }); levelButtonBackgrounds.push(btnBg); // Button text var btnText = LEVELS[idx].name; var btn = new Text2(btnText, { size: 100, fill: "#fff", font: "Impact" }); btn.anchor.set(0.5, 0.5); btn.x = 0; btn.y = firstBtnY + idx * levelBtnSpacing; btn.down = function () { if (isLevelUnlocked(idx)) { selectLevel(idx); } }; levelSelectColumn.addChild(btnBg); levelSelectColumn.addChild(btn); levelButtons.push(btn); })(i); } // Initialize button states updateLevelButtonStates(); // --- Recording UI and Logic --- var recordTxt = new Text2('KAYIT: KAPALI', { size: 70, fill: 0xFF6666 }); recordTxt.anchor.set(0.5, 0); LK.gui.top.addChild(recordTxt); recordTxt.x = LK.gui.top.width / 2; recordTxt.y = 220; // Hide gameplay UI until level is selected scoreTxt.visible = false; comboTxt.visible = false; recordTxt.visible = false; // Level selection handler function selectLevel(idx) { if (!isLevelUnlocked(idx)) { return; // Don't allow selection of locked levels } currentLevelIndex = idx; songNotes = LEVELS[idx].notes; currentMusic = LEVELS[idx].music; levelSelectContainer.visible = false; scoreTxt.visible = true; comboTxt.visible = true; recordTxt.visible = isDeveloperMode; if (typeof TEST_MODE !== "undefined" && TEST_MODE) { // Update songTotalTicks for timeline songTotalTicks = songNotes.length > 0 ? songNotes[songNotes.length - 1].tick : 1; } startGame(); // Start the game after selecting a level } var isRecording = false; var recordedNotes = []; var recordStartTick = 0; // Toggle recording on tap of recordTxt recordTxt.interactive = true; recordTxt.buttonMode = true; recordTxt.down = function () { if (!isDeveloperMode) { return; // Don't allow recording if developer mode is off } if (!isRecording) { // Start recording isRecording = true; recordedNotes = []; recordStartTick = LK.ticks; recordTxt.setText('KAYIT: AÇIK'); comboTxt.setText('KAYIT MODU'); } else { // Stop recording and save as new level isRecording = false; recordTxt.setText('KAYIT: KAPALI'); comboTxt.setText(''); // Convert recordedNotes to songNotes format if (recordedNotes.length > 0) { // Normalize ticks to start at 0 var minTick = recordedNotes.length > 0 ? recordedNotes[0].tick : 0; for (var i = 0; i < recordedNotes.length; i++) { recordedNotes[i].tick -= minTick; } songNotes = []; for (var i = 0; i < recordedNotes.length; i++) { songNotes.push({ tick: recordedNotes[i].tick, type: recordedNotes[i].type }); } // Print recorded notes as code in the console var codeStr = "var songNotes = [\n"; for (var i = 0; i < recordedNotes.length; i++) { codeStr += " { tick: " + recordedNotes[i].tick + ", type: '" + recordedNotes[i].type + "' },\n"; } codeStr += "];"; console.log(codeStr); // Restart game with new level startGame(); } } }; LK.gui.top.addChild(recordTxt); // --- Record pad hits if in recording mode --- function recordPadHit(padType) { if (isRecording && isDeveloperMode) { var tick = LK.ticks - recordStartTick; recordedNotes.push({ tick: tick, type: padType }); } } // --- Create Drum Pads --- for (var i = 0; i < PAD_COLS; i++) { var pad = new DrumPad(); pad.setPadType(PAD_TYPES[i]); pad.x = PAD_X_POSITIONS[PAD_TYPES[i]]; pad.y = PAD_Y; pad.padIndex = i; pads.push(pad); game.addChild(pad); } // --- Pad Touch Handling --- var activePad = null; function getPadAt(x, y) { for (var i = 0; i < pads.length; i++) { var pad = pads[i]; var dx = x - pad.x, dy = y - pad.y; var rx = pad.asset.width / 2, ry = pad.asset.height / 2; if (dx * dx / (rx * rx) + dy * dy / (ry * ry) <= 1) { return pad; } } return null; } game.down = function (x, y, obj) { var pad = getPadAt(x, y); if (pad) { activePad = pad; handlePadHit(pad); } }; game.move = function (x, y, obj) { // For multi-touch, could be extended }; game.up = function (x, y, obj) { activePad = null; }; // --- Note Spawning --- function spawnNote(type) { var note = new Note(); note.setNoteType(type); note.x = PAD_X_POSITIONS[type]; note.y = NOTE_START_Y; note.noteType = type; note.hit = false; notes.push(note); game.addChild(note); } // --- Pad Hit Logic --- function handlePadHit(pad) { // Play sound var soundId = pad.padType + 'Sound'; var sound = LK.getSound(soundId); if (sound) { if (sound.stop) { sound.stop(); } // Stop if already playing to avoid overlap/delay sound.play(); } // Record pad hit if in recording mode recordPadHit(pad.padType); // Visual feedback pad.flash(); // Allow even earlier and later hits by expanding the hit windows further var HIT_WINDOW_EARLY = HIT_WINDOW * 2.2; // allow 120% earlier var HIT_WINDOW_LATE = HIT_WINDOW * 2.5; // allow 150% later - more tolerance for late hits // Find closest note of this type in expanded hit window var bestNote = null, bestDist = HIT_WINDOW_LATE; for (var i = 0; i < notes.length; i++) { var note = notes[i]; if (note.hit) { continue; } if (note.noteType !== pad.padType) { continue; } var dist = Math.abs(note.y - NOTE_TARGET_Y); // Accept if note is within early or late window if (note.y >= NOTE_TARGET_Y - HIT_WINDOW_EARLY && note.y <= NOTE_TARGET_Y + HIT_WINDOW_LATE && dist < bestDist) { bestDist = dist; bestNote = note; } } if (bestNote) { // Hit! bestNote.hit = true; LK.effects.flashObject(bestNote, 0xffffff, 120); tween(bestNote, { alpha: 0 }, { duration: 120, onFinish: function onFinish() { bestNote.destroy(); } }); notes.splice(notes.indexOf(bestNote), 1); score += 100; combo += 1; if (combo > maxCombo) { maxCombo = combo; } scoreTxt.setText(score); comboTxt.setText(combo > 1 ? combo + 'x' : ''); // Reset consecutiveMisses on successful hit if (typeof consecutiveMisses !== "undefined") { consecutiveMisses = 0; } // --- HEALTH BAR: Increase health by (1 * combo), clamp to maxHealth --- if (typeof health !== "undefined") { var addHealth = 1 * (combo > 0 ? combo : 1); health += addHealth; if (health > maxHealth) { health = maxHealth; } // Update health bar UI if (healthBarFg) { healthBarFg.width = health / maxHealth * healthBarBg.width; } } } else { // Miss! LK.effects.flashScreen(0xff0000, 200); // Track consecutive misses for combo reset if (typeof consecutiveMisses === "undefined") { consecutiveMisses = 0; } consecutiveMisses += 1; if (consecutiveMisses >= 2) { combo = 0; comboTxt.setText(''); consecutiveMisses = 0; } // --- HEALTH BAR: Decrease health by 2 (or more if many consecutive misses), clamp to 0 --- if (typeof health !== "undefined") { var missPenalty = 2; if (consecutiveMisses >= 3) { // For every group of 3 consecutive misses, double the penalty missPenalty = 2 * Math.pow(2, Math.floor(consecutiveMisses / 3)); } health -= missPenalty; if (health < 0) { health = 0; } if (healthBarFg) { healthBarFg.width = health / maxHealth * healthBarBg.width; } } } } // --- Game Update --- game.update = function () { if (!isPlaying) { return; } // If recording, do not spawn notes, do not check for misses, do not end game if (isRecording) { // Allow player to play freely, but do not process notes return; } // --- FAIL CHECK: If health is 0, fail the level and return to menu --- if (typeof health !== "undefined" && health <= 0 && isPlaying) { isPlaying = false; LK.stopMusic(); // Update high scores even on failure if needed var newHighScore = false; var newHighCombo = false; if (score > highScore) { highScore = score; storage.highScore = highScore; newHighScore = true; } if (maxCombo > highCombo) { highCombo = maxCombo; storage.highCombo = highCombo; newHighCombo = true; } // Update display texts highScoreTxt.setText("High Score: " + highScore); highComboTxt.setText("Best Combo: " + highCombo); // Show "Failed" text in the center of the screen var failedTxt = new Text2("Not Quite\nMy Tempo!!", { size: 160, fill: 0xFF4444 }); failedTxt.anchor.set(0.5, 0.5); failedTxt.x = GAME_W / 2; failedTxt.y = GAME_H / 2; game.addChild(failedTxt); // Hide gameplay UI scoreTxt.visible = false; comboTxt.visible = false; recordTxt.visible = false; if (healthBarContainer && healthBarContainer.parent) { healthBarContainer.parent.removeChild(healthBarContainer); } // After 1.2s, remove failed text and return to intro screen LK.setTimeout(function () { if (failedTxt && failedTxt.parent) { failedTxt.parent.removeChild(failedTxt); } // Flash high score displays if new records were set if (newHighScore) { LK.effects.flashObject(highScoreTxt, 0x00FF00, 1000); } if (newHighCombo) { LK.effects.flashObject(highComboTxt, 0x00FF00, 1000); } levelSelectContainer.visible = false; introContainer.visible = true; // Restart tip cycling when returning to intro screen after failure startTipCycling(); }, 1200); return; } // Spawn notes according to songNotes, with NOTE_OFFSET_TICKS for sync var relTick = LK.ticks - songStartTick; while (noteIndex < songNotes.length && songNotes[noteIndex].tick <= relTick + NOTE_OFFSET_TICKS) { spawnNote(songNotes[noteIndex].type); noteIndex++; } // Update notes, check for misses for (var i = notes.length - 1; i >= 0; i--) { var note = notes[i]; note.update(); if (!note.hit && note.y > NOTE_TARGET_Y + HIT_WINDOW * 2.5) { // Missed note LK.effects.flashObject(note, 0xff0000, 120); tween(note, { alpha: 0 }, { duration: 120, onFinish: function onFinish() { note.destroy(); } }); notes.splice(i, 1); // Track consecutive misses for combo reset in update loop if (typeof consecutiveMisses === "undefined") { consecutiveMisses = 0; } consecutiveMisses += 1; if (consecutiveMisses >= 2) { combo = 0; comboTxt.setText(''); consecutiveMisses = 0; } // --- HEALTH BAR: Decrease health by 2 (or more if many consecutive misses), clamp to 0 --- if (typeof health !== "undefined") { var missPenalty = 2; if (consecutiveMisses >= 3) { // For every group of 3 consecutive misses, double the penalty missPenalty = 2 * Math.pow(2, Math.floor(consecutiveMisses / 3)); } health -= missPenalty; if (health < 0) { health = 0; } if (healthBarFg) { healthBarFg.width = health / maxHealth * healthBarBg.width; } } } // Remove notes that go off screen if (note.y > GAME_H + 100) { if (notes.indexOf(note) !== -1) { notes.splice(notes.indexOf(note), 1); } note.destroy(); } } // End of song if (noteIndex >= songNotes.length && notes.length === 0) { isPlaying = false; LK.stopMusic(); // Check if level was completed successfully (level progression) var levelCompleted = score > 0; // Basic completion criteria if (levelCompleted) { // Find current level in order and unlock next if needed var currentOrderIndex = levelOrder.indexOf(currentLevelIndex); if (currentOrderIndex >= 0 && currentOrderIndex === unlockedLevels - 1) { // This was the latest unlocked level, unlock the next one unlockNextLevel(); } } // Update high scores if needed var newHighScore = false; var newHighCombo = false; if (score > highScore) { highScore = score; storage.highScore = highScore; newHighScore = true; } if (maxCombo > highCombo) { highCombo = maxCombo; storage.highCombo = highCombo; newHighCombo = true; } // Update display texts highScoreTxt.setText("High Score: " + highScore); highComboTxt.setText("Best Combo: " + highCombo); // Flash high score displays if new records were set if (newHighScore) { LK.effects.flashObject(highScoreTxt, 0x00FF00, 1000); } if (newHighCombo) { LK.effects.flashObject(highComboTxt, 0x00FF00, 1000); } // Instead of showing win popup, return to intro screen levelSelectContainer.visible = false; scoreTxt.visible = false; comboTxt.visible = false; recordTxt.visible = false; if (healthBarContainer && healthBarContainer.parent) { healthBarContainer.parent.removeChild(healthBarContainer); } introContainer.visible = true; // Restart tip cycling when returning to intro screen startTipCycling(); } }; // --- Start Game --- function startGame() { score = 0; combo = 0; maxCombo = 0; scoreTxt.setText('0'); comboTxt.setText(''); notes = []; noteIndex = 0; isPlaying = true; songStartTick = LK.ticks; consecutiveMisses = 0; // Hide tips during gameplay if (tipsContainer) { tipsContainer.visible = false; } // --- Health Bar Setup --- health = 150; maxHealth = 150; // Remove previous health bar if exists if (healthBarContainer && healthBarContainer.parent) { healthBarContainer.parent.removeChild(healthBarContainer); } healthBarContainer = new Container(); var barW = 900, barH = 60; // Use visual assets for health bar healthBarBg = LK.getAsset('healthBarBg', { anchorX: 0.5, anchorY: 0.5, width: barW, height: barH }); healthBarFg = LK.getAsset('healthBarFg', { anchorX: 0.5, anchorY: 0.5, width: barW, height: barH }); healthBarContainer.addChild(healthBarBg); healthBarContainer.addChild(healthBarFg); // Place at bottom center, above pads healthBarContainer.x = GAME_W / 2; healthBarContainer.y = GAME_H - 80; game.addChild(healthBarContainer); // Preload all drum sounds to reduce latency var preloadSounds = ['kickSound', 'snareSound', 'hihatSound', 'tom1Sound', 'crash1Sound']; for (var i = 0; i < preloadSounds.length; i++) { var s = LK.getSound(preloadSounds[i]); if (s && s.play) { // Play at zero volume to warm up, then stop immediately s.volume = 0; s.play(); if (s.stop) { s.stop(); } s.volume = 1; } } // Preload music to reduce latency var preloadMusic = LK.getMusic ? LK.getMusic('MasterofUpit') : null; if (preloadMusic && preloadMusic.play) { preloadMusic.volume = 0; preloadMusic.play(); if (preloadMusic.stop) { preloadMusic.stop(); } preloadMusic.volume = 1; } // Stop any currently playing music to ensure clean start LK.stopMusic(); // Play selected level's music with no fade, no loop, and start at full volume for best sync LK.playMusic(currentMusic, { loop: false, fade: { start: 1, end: 1, duration: 0 } }); } // --- Game Over Handling (missed notes or end of song) --- // Handled by LK.showYouWin() or LK.showGameOver() as needed // --- Responsive UI (center score) --- scoreTxt.x = LK.gui.top.width / 2; comboTxt.x = LK.gui.top.width / 2; // --- Tips Section --- var tipsContainer = new Container(); tipsContainer.x = 0; tipsContainer.y = 0; // Will be positioned relative to intro screen introContainer.addChild(tipsContainer); // Tips text array var tips = ["You can creatively jam as you wish on the home screen.", "Keep a consistent beat to increase the combo!", "I wrote the notes by playing them myself ,they are not all perfect :P", "Still in development.", "I love Upit!", "Recommended to play on mobile device.", "S.a A.s", "I have no idea about software or coding", "Cat GBT is my best friend"]; // Shuffle tips array randomly function shuffleArray(array) { for (var i = array.length - 1; i > 0; i--) { var j = Math.floor(Math.random() * (i + 1)); var temp = array[i]; array[i] = array[j]; array[j] = temp; } return array; } // Create randomized tips array var randomizedTips = shuffleArray(tips.slice()); // Use slice() to create a copy var tipText = new Text2(randomizedTips[0], { size: 45, fill: "#fff" }); tipText.anchor.set(0.5, 0.5); tipText.x = 0; // Center relative to tipsContainer which is already centered tipText.y = playBtn.y + 120; // Position below play button tipsContainer.addChild(tipText); // Current tip index and animation state var currentTipIndex = 0; var tipAnimationTimer = null; var tipDisplayTimer = null; // Function to show next tip with sliding animation function showNextTip() { // Find next tip that's different from current one var nextTipIndex; var attempts = 0; do { nextTipIndex = (currentTipIndex + 1) % randomizedTips.length; // If we've gone through all tips, reshuffle and start over if (nextTipIndex === 0 && attempts === 0) { randomizedTips = shuffleArray(tips.slice()); // Make sure first tip after reshuffle is different from last shown if (randomizedTips[0] === tipText.text) { // Swap first tip with a random other tip var swapIndex = Math.floor(Math.random() * (randomizedTips.length - 1)) + 1; var temp = randomizedTips[0]; randomizedTips[0] = randomizedTips[swapIndex]; randomizedTips[swapIndex] = temp; } } attempts++; currentTipIndex = nextTipIndex; } while (randomizedTips[nextTipIndex] === tipText.text && attempts < randomizedTips.length); // Slide out current tip to the left tween(tipText, { x: -LK.gui.center.width }, { duration: 800, easing: tween.easeInOut, onFinish: function onFinish() { // Change text and position off-screen right tipText.setText(randomizedTips[nextTipIndex]); tipText.x = LK.gui.center.width; // Slide in new tip from the right tween(tipText, { x: 0 }, { duration: 800, easing: tween.easeInOut }); } }); } // Start the cycling animation only when intro screen is visible function startTipCycling() { if (tipDisplayTimer) { LK.clearInterval(tipDisplayTimer); } tipDisplayTimer = LK.setInterval(function () { if (introContainer.visible && !levelSelectContainer.visible) { showNextTip(); } }, 3000); // Change tip every 3 seconds } // Hide tips container when not on intro screen function updateTipsVisibility() { tipsContainer.visible = introContainer.visible && !levelSelectContainer.visible; } // Start tip cycling startTipCycling(); // --- High Score Display --- var highScore = storage.highScore || 0; var highCombo = storage.highCombo || 0; var highScoreTxt = new Text2("High Score: " + highScore, { size: 50, fill: 0xFFD700 }); highScoreTxt.anchor.set(0.5, 0.5); highScoreTxt.x = 500; highScoreTxt.y = playBtn.y - 120 - 100; introColumn.addChild(highScoreTxt); var highComboTxt = new Text2("Best Combo: " + highCombo, { size: 50, fill: 0xFFD700 }); highComboTxt.anchor.set(0.5, 0.5); highComboTxt.x = 500; highComboTxt.y = highScoreTxt.y + 70; introColumn.addChild(highComboTxt); // --- TEST MODE: Show timeline and tick counter for sync debugging --- var TEST_MODE = true; // Set to true to enable timeline and tick counter var timelineBar = null; var tickCounterTxt = null; if (TEST_MODE) { // Timeline bar (shows song progress) timelineBar = new Container(); var barBg = LK.getAsset('crash1Pad', { anchorX: 0, anchorY: 0, width: LK.gui.top.width - 200, height: 24 }); barBg.alpha = 0.18; timelineBar.addChild(barBg); var barFg = LK.getAsset('hihatPad', { anchorX: 0, anchorY: 0, width: 0, height: 24 }); barFg.alpha = 0.7; timelineBar.addChild(barFg); timelineBar.x = 100; timelineBar.y = LK.gui.top.height - 60; LK.gui.top.addChild(timelineBar); // Tick counter tickCounterTxt = new Text2('Tick: 0', { size: 48, fill: "#fff" }); tickCounterTxt.anchor.set(0, 0.5); tickCounterTxt.x = 100; tickCounterTxt.y = LK.gui.top.height - 100; LK.gui.top.addChild(tickCounterTxt); // Update timeline and tick counter every frame var lastTimelineUpdateTick = -1; var songTotalTicks = songNotes.length > 0 ? songNotes[songNotes.length - 1].tick : 1; game.update = function (origUpdate) { return function () { if (origUpdate) { origUpdate.apply(this, arguments); } if (isPlaying && TEST_MODE) { // Update songTotalTicks in case level changed songTotalTicks = songNotes.length > 0 ? songNotes[songNotes.length - 1].tick : 1; var relTick = LK.ticks - songStartTick; // Timeline bar var progress = Math.min(1, (relTick + NOTE_OFFSET_TICKS) / songTotalTicks); barFg.width = (LK.gui.top.width - 200) * progress; // Tick counter tickCounterTxt.setText('Tick: ' + relTick); } // Update tips visibility updateTipsVisibility(); }; }(game.update); }
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
var storage = LK.import("@upit/storage.v1", {
unlockedLevels: 1
});
/****
* Classes
****/
// Default: only beginner (index 3) unlocked
// DrumPad: Interactive drum pad at the bottom
var DrumPad = Container.expand(function () {
var self = Container.call(this);
// .padType: 'kick', 'snare', etc. (set after creation)
self.padType = null;
self.asset = null;
// .isPressed: for visual feedback
self.isPressed = false;
// Set up asset
self.setPadType = function (type) {
self.padType = type;
var assetId = type + 'Pad';
if (self.asset) {
self.removeChild(self.asset);
}
var size = PAD_SIZES[type];
self.asset = self.attachAsset(assetId, {
anchorX: 0.5,
anchorY: 0.5,
width: size ? size.w : undefined,
height: size ? size.h : undefined
});
};
// Visual feedback on press
self.flash = function () {
if (!self.asset) {
return;
}
tween(self.asset, {
alpha: 0.5
}, {
duration: 60,
onFinish: function onFinish() {
tween(self.asset, {
alpha: 1
}, {
duration: 120
});
}
});
};
return self;
});
// Note: Falling note bar
var Note = Container.expand(function () {
var self = Container.call(this);
// .noteType: 'kick', 'snare', etc.
self.noteType = null;
self.asset = null;
self.hit = false; // If already hit
self.setNoteType = function (type) {
self.noteType = type;
var assetId = type + 'Note';
if (self.asset) {
self.removeChild(self.asset);
}
self.asset = self.attachAsset(assetId, {
anchorX: 0.5,
anchorY: 0.5
});
};
// Called every tick
self.update = function () {
// Store initial scale if not set
if (self.initialScale === undefined) {
self.initialScale = 0.6; // Start smaller than normal
self.asset.scaleX = self.initialScale;
self.asset.scaleY = self.initialScale;
}
// Calculate progress from spawn to target (0 to 1)
var totalDistance = NOTE_TARGET_Y - NOTE_START_Y;
var currentDistance = self.y - NOTE_START_Y;
var progress = Math.max(0, Math.min(1, currentDistance / totalDistance));
// Scale from 0.6 to 1.8 (gradually growing larger)
var targetScale = self.initialScale + 1.2 * progress; // 0.6 + (1.2 * progress) = 0.6 to 1.8
self.asset.scaleX = targetScale;
self.asset.scaleY = targetScale;
self.y += noteSpeed;
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x181818
});
/****
* Game Code
****/
// Add customizable background
var gameBackground = LK.getAsset('gameBackground', {
anchorX: 0,
anchorY: 0,
x: 0,
y: 0,
width: GAME_W,
height: GAME_H
});
game.addChild(gameBackground);
// Health bar visual assets
// Drum pad sounds
// Music track
// Sounds for each drum
// Note bars (falling notes)
// Drum pads (kick, snare, hi-hat, tom1, tom2, crash1, crash2)
// --- Game constants ---
var PAD_TYPES = ['kick', 'snare', 'hihat', 'tom1', 'crash1'];
var PAD_COLS = PAD_TYPES.length;
var GAME_W = 2048,
GAME_H = 2732;
var PAD_Y = GAME_H - 320; // Y position for pads
// --- Pad Sizing and Full-Width Layout ---
// Each pad will be as wide as possible, with no side gaps, and all pads will be adjacent.
var PAD_SIZES = {};
var PAD_X_POSITIONS = {};
var padWidth = GAME_W / PAD_COLS;
var padCenterY = PAD_Y;
for (var i = 0; i < PAD_COLS; i++) {
var type = PAD_TYPES[i];
// Pad width: fill the column, pad height: keep previous aspect ratio (or max of previous)
// We'll use the original aspect ratio for each pad type, but scale width to padWidth
// Use original aspect ratios from previous PAD_SIZES
var origSizes = {
'kick': {
w: 420,
h: 210
},
'snare': {
w: 340,
h: 170
},
'hihat': {
w: 300,
h: 150
},
'tom1': {
w: 320,
h: 160
},
'crash1': {
w: 340,
h: 170
}
};
var aspect = origSizes[type].h / origSizes[type].w;
var w = padWidth;
var h = w * aspect;
PAD_SIZES[type] = {
w: w,
h: h
};
// Center of each pad: left edge + half width + i*padWidth
PAD_X_POSITIONS[type] = i * padWidth + padWidth / 2;
}
// Swap hihat and tom1 X positions
var tmpX = PAD_X_POSITIONS['hihat'];
PAD_X_POSITIONS['hihat'] = PAD_X_POSITIONS['tom1'];
PAD_X_POSITIONS['tom1'] = tmpX;
// Note spawn area (top)
var NOTE_START_Y = -60;
var NOTE_TARGET_Y = PAD_Y - 80; // Where notes should be hit
// Note speed (pixels per frame)
var noteSpeed = 18;
// Timing window (pixels): how close to NOTE_TARGET_Y is a "hit"
var HIT_WINDOW = 100;
// --- State ---
// NOTE_OFFSET_TICKS: Delay (in ticks) to align first note with music start (positive = notes spawn later)
var NOTE_OFFSET_TICKS = 0; // Default 0, adjust for perfect sync (e.g. try 20, 30, 40, ...)
var pads = [];
var notes = [];
var score = 0;
var combo = 0;
var maxCombo = 0;
var lastTick = 0;
var noteIndex = 0;
var isPlaying = false;
var songStartTick = 0;
// --- Health Bar State ---
var health = 150;
var maxHealth = 150;
var healthBarContainer = null;
var healthBarBg = null;
var healthBarFg = null;
// --- UI ---
var scoreTxt = new Text2('0', {
size: 120,
fill: "#fff"
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
var comboTxt = new Text2('', {
size: 70,
fill: 0xFFE066
});
comboTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(comboTxt);
comboTxt.y = 130;
// --- Song Data for all levels ---
// Each entry: {tick: <when to spawn>, type: <padType>}
// Level 1: MasterofUpit, original notes
var LEVELS = [{
name: "Hard: Master of Upit",
music: "MasterofUpit",
notes: [{
tick: 1,
type: 'kick'
}, {
tick: 1,
type: 'crash1'
}, {
tick: 62,
type: 'crash1'
}, {
tick: 63,
type: 'kick'
}, {
tick: 78,
type: 'crash1'
}, {
tick: 78,
type: 'kick'
}, {
tick: 93,
type: 'crash1'
}, {
tick: 93,
type: 'kick'
}, {
tick: 193,
type: 'crash1'
}, {
tick: 193,
type: 'kick'
}, {
tick: 266,
type: 'hihat'
}, {
tick: 283,
type: 'hihat'
}, {
tick: 299,
type: 'hihat'
}, {
tick: 316,
type: 'hihat'
}, {
tick: 334,
type: 'hihat'
}, {
tick: 351,
type: 'hihat'
}, {
tick: 368,
type: 'hihat'
}, {
tick: 386,
type: 'hihat'
}, {
tick: 403,
type: 'hihat'
}, {
tick: 420,
type: 'hihat'
}, {
tick: 438,
type: 'hihat'
}, {
tick: 451,
type: 'kick'
}, {
tick: 452,
type: 'crash1'
}, {
tick: 470,
type: 'crash1'
}, {
tick: 471,
type: 'kick'
}, {
tick: 490,
type: 'hihat'
}, {
tick: 505,
type: 'hihat'
}, {
tick: 522,
type: 'hihat'
}, {
tick: 538,
type: 'kick'
}, {
tick: 539,
type: 'crash1'
}, {
tick: 556,
type: 'crash1'
}, {
tick: 558,
type: 'kick'
}, {
tick: 572,
type: 'crash1'
}, {
tick: 572,
type: 'kick'
}, {
tick: 590,
type: 'hihat'
}, {
tick: 607,
type: 'hihat'
}, {
tick: 625,
type: 'hihat'
}, {
tick: 640,
type: 'hihat'
}, {
tick: 658,
type: 'hihat'
}, {
tick: 676,
type: 'hihat'
}, {
tick: 694,
type: 'hihat'
}, {
tick: 710,
type: 'hihat'
}, {
tick: 725,
type: 'crash1'
}, {
tick: 727,
type: 'kick'
}, {
tick: 742,
type: 'kick'
}, {
tick: 742,
type: 'crash1'
}, {
tick: 758,
type: 'hihat'
}, {
tick: 776,
type: 'hihat'
}, {
tick: 795,
type: 'hihat'
}, {
tick: 812,
type: 'crash1'
}, {
tick: 812,
type: 'kick'
}, {
tick: 829,
type: 'crash1'
}, {
tick: 829,
type: 'kick'
}, {
tick: 847,
type: 'crash1'
}, {
tick: 847,
type: 'kick'
}, {
tick: 863,
type: 'hihat'
}, {
tick: 881,
type: 'hihat'
}, {
tick: 899,
type: 'hihat'
}, {
tick: 916,
type: 'hihat'
}, {
tick: 933,
type: 'hihat'
}, {
tick: 951,
type: 'hihat'
}, {
tick: 969,
type: 'hihat'
}, {
tick: 986,
type: 'hihat'
}, {
tick: 1003,
type: 'kick'
}, {
tick: 1003,
type: 'crash1'
}, {
tick: 1020,
type: 'crash1'
}, {
tick: 1021,
type: 'kick'
}, {
tick: 1036,
type: 'hihat'
}, {
tick: 1054,
type: 'hihat'
}, {
tick: 1070,
type: 'hihat'
}, {
tick: 1087,
type: 'crash1'
}, {
tick: 1087,
type: 'kick'
}, {
tick: 1104,
type: 'crash1'
}, {
tick: 1105,
type: 'kick'
}, {
tick: 1122,
type: 'crash1'
}, {
tick: 1122,
type: 'kick'
}, {
tick: 1155,
type: 'snare'
}, {
tick: 1166,
type: 'snare'
}, {
tick: 1173,
type: 'snare'
}, {
tick: 1183,
type: 'snare'
}, {
tick: 1189,
type: 'snare'
}, {
tick: 1198,
type: 'snare'
}, {
tick: 1206,
type: 'snare'
}, {
tick: 1215,
type: 'snare'
}, {
tick: 1223,
type: 'snare'
}, {
tick: 1231,
type: 'snare'
}, {
tick: 1239,
type: 'snare'
}, {
tick: 1249,
type: 'snare'
}, {
tick: 1257,
type: 'snare'
}, {
tick: 1267,
type: 'snare'
}, {
tick: 1275,
type: 'snare'
}, {
tick: 1293,
type: 'kick'
}, {
tick: 1293,
type: 'crash1'
}, {
tick: 1500,
type: 'crash1'
}, {
tick: 1500,
type: 'kick'
}, {
tick: 1527,
type: 'crash1'
}, {
tick: 1528,
type: 'kick'
}, {
tick: 1549,
type: 'crash1'
}, {
tick: 1549,
type: 'kick'
}, {
tick: 1566,
type: 'crash1'
}, {
tick: 1566,
type: 'kick'
}, {
tick: 1775,
type: 'crash1'
}, {
tick: 1776,
type: 'kick'
}, {
tick: 1802,
type: 'kick'
}, {
tick: 1802,
type: 'crash1'
}, {
tick: 1825,
type: 'crash1'
}, {
tick: 1826,
type: 'kick'
}, {
tick: 1842,
type: 'crash1'
}, {
tick: 1842,
type: 'kick'
}, {
tick: 1856,
type: 'hihat'
}, {
tick: 1860,
type: 'snare'
}, {
tick: 1876,
type: 'hihat'
}, {
tick: 1884,
type: 'kick'
}, {
tick: 1892,
type: 'hihat'
}, {
tick: 1892,
type: 'snare'
}, {
tick: 1910,
type: 'hihat'
}, {
tick: 1911,
type: 'kick'
}, {
tick: 1927,
type: 'snare'
}, {
tick: 1928,
type: 'hihat'
}, {
tick: 1946,
type: 'hihat'
}, {
tick: 1954,
type: 'kick'
}, {
tick: 1961,
type: 'hihat'
}, {
tick: 1963,
type: 'snare'
}, {
tick: 1980,
type: 'hihat'
}, {
tick: 1981,
type: 'kick'
}, {
tick: 1996,
type: 'snare'
}, {
tick: 1996,
type: 'hihat'
}, {
tick: 2014,
type: 'hihat'
}, {
tick: 2021,
type: 'kick'
}, {
tick: 2028,
type: 'hihat'
}, {
tick: 2031,
type: 'snare'
}, {
tick: 2048,
type: 'hihat'
}, {
tick: 2049,
type: 'kick'
}, {
tick: 2066,
type: 'hihat'
}, {
tick: 2066,
type: 'snare'
}, {
tick: 2086,
type: 'hihat'
}, {
tick: 2096,
type: 'kick'
}, {
tick: 2102,
type: 'crash1'
}, {
tick: 2105,
type: 'kick'
}, {
tick: 2119,
type: 'kick'
}, {
tick: 2119,
type: 'crash1'
}, {
tick: 2165,
type: 'hihat'
}, {
tick: 2168,
type: 'snare'
}, {
tick: 2185,
type: 'hihat'
}, {
tick: 2187,
type: 'kick'
}, {
tick: 2202,
type: 'snare'
}, {
tick: 2202,
type: 'hihat'
}, {
tick: 2219,
type: 'hihat'
}, {
tick: 2229,
type: 'kick'
}, {
tick: 2235,
type: 'hihat'
}, {
tick: 2237,
type: 'snare'
}, {
tick: 2245,
type: 'snare'
}, {
tick: 2252,
type: 'snare'
}, {
tick: 2257,
type: 'crash1'
}, {
tick: 2261,
type: 'kick'
}, {
tick: 2273,
type: 'snare'
}, {
tick: 2273,
type: 'hihat'
}, {
tick: 2290,
type: 'hihat'
}, {
tick: 2305,
type: 'hihat'
}, {
tick: 2308,
type: 'snare'
}, {
tick: 2324,
type: 'crash1'
}, {
tick: 2325,
type: 'kick'
}, {
tick: 2350,
type: 'kick'
}, {
tick: 2350,
type: 'crash1'
}, {
tick: 2376,
type: 'crash1'
}, {
tick: 2376,
type: 'kick'
}, {
tick: 2392,
type: 'crash1'
}, {
tick: 2392,
type: 'kick'
}, {
tick: 2407,
type: 'hihat'
}, {
tick: 2409,
type: 'snare'
}, {
tick: 2427,
type: 'hihat'
}, {
tick: 2436,
type: 'kick'
}, {
tick: 2442,
type: 'hihat'
}, {
tick: 2444,
type: 'snare'
}, {
tick: 2460,
type: 'hihat'
}, {
tick: 2462,
type: 'kick'
}, {
tick: 2479,
type: 'hihat'
}, {
tick: 2479,
type: 'snare'
}, {
tick: 2496,
type: 'hihat'
}, {
tick: 2506,
type: 'kick'
}, {
tick: 2511,
type: 'hihat'
}, {
tick: 2515,
type: 'snare'
}, {
tick: 2530,
type: 'hihat'
}, {
tick: 2532,
type: 'kick'
}, {
tick: 2546,
type: 'hihat'
}, {
tick: 2546,
type: 'snare'
}, {
tick: 2564,
type: 'hihat'
}, {
tick: 2573,
type: 'kick'
}, {
tick: 2581,
type: 'hihat'
}, {
tick: 2584,
type: 'snare'
}, {
tick: 2599,
type: 'hihat'
}, {
tick: 2600,
type: 'kick'
}, {
tick: 2615,
type: 'snare'
}, {
tick: 2615,
type: 'hihat'
}, {
tick: 2635,
type: 'hihat'
}, {
tick: 2641,
type: 'kick'
}, {
tick: 2651,
type: 'snare'
}, {
tick: 2654,
type: 'crash1'
}, {
tick: 2669,
type: 'kick'
}, {
tick: 2671,
type: 'hihat'
}, {
tick: 2686,
type: 'snare'
}, {
tick: 2686,
type: 'hihat'
}, {
tick: 2704,
type: 'hihat'
}, {
tick: 2713,
type: 'kick'
}, {
tick: 2719,
type: 'hihat'
}, {
tick: 2724,
type: 'kick'
}, {
tick: 2739,
type: 'hihat'
}, {
tick: 2750,
type: 'snare'
}, {
tick: 2759,
type: 'snare'
}, {
tick: 2769,
type: 'snare'
}, {
tick: 2773,
type: 'snare'
}, {
tick: 2781,
type: 'snare'
}, {
tick: 2792,
type: 'tom1'
}, {
tick: 2808,
type: 'crash1'
}, {
tick: 2809,
type: 'kick'
}, {
tick: 2822,
type: 'hihat'
}, {
tick: 2823,
type: 'snare'
}, {
tick: 2840,
type: 'hihat'
}, {
tick: 2848,
type: 'kick'
}, {
tick: 2855,
type: 'hihat'
}, {
tick: 2856,
type: 'snare'
}, {
tick: 2873,
type: 'crash1'
}, {
tick: 2873,
type: 'kick'
}, {
tick: 2899,
type: 'kick'
}, {
tick: 2899,
type: 'crash1'
}, {
tick: 2921,
type: 'crash1'
}, {
tick: 2924,
type: 'kick'
}, {
tick: 2939,
type: 'crash1'
}, {
tick: 2939,
type: 'kick'
}, {
tick: 2964,
type: 'crash1'
}, {
tick: 2965,
type: 'kick'
}, {
tick: 2988,
type: 'crash1'
}, {
tick: 2988,
type: 'kick'
}, {
tick: 3006,
type: 'crash1'
}, {
tick: 3006,
type: 'kick'
}, {
tick: 3024,
type: 'hihat'
}, {
tick: 3044,
type: 'hihat'
}, {
tick: 3060,
type: 'hihat'
}, {
tick: 3079,
type: 'hihat'
}, {
tick: 3097,
type: 'hihat'
}, {
tick: 3114,
type: 'hihat'
}, {
tick: 3132,
type: 'hihat'
}, {
tick: 3149,
type: 'crash1'
}, {
tick: 3149,
type: 'kick'
}, {
tick: 3165,
type: 'hihat'
}, {
tick: 3165,
type: 'snare'
}, {
tick: 3183,
type: 'hihat'
}, {
tick: 3192,
type: 'kick'
}, {
tick: 3198,
type: 'hihat'
}, {
tick: 3200,
type: 'snare'
}, {
tick: 3217,
type: 'hihat'
}, {
tick: 3231,
type: 'kick'
}, {
tick: 3235,
type: 'hihat'
}, {
tick: 3239,
type: 'snare'
}, {
tick: 3254,
type: 'hihat'
}, {
tick: 3254,
type: 'kick'
}, {
tick: 3269,
type: 'hihat'
}, {
tick: 3269,
type: 'snare'
}, {
tick: 3285,
type: 'hihat'
}, {
tick: 3288,
type: 'kick'
}, {
tick: 3303,
type: 'hihat'
}, {
tick: 3304,
type: 'snare'
}, {
tick: 3321,
type: 'hihat'
}, {
tick: 3329,
type: 'kick'
}, {
tick: 3336,
type: 'hihat'
}, {
tick: 3337,
type: 'snare'
}, {
tick: 3354,
type: 'hihat'
}, {
tick: 3361,
type: 'snare'
}, {
tick: 3362,
type: 'crash1'
}, {
tick: 3381,
type: 'crash1'
}, {
tick: 3381,
type: 'kick'
}, {
tick: 3399,
type: 'hihat'
}, {
tick: 3399,
type: 'kick'
}, {
tick: 3415,
type: 'hihat'
}, {
tick: 3416,
type: 'snare'
}, {
tick: 3434,
type: 'hihat'
}, {
tick: 3443,
type: 'kick'
}, {
tick: 3449,
type: 'hihat'
}, {
tick: 3452,
type: 'snare'
}, {
tick: 3469,
type: 'hihat'
}, {
tick: 3478,
type: 'snare'
}, {
tick: 3485,
type: 'snare'
}, {
tick: 3501,
type: 'tom1'
}, {
tick: 3519,
type: 'tom1'
}, {
tick: 3537,
type: 'kick'
}, {
tick: 3539,
type: 'crash1'
}, {
tick: 3553,
type: 'snare'
}, {
tick: 3554,
type: 'hihat'
}, {
tick: 3570,
type: 'hihat'
}, {
tick: 3578,
type: 'kick'
}, {
tick: 3585,
type: 'hihat'
}, {
tick: 3587,
type: 'snare'
}, {
tick: 3603,
type: 'hihat'
}, {
tick: 3612,
type: 'crash1'
}, {
tick: 3613,
type: 'kick'
}, {
tick: 3630,
type: 'crash1'
}, {
tick: 3630,
type: 'kick'
}, {
tick: 3647,
type: 'hihat'
}, {
tick: 3663,
type: 'hihat'
}, {
tick: 3664,
type: 'snare'
}, {
tick: 3681,
type: 'hihat'
}, {
tick: 3690,
type: 'kick'
}, {
tick: 3697,
type: 'hihat'
}, {
tick: 3699,
type: 'snare'
}, {
tick: 3721,
type: 'snare'
}, {
tick: 3729,
type: 'snare'
}, {
tick: 3748,
type: 'snare'
}, {
tick: 3756,
type: 'snare'
}, {
tick: 3765,
type: 'tom1'
}, {
tick: 3772,
type: 'tom1'
}, {
tick: 3782,
type: 'crash1'
}, {
tick: 3782,
type: 'kick'
}, {
tick: 3798,
type: 'snare'
}, {
tick: 3798,
type: 'hihat'
}, {
tick: 3815,
type: 'hihat'
}, {
tick: 3826,
type: 'kick'
}, {
tick: 3831,
type: 'hihat'
}, {
tick: 3834,
type: 'snare'
}, {
tick: 3850,
type: 'crash1'
}, {
tick: 3859,
type: 'crash1'
}, {
tick: 3859,
type: 'kick'
}, {
tick: 3878,
type: 'crash1'
}, {
tick: 3878,
type: 'kick'
}, {
tick: 3896,
type: 'kick'
}, {
tick: 3896,
type: 'hihat'
}, {
tick: 3912,
type: 'hihat'
}, {
tick: 3913,
type: 'snare'
}, {
tick: 3930,
type: 'hihat'
}, {
tick: 3942,
type: 'kick'
}, {
tick: 3947,
type: 'hihat'
}, {
tick: 3950,
type: 'snare'
}, {
tick: 3964,
type: 'hihat'
}, {
tick: 3973,
type: 'snare'
}, {
tick: 3981,
type: 'snare'
}, {
tick: 3998,
type: 'snare'
}, {
tick: 4006,
type: 'snare'
}, {
tick: 4012,
type: 'snare'
}, {
tick: 4020,
type: 'tom1'
}, {
tick: 4027,
type: 'tom1'
}, {
tick: 4035,
type: 'kick'
}, {
tick: 4036,
type: 'crash1'
}, {
tick: 4051,
type: 'snare'
}, {
tick: 4052,
type: 'hihat'
}, {
tick: 4068,
type: 'hihat'
}, {
tick: 4078,
type: 'kick'
}, {
tick: 4083,
type: 'hihat'
}, {
tick: 4086,
type: 'snare'
}, {
tick: 4101,
type: 'hihat'
}, {
tick: 4106,
type: 'kick'
}, {
tick: 4112,
type: 'kick'
}, {
tick: 4112,
type: 'crash1'
}, {
tick: 4128,
type: 'crash1'
}, {
tick: 4128,
type: 'kick'
}, {
tick: 4145,
type: 'hihat'
}, {
tick: 4163,
type: 'hihat'
}, {
tick: 4163,
type: 'snare'
}, {
tick: 4180,
type: 'hihat'
}, {
tick: 4190,
type: 'kick'
}, {
tick: 4196,
type: 'hihat'
}, {
tick: 4200,
type: 'snare'
}, {
tick: 4224,
type: 'snare'
}, {
tick: 4233,
type: 'snare'
}, {
tick: 4249,
type: 'snare'
}, {
tick: 4258,
type: 'snare'
}, {
tick: 4265,
type: 'tom1'
}, {
tick: 4273,
type: 'tom1'
}, {
tick: 4282,
type: 'crash1'
}, {
tick: 4283,
type: 'kick'
}, {
tick: 4299,
type: 'hihat'
}, {
tick: 4300,
type: 'snare'
}, {
tick: 4317,
type: 'hihat'
}, {
tick: 4329,
type: 'kick'
}, {
tick: 4333,
type: 'hihat'
}, {
tick: 4336,
type: 'snare'
}, {
tick: 4351,
type: 'hihat'
}, {
tick: 4361,
type: 'crash1'
}, {
tick: 4361,
type: 'kick'
}, {
tick: 4378,
type: 'crash1'
}, {
tick: 4379,
type: 'kick'
}, {
tick: 4394,
type: 'crash1'
}, {
tick: 4396,
type: 'kick'
}, {
tick: 4411,
type: 'hihat'
}, {
tick: 4412,
type: 'snare'
}, {
tick: 4429,
type: 'hihat'
}, {
tick: 4439,
type: 'kick'
}, {
tick: 4445,
type: 'hihat'
}, {
tick: 4449,
type: 'snare'
}, {
tick: 4464,
type: 'hihat'
}, {
tick: 4474,
type: 'snare'
}, {
tick: 4481,
type: 'snare'
}, {
tick: 4497,
type: 'snare'
}, {
tick: 4506,
type: 'snare'
}, {
tick: 4519,
type: 'tom1'
}, {
tick: 4531,
type: 'kick'
}, {
tick: 4531,
type: 'crash1'
}, {
tick: 4548,
type: 'snare'
}, {
tick: 4548,
type: 'hihat'
}, {
tick: 4565,
type: 'hihat'
}, {
tick: 4574,
type: 'kick'
}, {
tick: 4580,
type: 'hihat'
}, {
tick: 4583,
type: 'snare'
}, {
tick: 4599,
type: 'hihat'
}, {
tick: 4602,
type: 'kick'
}, {
tick: 4609,
type: 'crash1'
}, {
tick: 4610,
type: 'kick'
}, {
tick: 4627,
type: 'crash1'
}, {
tick: 4627,
type: 'kick'
}, {
tick: 4642,
type: 'hihat'
}, {
tick: 4660,
type: 'hihat'
}, {
tick: 4661,
type: 'snare'
}, {
tick: 4678,
type: 'hihat'
}, {
tick: 4688,
type: 'snare'
}, {
tick: 4694,
type: 'hihat'
}, {
tick: 4699,
type: 'snare'
}, {
tick: 4725,
type: 'snare'
}, {
tick: 4732,
type: 'snare'
}, {
tick: 4748,
type: 'snare'
}, {
tick: 4756,
type: 'snare'
}, {
tick: 4763,
type: 'tom1'
}, {
tick: 4772,
type: 'kick'
}, {
tick: 4779,
type: 'kick'
}, {
tick: 4780,
type: 'crash1'
}, {
tick: 4797,
type: 'snare'
}, {
tick: 4797,
type: 'hihat'
}, {
tick: 4814,
type: 'hihat'
}, {
tick: 4823,
type: 'kick'
}, {
tick: 4830,
type: 'hihat'
}, {
tick: 4832,
type: 'snare'
}, {
tick: 4849,
type: 'crash1'
}, {
tick: 4850,
type: 'kick'
}, {
tick: 4856,
type: 'crash1'
}, {
tick: 4857,
type: 'kick'
}, {
tick: 4874,
type: 'kick'
}, {
tick: 4875,
type: 'crash1'
}, {
tick: 4891,
type: 'hihat'
}, {
tick: 4907,
type: 'hihat'
}, {
tick: 4907,
type: 'snare'
}, {
tick: 4924,
type: 'hihat'
}, {
tick: 4932,
type: 'kick'
}, {
tick: 4940,
type: 'hihat'
}, {
tick: 4942,
type: 'snare'
}, {
tick: 4958,
type: 'hihat'
}, {
tick: 4968,
type: 'snare'
}, {
tick: 4975,
type: 'snare'
}, {
tick: 4993,
type: 'snare'
}, {
tick: 5000,
type: 'snare'
}, {
tick: 5007,
type: 'tom1'
}, {
tick: 5015,
type: 'tom1'
}, {
tick: 5026,
type: 'kick'
}, {
tick: 5029,
type: 'crash1'
}, {
tick: 5046,
type: 'hihat'
}, {
tick: 5046,
type: 'snare'
}, {
tick: 5063,
type: 'hihat'
}, {
tick: 5074,
type: 'kick'
}, {
tick: 5079,
type: 'hihat'
}, {
tick: 5083,
type: 'snare'
}, {
tick: 5096,
type: 'hihat'
}, {
tick: 5105,
type: 'kick'
}, {
tick: 5106,
type: 'crash1'
}, {
tick: 5124,
type: 'crash1'
}, {
tick: 5125,
type: 'kick'
}, {
tick: 5140,
type: 'kick'
}, {
tick: 5150,
type: 'snare'
}, {
tick: 5159,
type: 'snare'
}, {
tick: 5168,
type: 'snare'
}, {
tick: 5177,
type: 'snare'
}, {
tick: 5182,
type: 'snare'
}, {
tick: 5190,
type: 'snare'
}, {
tick: 5198,
type: 'snare'
}, {
tick: 5210,
type: 'crash1'
}, {
tick: 5210,
type: 'kick'
}, {
tick: 5245,
type: 'hihat'
}, {
tick: 5246,
type: 'snare'
}, {
tick: 5262,
type: 'snare'
}, {
tick: 5262,
type: 'hihat'
}, {
tick: 5278,
type: 'crash1'
}, {
tick: 5312,
type: 'hihat'
}, {
tick: 5313,
type: 'snare'
}, {
tick: 5330,
type: 'snare'
}, {
tick: 5330,
type: 'hihat'
}, {
tick: 5347,
type: 'hihat'
}, {
tick: 5348,
type: 'kick'
}, {
tick: 5367,
type: 'kick'
}, {
tick: 5368,
type: 'hihat'
}, {
tick: 5381,
type: 'hihat'
}, {
tick: 5383,
type: 'snare'
}, {
tick: 5400,
type: 'hihat'
}, {
tick: 5400,
type: 'snare'
}, {
tick: 5416,
type: 'snare'
}, {
tick: 5424,
type: 'snare'
}, {
tick: 5431,
type: 'snare'
}, {
tick: 5440,
type: 'snare'
}, {
tick: 5447,
type: 'tom1'
}, {
tick: 5456,
type: 'tom1'
}, {
tick: 5463,
type: 'snare'
}, {
tick: 5471,
type: 'snare'
}, {
tick: 5482,
type: 'kick'
}, {
tick: 5483,
type: 'crash1'
}, {
tick: 5516,
type: 'hihat'
}, {
tick: 5519,
type: 'snare'
}, {
tick: 5534,
type: 'hihat'
}, {
tick: 5535,
type: 'snare'
}, {
tick: 5551,
type: 'crash1'
}, {
tick: 5554,
type: 'kick'
}, {
tick: 5569,
type: 'kick'
}, {
tick: 5582,
type: 'kick'
}, {
tick: 5584,
type: 'hihat'
}, {
tick: 5601,
type: 'snare'
}, {
tick: 5602,
type: 'hihat'
}, {
tick: 5617,
type: 'crash1'
}, {
tick: 5619,
type: 'kick'
}, {
tick: 5637,
type: 'kick'
}, {
tick: 5647,
type: 'kick'
}, {
tick: 5653,
type: 'hihat'
}, {
tick: 5655,
type: 'snare'
}, {
tick: 5671,
type: 'snare'
}, {
tick: 5687,
type: 'snare'
}, {
tick: 5696,
type: 'snare'
}, {
tick: 5703,
type: 'snare'
}, {
tick: 5713,
type: 'snare'
}, {
tick: 5721,
type: 'tom1'
}, {
tick: 5729,
type: 'tom1'
}, {
tick: 5739,
type: 'snare'
}, {
tick: 5747,
type: 'snare'
}, {
tick: 5757,
type: 'crash1'
}, {
tick: 5758,
type: 'kick'
}, {
tick: 5777,
type: 'kick'
}, {
tick: 5786,
type: 'kick'
}, {
tick: 5793,
type: 'hihat'
}, {
tick: 5794,
type: 'snare'
}, {
tick: 5809,
type: 'snare'
}, {
tick: 5825,
type: 'hihat'
}, {
tick: 5827,
type: 'kick'
}, {
tick: 5842,
type: 'kick'
}, {
tick: 5851,
type: 'kick'
}, {
tick: 5859,
type: 'hihat'
}, {
tick: 5861,
type: 'snare'
}, {
tick: 5877,
type: 'snare'
}, {
tick: 5895,
type: 'hihat'
}, {
tick: 5896,
type: 'kick'
}, {
tick: 5913,
type: 'kick'
}, {
tick: 5914,
type: 'hihat'
}, {
tick: 5931,
type: 'snare'
}, {
tick: 5934,
type: 'hihat'
}, {
tick: 5947,
type: 'snare'
}, {
tick: 5964,
type: 'snare'
}, {
tick: 5981,
type: 'snare'
}, {
tick: 5998,
type: 'tom1'
}, {
tick: 6008,
type: 'snare'
}, {
tick: 6017,
type: 'snare'
}, {
tick: 6025,
type: 'snare'
}, {
tick: 6034,
type: 'crash1'
}, {
tick: 6035,
type: 'kick'
}, {
tick: 6054,
type: 'kick'
}, {
tick: 6063,
type: 'kick'
}, {
tick: 6067,
type: 'hihat'
}, {
tick: 6072,
type: 'snare'
}, {
tick: 6086,
type: 'hihat'
}, {
tick: 6086,
type: 'snare'
}, {
tick: 6103,
type: 'hihat'
}, {
tick: 6103,
type: 'kick'
}, {
tick: 6121,
type: 'kick'
}, {
tick: 6133,
type: 'hihat'
}, {
tick: 6134,
type: 'snare'
}, {
tick: 6151,
type: 'hihat'
}, {
tick: 6151,
type: 'snare'
}, {
tick: 6168,
type: 'hihat'
}, {
tick: 6169,
type: 'kick'
}, {
tick: 6184,
type: 'kick'
}, {
tick: 6193,
type: 'kick'
}, {
tick: 6201,
type: 'hihat'
}, {
tick: 6202,
type: 'snare'
}, {
tick: 6220,
type: 'snare'
}, {
tick: 6220,
type: 'hihat'
}, {
tick: 6237,
type: 'snare'
}, {
tick: 6243,
type: 'snare'
}, {
tick: 6248,
type: 'snare'
}, {
tick: 6254,
type: 'snare'
}, {
tick: 6273,
type: 'tom1'
}, {
tick: 6290,
type: 'tom1'
}, {
tick: 6310,
type: 'kick'
}, {
tick: 6310,
type: 'crash1'
}, {
tick: 6324,
type: 'kick'
}, {
tick: 6324,
type: 'crash1'
}, {
tick: 6374,
type: 'crash1'
}, {
tick: 6374,
type: 'kick'
}, {
tick: 6390,
type: 'kick'
}, {
tick: 6390,
type: 'crash1'
}]
}, {
name: "Medium: Blast Funk-Wet Puppy",
music: "BlastFunkWetPuppy",
notes: [{
tick: 0,
type: 'snare'
}, {
tick: 0,
type: 'hihat'
}, {
tick: 26,
type: 'kick'
}, {
tick: 27,
type: 'hihat'
}, {
tick: 43,
type: 'kick'
}, {
tick: 54,
type: 'hihat'
}, {
tick: 55,
type: 'snare'
}, {
tick: 82,
type: 'hihat'
}, {
tick: 86,
type: 'kick'
}, {
tick: 113,
type: 'snare'
}, {
tick: 113,
type: 'hihat'
}, {
tick: 141,
type: 'kick'
}, {
tick: 143,
type: 'hihat'
}, {
tick: 170,
type: 'snare'
}, {
tick: 171,
type: 'hihat'
}, {
tick: 197,
type: 'hihat'
}, {
tick: 202,
type: 'kick'
}, {
tick: 227,
type: 'snare'
}, {
tick: 227,
type: 'hihat'
}, {
tick: 250,
type: 'kick'
}, {
tick: 255,
type: 'kick'
}, {
tick: 255,
type: 'hihat'
}, {
tick: 270,
type: 'kick'
}, {
tick: 284,
type: 'snare'
}, {
tick: 287,
type: 'hihat'
}, {
tick: 314,
type: 'kick'
}, {
tick: 317,
type: 'hihat'
}, {
tick: 343,
type: 'snare'
}, {
tick: 343,
type: 'hihat'
}, {
tick: 364,
type: 'kick'
}, {
tick: 371,
type: 'kick'
}, {
tick: 373,
type: 'hihat'
}, {
tick: 386,
type: 'kick'
}, {
tick: 400,
type: 'hihat'
}, {
tick: 402,
type: 'snare'
}, {
tick: 417,
type: 'hihat'
}, {
tick: 430,
type: 'hihat'
}, {
tick: 430,
type: 'hihat'
}, {
tick: 431,
type: 'kick'
}, {
tick: 446,
type: 'hihat'
}, {
tick: 459,
type: 'hihat'
}, {
tick: 460,
type: 'snare'
}, {
tick: 482,
type: 'kick'
}, {
tick: 485,
type: 'hihat'
}, {
tick: 488,
type: 'kick'
}, {
tick: 503,
type: 'kick'
}, {
tick: 514,
type: 'hihat'
}, {
tick: 518,
type: 'snare'
}, {
tick: 529,
type: 'hihat'
}, {
tick: 545,
type: 'kick'
}, {
tick: 552,
type: 'hihat'
}, {
tick: 565,
type: 'hihat'
}, {
tick: 571,
type: 'hihat'
}, {
tick: 572,
type: 'snare'
}, {
tick: 587,
type: 'hihat'
}, {
tick: 598,
type: 'kick'
}, {
tick: 601,
type: 'hihat'
}, {
tick: 605,
type: 'kick'
}, {
tick: 616,
type: 'hihat'
}, {
tick: 619,
type: 'kick'
}, {
tick: 630,
type: 'hihat'
}, {
tick: 631,
type: 'snare'
}, {
tick: 645,
type: 'hihat'
}, {
tick: 658,
type: 'hihat'
}, {
tick: 659,
type: 'kick'
}, {
tick: 671,
type: 'hihat'
}, {
tick: 675,
type: 'hihat'
}, {
tick: 687,
type: 'hihat'
}, {
tick: 688,
type: 'snare'
}, {
tick: 701,
type: 'hihat'
}, {
tick: 708,
type: 'kick'
}, {
tick: 714,
type: 'kick'
}, {
tick: 717,
type: 'hihat'
}, {
tick: 730,
type: 'kick'
}, {
tick: 732,
type: 'hihat'
}, {
tick: 744,
type: 'snare'
}, {
tick: 747,
type: 'hihat'
}, {
tick: 761,
type: 'hihat'
}, {
tick: 773,
type: 'kick'
}, {
tick: 774,
type: 'hihat'
}, {
tick: 774,
type: 'hihat'
}, {
tick: 791,
type: 'hihat'
}, {
tick: 803,
type: 'snare'
}, {
tick: 805,
type: 'hihat'
}, {
tick: 820,
type: 'hihat'
}, {
tick: 829,
type: 'kick'
}, {
tick: 835,
type: 'hihat'
}, {
tick: 851,
type: 'hihat'
}, {
tick: 858,
type: 'snare'
}, {
tick: 864,
type: 'hihat'
}, {
tick: 879,
type: 'hihat'
}, {
tick: 887,
type: 'kick'
}, {
tick: 901,
type: 'hihat'
}, {
tick: 916,
type: 'snare'
}, {
tick: 918,
type: 'hihat'
}, {
tick: 929,
type: 'hihat'
}, {
tick: 942,
type: 'hihat'
}, {
tick: 944,
type: 'kick'
}, {
tick: 959,
type: 'hihat'
}, {
tick: 974,
type: 'snare'
}, {
tick: 974,
type: 'hihat'
}, {
tick: 990,
type: 'hihat'
}, {
tick: 1004,
type: 'hihat'
}, {
tick: 1005,
type: 'kick'
}, {
tick: 1020,
type: 'hihat'
}, {
tick: 1033,
type: 'snare'
}, {
tick: 1033,
type: 'hihat'
}, {
tick: 1048,
type: 'hihat'
}, {
tick: 1061,
type: 'kick'
}, {
tick: 1063,
type: 'hihat'
}, {
tick: 1078,
type: 'hihat'
}, {
tick: 1089,
type: 'snare'
}, {
tick: 1093,
type: 'hihat'
}, {
tick: 1108,
type: 'hihat'
}, {
tick: 1117,
type: 'kick'
}, {
tick: 1121,
type: 'hihat'
}, {
tick: 1121,
type: 'hihat'
}, {
tick: 1136,
type: 'hihat'
}, {
tick: 1146,
type: 'snare'
}, {
tick: 1150,
type: 'hihat'
}, {
tick: 1165,
type: 'hihat'
}, {
tick: 1176,
type: 'kick'
}, {
tick: 1180,
type: 'hihat'
}, {
tick: 1194,
type: 'hihat'
}, {
tick: 1204,
type: 'snare'
}, {
tick: 1208,
type: 'hihat'
}, {
tick: 1223,
type: 'hihat'
}, {
tick: 1233,
type: 'kick'
}, {
tick: 1235,
type: 'hihat'
}, {
tick: 1248,
type: 'hihat'
}, {
tick: 1261,
type: 'hihat'
}, {
tick: 1262,
type: 'snare'
}, {
tick: 1275,
type: 'hihat'
}, {
tick: 1288,
type: 'hihat'
}, {
tick: 1290,
type: 'hihat'
}, {
tick: 1291,
type: 'kick'
}, {
tick: 1307,
type: 'hihat'
}, {
tick: 1319,
type: 'snare'
}, {
tick: 1322,
type: 'hihat'
}, {
tick: 1337,
type: 'hihat'
}, {
tick: 1348,
type: 'kick'
}, {
tick: 1351,
type: 'hihat'
}, {
tick: 1365,
type: 'hihat'
}, {
tick: 1377,
type: 'hihat'
}, {
tick: 1379,
type: 'snare'
}, {
tick: 1392,
type: 'hihat'
}, {
tick: 1405,
type: 'hihat'
}, {
tick: 1405,
type: 'hihat'
}, {
tick: 1407,
type: 'kick'
}, {
tick: 1421,
type: 'hihat'
}, {
tick: 1434,
type: 'hihat'
}, {
tick: 1435,
type: 'snare'
}, {
tick: 1451,
type: 'hihat'
}, {
tick: 1464,
type: 'hihat'
}, {
tick: 1466,
type: 'kick'
}, {
tick: 1478,
type: 'hihat'
}, {
tick: 1491,
type: 'hihat'
}, {
tick: 1493,
type: 'snare'
}, {
tick: 1507,
type: 'hihat'
}, {
tick: 1512,
type: 'hihat'
}, {
tick: 1518,
type: 'hihat'
}, {
tick: 1522,
type: 'kick'
}, {
tick: 1533,
type: 'hihat'
}, {
tick: 1548,
type: 'hihat'
}, {
tick: 1551,
type: 'snare'
}, {
tick: 1565,
type: 'hihat'
}, {
tick: 1580,
type: 'kick'
}, {
tick: 1582,
type: 'hihat'
}, {
tick: 1595,
type: 'hihat'
}, {
tick: 1606,
type: 'snare'
}, {
tick: 1609,
type: 'hihat'
}, {
tick: 1623,
type: 'hihat'
}, {
tick: 1635,
type: 'kick'
}, {
tick: 1636,
type: 'hihat'
}, {
tick: 1636,
type: 'hihat'
}, {
tick: 1653,
type: 'hihat'
}, {
tick: 1662,
type: 'snare'
}, {
tick: 1668,
type: 'hihat'
}, {
tick: 1683,
type: 'hihat'
}, {
tick: 1693,
type: 'kick'
}, {
tick: 1695,
type: 'hihat'
}, {
tick: 1708,
type: 'hihat'
}, {
tick: 1722,
type: 'snare'
}, {
tick: 1723,
type: 'hihat'
}, {
tick: 1737,
type: 'hihat'
}, {
tick: 1744,
type: 'kick'
}, {
tick: 1749,
type: 'kick'
}, {
tick: 1752,
type: 'hihat'
}, {
tick: 1764,
type: 'kick'
}, {
tick: 1767,
type: 'hihat'
}, {
tick: 1779,
type: 'snare'
}, {
tick: 1781,
type: 'hihat'
}, {
tick: 1796,
type: 'hihat'
}, {
tick: 1809,
type: 'kick'
}, {
tick: 1811,
type: 'hihat'
}, {
tick: 1825,
type: 'hihat'
}, {
tick: 1839,
type: 'hihat'
}, {
tick: 1840,
type: 'snare'
}, {
tick: 1853,
type: 'hihat'
}, {
tick: 1867,
type: 'hihat'
}, {
tick: 1868,
type: 'kick'
}, {
tick: 1882,
type: 'hihat'
}, {
tick: 1896,
type: 'snare'
}, {
tick: 1896,
type: 'hihat'
}, {
tick: 1911,
type: 'hihat'
}, {
tick: 1924,
type: 'kick'
}, {
tick: 1924,
type: 'hihat'
}, {
tick: 1925,
type: 'hihat'
}, {
tick: 1939,
type: 'hihat'
}, {
tick: 1953,
type: 'hihat'
}, {
tick: 1954,
type: 'snare'
}, {
tick: 1967,
type: 'hihat'
}, {
tick: 1980,
type: 'hihat'
}, {
tick: 1981,
type: 'kick'
}, {
tick: 1996,
type: 'hihat'
}, {
tick: 2007,
type: 'snare'
}, {
tick: 2010,
type: 'hihat'
}, {
tick: 2026,
type: 'hihat'
}, {
tick: 2032,
type: 'hihat'
}, {
tick: 2038,
type: 'hihat'
}, {
tick: 2039,
type: 'kick'
}, {
tick: 2054,
type: 'hihat'
}, {
tick: 2069,
type: 'snare'
}, {
tick: 2069,
type: 'hihat'
}, {
tick: 2083,
type: 'hihat'
}, {
tick: 2097,
type: 'hihat'
}, {
tick: 2100,
type: 'kick'
}, {
tick: 2111,
type: 'hihat'
}, {
tick: 2126,
type: 'snare'
}, {
tick: 2126,
type: 'hihat'
}, {
tick: 2142,
type: 'hihat'
}, {
tick: 2154,
type: 'kick'
}, {
tick: 2154,
type: 'hihat'
}, {
tick: 2155,
type: 'hihat'
}, {
tick: 2168,
type: 'hihat'
}, {
tick: 2183,
type: 'snare'
}, {
tick: 2183,
type: 'hihat'
}, {
tick: 2197,
type: 'hihat'
}, {
tick: 2209,
type: 'kick'
}, {
tick: 2212,
type: 'hihat'
}, {
tick: 2226,
type: 'hihat'
}, {
tick: 2239,
type: 'snare'
}, {
tick: 2239,
type: 'hihat'
}, {
tick: 2262,
type: 'hihat'
}, {
tick: 2270,
type: 'kick'
}, {
tick: 2278,
type: 'hihat'
}, {
tick: 2291,
type: 'hihat'
}, {
tick: 2303,
type: 'snare'
}, {
tick: 2304,
type: 'hihat'
}, {
tick: 2317,
type: 'hihat'
}, {
tick: 2327,
type: 'kick'
}, {
tick: 2330,
type: 'hihat'
}, {
tick: 2343,
type: 'hihat'
}, {
tick: 2355,
type: 'snare'
}, {
tick: 2355,
type: 'hihat'
}, {
tick: 2370,
type: 'hihat'
}, {
tick: 2383,
type: 'hihat'
}, {
tick: 2384,
type: 'kick'
}, {
tick: 2384,
type: 'hihat'
}, {
tick: 2399,
type: 'hihat'
}, {
tick: 2412,
type: 'snare'
}, {
tick: 2414,
type: 'hihat'
}, {
tick: 2429,
type: 'hihat'
}, {
tick: 2434,
type: 'kick'
}, {
tick: 2441,
type: 'kick'
}, {
tick: 2442,
type: 'hihat'
}, {
tick: 2454,
type: 'kick'
}, {
tick: 2458,
type: 'hihat'
}, {
tick: 2467,
type: 'snare'
}, {
tick: 2473,
type: 'hihat'
}, {
tick: 2490,
type: 'hihat'
}, {
tick: 2496,
type: 'kick'
}, {
tick: 2503,
type: 'hihat'
}, {
tick: 2515,
type: 'hihat'
}, {
tick: 2527,
type: 'snare'
}, {
tick: 2530,
type: 'hihat'
}, {
tick: 2545,
type: 'hihat'
}, {
tick: 2554,
type: 'kick'
}, {
tick: 2557,
type: 'hihat'
}, {
tick: 2571,
type: 'hihat'
}, {
tick: 2584,
type: 'snare'
}, {
tick: 2586,
type: 'hihat'
}, {
tick: 2600,
type: 'hihat'
}, {
tick: 2611,
type: 'kick'
}, {
tick: 2613,
type: 'hihat'
}, {
tick: 2629,
type: 'hihat'
}, {
tick: 2639,
type: 'snare'
}, {
tick: 2643,
type: 'hihat'
}, {
tick: 2657,
type: 'hihat'
}, {
tick: 2660,
type: 'kick'
}, {
tick: 2667,
type: 'kick'
}, {
tick: 2671,
type: 'hihat'
}, {
tick: 2682,
type: 'kick'
}, {
tick: 2683,
type: 'hihat'
}, {
tick: 2697,
type: 'snare'
}, {
tick: 2699,
type: 'hihat'
}, {
tick: 2714,
type: 'hihat'
}, {
tick: 2727,
type: 'hihat'
}, {
tick: 2727,
type: 'hihat'
}, {
tick: 2728,
type: 'kick'
}, {
tick: 2742,
type: 'hihat'
}, {
tick: 2758,
type: 'snare'
}, {
tick: 2758,
type: 'hihat'
}, {
tick: 2774,
type: 'hihat'
}, {
tick: 2783,
type: 'kick'
}, {
tick: 2788,
type: 'hihat'
}, {
tick: 2803,
type: 'hihat'
}, {
tick: 2814,
type: 'snare'
}, {
tick: 2816,
type: 'hihat'
}, {
tick: 2829,
type: 'hihat'
}, {
tick: 2842,
type: 'kick'
}, {
tick: 2843,
type: 'hihat'
}, {
tick: 2857,
type: 'hihat'
}, {
tick: 2871,
type: 'snare'
}, {
tick: 2872,
type: 'hihat'
}, {
tick: 2886,
type: 'hihat'
}, {
tick: 2900,
type: 'hihat'
}, {
tick: 2901,
type: 'kick'
}, {
tick: 2916,
type: 'hihat'
}, {
tick: 2930,
type: 'hihat'
}, {
tick: 2932,
type: 'snare'
}, {
tick: 2943,
type: 'hihat'
}, {
tick: 2958,
type: 'kick'
}, {
tick: 2958,
type: 'hihat'
}, {
tick: 2973,
type: 'hihat'
}, {
tick: 2988,
type: 'hihat'
}, {
tick: 2989,
type: 'snare'
}, {
tick: 3003,
type: 'hihat'
}, {
tick: 3015,
type: 'kick'
}, {
tick: 3017,
type: 'hihat'
}, {
tick: 3032,
type: 'hihat'
}, {
tick: 3043,
type: 'snare'
}, {
tick: 3045,
type: 'hihat'
}, {
tick: 3061,
type: 'hihat'
}, {
tick: 3073,
type: 'hihat'
}, {
tick: 3074,
type: 'kick'
}, {
tick: 3088,
type: 'hihat'
}, {
tick: 3102,
type: 'snare'
}, {
tick: 3103,
type: 'hihat'
}, {
tick: 3117,
type: 'hihat'
}, {
tick: 3130,
type: 'hihat'
}, {
tick: 3131,
type: 'hihat'
}, {
tick: 3132,
type: 'kick'
}, {
tick: 3146,
type: 'hihat'
}, {
tick: 3159,
type: 'snare'
}, {
tick: 3159,
type: 'hihat'
}, {
tick: 3175,
type: 'hihat'
}, {
tick: 3188,
type: 'hihat'
}, {
tick: 3191,
type: 'kick'
}, {
tick: 3203,
type: 'hihat'
}, {
tick: 3216,
type: 'hihat'
}, {
tick: 3217,
type: 'snare'
}, {
tick: 3231,
type: 'hihat'
}, {
tick: 3240,
type: 'kick'
}, {
tick: 3244,
type: 'hihat'
}, {
tick: 3245,
type: 'hihat'
}, {
tick: 3246,
type: 'kick'
}, {
tick: 3260,
type: 'kick'
}, {
tick: 3262,
type: 'hihat'
}, {
tick: 3274,
type: 'snare'
}, {
tick: 3275,
type: 'hihat'
}, {
tick: 3288,
type: 'hihat'
}, {
tick: 3302,
type: 'kick'
}, {
tick: 3303,
type: 'hihat'
}, {
tick: 3317,
type: 'hihat'
}, {
tick: 3331,
type: 'snare'
}, {
tick: 3334,
type: 'hihat'
}, {
tick: 3348,
type: 'hihat'
}, {
tick: 3353,
type: 'kick'
}, {
tick: 3360,
type: 'kick'
}, {
tick: 3360,
type: 'hihat'
}, {
tick: 3374,
type: 'kick'
}, {
tick: 3376,
type: 'hihat'
}, {
tick: 3389,
type: 'snare'
}, {
tick: 3390,
type: 'hihat'
}, {
tick: 3405,
type: 'hihat'
}, {
tick: 3419,
type: 'hihat'
}, {
tick: 3420,
type: 'kick'
}, {
tick: 3435,
type: 'hihat'
}, {
tick: 3445,
type: 'snare'
}, {
tick: 3450,
type: 'hihat'
}, {
tick: 3463,
type: 'hihat'
}, {
tick: 3473,
type: 'kick'
}, {
tick: 3477,
type: 'hihat'
}, {
tick: 3490,
type: 'hihat'
}, {
tick: 3491,
type: 'kick'
}, {
tick: 3503,
type: 'hihat'
}, {
tick: 3505,
type: 'snare'
}, {
tick: 3516,
type: 'hihat'
}, {
tick: 3529,
type: 'hihat'
}, {
tick: 3532,
type: 'kick'
}, {
tick: 3542,
type: 'hihat'
}, {
tick: 3557,
type: 'hihat'
}, {
tick: 3562,
type: 'snare'
}, {
tick: 3572,
type: 'hihat'
}, {
tick: 3589,
type: 'kick'
}, {
tick: 3589,
type: 'hihat'
}, {
tick: 3603,
type: 'hihat'
}, {
tick: 3605,
type: 'kick'
}, {
tick: 3618,
type: 'hihat'
}, {
tick: 3620,
type: 'snare'
}, {
tick: 3633,
type: 'hihat'
}, {
tick: 3646,
type: 'hihat'
}, {
tick: 3647,
type: 'kick'
}, {
tick: 3647,
type: 'hihat'
}, {
tick: 3664,
type: 'hihat'
}, {
tick: 3675,
type: 'snare'
}, {
tick: 3677,
type: 'hihat'
}, {
tick: 3692,
type: 'hihat'
}, {
tick: 3704,
type: 'kick'
}, {
tick: 3705,
type: 'hihat'
}, {
tick: 3720,
type: 'hihat'
}, {
tick: 3732,
type: 'snare'
}, {
tick: 3734,
type: 'hihat'
}, {
tick: 3750,
type: 'hihat'
}, {
tick: 3763,
type: 'kick'
}, {
tick: 3765,
type: 'hihat'
}, {
tick: 3781,
type: 'hihat'
}, {
tick: 3791,
type: 'snare'
}, {
tick: 3794,
type: 'hihat'
}, {
tick: 3807,
type: 'hihat'
}, {
tick: 3820,
type: 'kick'
}, {
tick: 3820,
type: 'hihat'
}, {
tick: 3821,
type: 'hihat'
}, {
tick: 3838,
type: 'hihat'
}, {
tick: 3848,
type: 'snare'
}, {
tick: 3851,
type: 'hihat'
}, {
tick: 3864,
type: 'hihat'
}, {
tick: 3877,
type: 'kick'
}, {
tick: 3878,
type: 'hihat'
}, {
tick: 3893,
type: 'hihat'
}, {
tick: 3905,
type: 'snare'
}, {
tick: 3908,
type: 'hihat'
}, {
tick: 3923,
type: 'hihat'
}, {
tick: 3934,
type: 'kick'
}, {
tick: 3936,
type: 'hihat'
}, {
tick: 3937,
type: 'hihat'
}, {
tick: 3952,
type: 'hihat'
}, {
tick: 3963,
type: 'snare'
}, {
tick: 3965,
type: 'hihat'
}, {
tick: 3979,
type: 'hihat'
}, {
tick: 3992,
type: 'kick'
}, {
tick: 3992,
type: 'hihat'
}, {
tick: 4007,
type: 'hihat'
}, {
tick: 4021,
type: 'snare'
}, {
tick: 4022,
type: 'hihat'
}, {
tick: 4035,
type: 'hihat'
}, {
tick: 4042,
type: 'kick'
}, {
tick: 4049,
type: 'kick'
}, {
tick: 4049,
type: 'hihat'
}, {
tick: 4063,
type: 'kick'
}, {
tick: 4064,
type: 'hihat'
}, {
tick: 4077,
type: 'snare'
}, {
tick: 4077,
type: 'hihat'
}, {
tick: 4091,
type: 'hihat'
}, {
tick: 4104,
type: 'hihat'
}, {
tick: 4104,
type: 'hihat'
}, {
tick: 4108,
type: 'kick'
}, {
tick: 4121,
type: 'hihat'
}, {
tick: 4134,
type: 'hihat'
}, {
tick: 4136,
type: 'snare'
}, {
tick: 4149,
type: 'hihat'
}, {
tick: 4164,
type: 'hihat'
}, {
tick: 4166,
type: 'kick'
}, {
tick: 4181,
type: 'hihat'
}, {
tick: 4195,
type: 'snare'
}, {
tick: 4196,
type: 'hihat'
}, {
tick: 4209,
type: 'hihat'
}, {
tick: 4222,
type: 'hihat'
}, {
tick: 4223,
type: 'hihat'
}, {
tick: 4224,
type: 'kick'
}, {
tick: 4237,
type: 'hihat'
}, {
tick: 4251,
type: 'hihat'
}, {
tick: 4253,
type: 'snare'
}, {
tick: 4267,
type: 'hihat'
}, {
tick: 4280,
type: 'hihat'
}, {
tick: 4282,
type: 'kick'
}, {
tick: 4296,
type: 'hihat'
}, {
tick: 4308,
type: 'snare'
}, {
tick: 4310,
type: 'hihat'
}, {
tick: 4323,
type: 'hihat'
}, {
tick: 4336,
type: 'hihat'
}, {
tick: 4337,
type: 'hihat'
}, {
tick: 4338,
type: 'kick'
}, {
tick: 4354,
type: 'hihat'
}, {
tick: 4367,
type: 'snare'
}, {
tick: 4368,
type: 'hihat'
}, {
tick: 4382,
type: 'hihat'
}, {
tick: 4396,
type: 'kick'
}, {
tick: 4397,
type: 'hihat'
}, {
tick: 4411,
type: 'hihat'
}, {
tick: 4424,
type: 'snare'
}, {
tick: 4424,
type: 'hihat'
}, {
tick: 4438,
type: 'hihat'
}, {
tick: 4451,
type: 'hihat'
}, {
tick: 4451,
type: 'hihat'
}, {
tick: 4452,
type: 'kick'
}, {
tick: 4466,
type: 'hihat'
}, {
tick: 4481,
type: 'snare'
}, {
tick: 4482,
type: 'hihat'
}, {
tick: 4494,
type: 'hihat'
}, {
tick: 4503,
type: 'kick'
}, {
tick: 4510,
type: 'kick'
}, {
tick: 4510,
type: 'hihat'
}, {
tick: 4524,
type: 'kick'
}, {
tick: 4525,
type: 'hihat'
}, {
tick: 4538,
type: 'snare'
}, {
tick: 4538,
type: 'hihat'
}, {
tick: 4552,
type: 'hihat'
}, {
tick: 4565,
type: 'hihat'
}, {
tick: 4567,
type: 'kick'
}, {
tick: 4567,
type: 'hihat'
}, {
tick: 4580,
type: 'hihat'
}, {
tick: 4585,
type: 'hihat'
}, {
tick: 4597,
type: 'snare'
}, {
tick: 4599,
type: 'hihat'
}, {
tick: 4613,
type: 'hihat'
}, {
tick: 4624,
type: 'kick'
}, {
tick: 4627,
type: 'hihat'
}, {
tick: 4640,
type: 'hihat'
}, {
tick: 4654,
type: 'snare'
}, {
tick: 4654,
type: 'hihat'
}, {
tick: 4669,
type: 'hihat'
}, {
tick: 4682,
type: 'hihat'
}, {
tick: 4683,
type: 'kick'
}, {
tick: 4683,
type: 'hihat'
}, {
tick: 4696,
type: 'hihat'
}, {
tick: 4710,
type: 'hihat'
}, {
tick: 4711,
type: 'snare'
}, {
tick: 4725,
type: 'hihat'
}, {
tick: 4740,
type: 'hihat'
}, {
tick: 4741,
type: 'kick'
}, {
tick: 4756,
type: 'hihat'
}, {
tick: 4769,
type: 'snare'
}, {
tick: 4771,
type: 'hihat'
}, {
tick: 4785,
type: 'hihat'
}, {
tick: 4797,
type: 'kick'
}, {
tick: 4798,
type: 'hihat'
}, {
tick: 4799,
type: 'hihat'
}, {
tick: 4813,
type: 'hihat'
}, {
tick: 4827,
type: 'snare'
}, {
tick: 4828,
type: 'hihat'
}, {
tick: 4842,
type: 'hihat'
}, {
tick: 4856,
type: 'kick'
}, {
tick: 4857,
type: 'hihat'
}, {
tick: 4871,
type: 'hihat'
}, {
tick: 4884,
type: 'snare'
}, {
tick: 4884,
type: 'hihat'
}, {
tick: 4898,
type: 'hihat'
}, {
tick: 4911,
type: 'hihat'
}, {
tick: 4914,
type: 'kick'
}, {
tick: 4927,
type: 'hihat'
}, {
tick: 4941,
type: 'snare'
}, {
tick: 4942,
type: 'hihat'
}, {
tick: 4956,
type: 'hihat'
}, {
tick: 4962,
type: 'kick'
}, {
tick: 4969,
type: 'kick'
}, {
tick: 4971,
type: 'hihat'
}, {
tick: 4983,
type: 'kick'
}, {
tick: 4985,
type: 'hihat'
}, {
tick: 4996,
type: 'snare'
}, {
tick: 5001,
type: 'hihat'
}, {
tick: 5014,
type: 'hihat'
}, {
tick: 5027,
type: 'kick'
}, {
tick: 5027,
type: 'hihat'
}, {
tick: 5027,
type: 'hihat'
}, {
tick: 5041,
type: 'hihat'
}, {
tick: 5055,
type: 'snare'
}, {
tick: 5056,
type: 'hihat'
}, {
tick: 5071,
type: 'hihat'
}, {
tick: 5079,
type: 'kick'
}, {
tick: 5085,
type: 'hihat'
}, {
tick: 5099,
type: 'kick'
}, {
tick: 5100,
type: 'hihat'
}, {
tick: 5114,
type: 'hihat'
}, {
tick: 5115,
type: 'snare'
}, {
tick: 5128,
type: 'hihat'
}, {
tick: 5141,
type: 'hihat'
}, {
tick: 5141,
type: 'hihat'
}, {
tick: 5143,
type: 'kick'
}, {
tick: 5158,
type: 'hihat'
}, {
tick: 5171,
type: 'snare'
}, {
tick: 5173,
type: 'hihat'
}, {
tick: 5187,
type: 'hihat'
}, {
tick: 5200,
type: 'kick'
}, {
tick: 5202,
type: 'hihat'
}, {
tick: 5217,
type: 'hihat'
}, {
tick: 5229,
type: 'snare'
}, {
tick: 5231,
type: 'hihat'
}, {
tick: 5244,
type: 'hihat'
}, {
tick: 5257,
type: 'hihat'
}, {
tick: 5257,
type: 'hihat'
}, {
tick: 5258,
type: 'kick'
}, {
tick: 5272,
type: 'hihat'
}, {
tick: 5286,
type: 'snare'
}, {
tick: 5286,
type: 'hihat'
}, {
tick: 5301,
type: 'hihat'
}, {
tick: 5314,
type: 'kick'
}, {
tick: 5317,
type: 'hihat'
}, {
tick: 5330,
type: 'hihat'
}, {
tick: 5341,
type: 'snare'
}, {
tick: 5345,
type: 'hihat'
}, {
tick: 5360,
type: 'hihat'
}, {
tick: 5371,
type: 'hihat'
}, {
tick: 5372,
type: 'kick'
}, {
tick: 5384,
type: 'hihat'
}, {
tick: 5397,
type: 'hihat'
}, {
tick: 5399,
type: 'snare'
}, {
tick: 5410,
type: 'hihat'
}, {
tick: 5420,
type: 'kick'
}, {
tick: 5423,
type: 'hihat'
}, {
tick: 5427,
type: 'kick'
}, {
tick: 5436,
type: 'hihat'
}, {
tick: 5442,
type: 'kick'
}, {
tick: 5457,
type: 'snare'
}, {
tick: 5459,
type: 'hihat'
}, {
tick: 5486,
type: 'hihat'
}, {
tick: 5488,
type: 'kick'
}, {
tick: 5516,
type: 'hihat'
}, {
tick: 5517,
type: 'snare'
}, {
tick: 5545,
type: 'hihat'
}, {
tick: 5547,
type: 'kick'
}, {
tick: 5573,
type: 'snare'
}, {
tick: 5573,
type: 'hihat'
}, {
tick: 5588,
type: 'hihat'
}, {
tick: 5601,
type: 'hihat'
}, {
tick: 5602,
type: 'kick'
}, {
tick: 5614,
type: 'hihat'
}, {
tick: 5629,
type: 'hihat'
}, {
tick: 5630,
type: 'snare'
}, {
tick: 5652,
type: 'kick'
}, {
tick: 5658,
type: 'kick'
}, {
tick: 5658,
type: 'hihat'
}, {
tick: 5674,
type: 'kick'
}, {
tick: 5686,
type: 'hihat'
}, {
tick: 5689,
type: 'snare'
}, {
tick: 5709,
type: 'hihat'
}, {
tick: 5718,
type: 'kick'
}, {
tick: 5725,
type: 'hihat'
}, {
tick: 5731,
type: 'hihat'
}, {
tick: 5746,
type: 'hihat'
}, {
tick: 5747,
type: 'snare'
}, {
tick: 5760,
type: 'hihat'
}, {
tick: 5769,
type: 'kick'
}, {
tick: 5775,
type: 'kick'
}, {
tick: 5775,
type: 'hihat'
}, {
tick: 5789,
type: 'kick'
}, {
tick: 5803,
type: 'hihat'
}, {
tick: 5804,
type: 'snare'
}, {
tick: 5825,
type: 'hihat'
}, {
tick: 5833,
type: 'kick'
}, {
tick: 5842,
type: 'hihat'
}, {
tick: 5848,
type: 'hihat'
}, {
tick: 5861,
type: 'snare'
}, {
tick: 5861,
type: 'hihat'
}, {
tick: 5885,
type: 'kick'
}, {
tick: 5890,
type: 'hihat'
}, {
tick: 5904,
type: 'kick'
}, {
tick: 5917,
type: 'hihat'
}, {
tick: 5918,
type: 'snare'
}, {
tick: 5934,
type: 'hihat'
}, {
tick: 5940,
type: 'hihat'
}, {
tick: 5945,
type: 'kick'
}, {
tick: 5946,
type: 'hihat'
}, {
tick: 5961,
type: 'hihat'
}, {
tick: 5974,
type: 'snare'
}, {
tick: 5977,
type: 'hihat'
}, {
tick: 5995,
type: 'kick'
}, {
tick: 6002,
type: 'kick'
}, {
tick: 6006,
type: 'hihat'
}, {
tick: 6018,
type: 'kick'
}, {
tick: 6030,
type: 'hihat'
}, {
tick: 6033,
type: 'snare'
}, {
tick: 6045,
type: 'hihat'
}, {
tick: 6058,
type: 'hihat'
}, {
tick: 6061,
type: 'hihat'
}, {
tick: 6062,
type: 'kick'
}, {
tick: 6074,
type: 'hihat'
}, {
tick: 6089,
type: 'snare'
}, {
tick: 6090,
type: 'hihat'
}, {
tick: 6105,
type: 'hihat'
}, {
tick: 6110,
type: 'kick'
}, {
tick: 6117,
type: 'kick'
}, {
tick: 6118,
type: 'hihat'
}, {
tick: 6132,
type: 'kick'
}, {
tick: 6133,
type: 'hihat'
}, {
tick: 6147,
type: 'snare'
}, {
tick: 6147,
type: 'hihat'
}, {
tick: 6161,
type: 'hihat'
}, {
tick: 6174,
type: 'hihat'
}, {
tick: 6174,
type: 'hihat'
}, {
tick: 6176,
type: 'kick'
}, {
tick: 6187,
type: 'hihat'
}, {
tick: 6200,
type: 'hihat'
}, {
tick: 6206,
type: 'snare'
}, {
tick: 6213,
type: 'hihat'
}, {
tick: 6226,
type: 'hihat'
}, {
tick: 6228,
type: 'kick'
}, {
tick: 6235,
type: 'kick'
}, {
tick: 6239,
type: 'hihat'
}, {
tick: 6250,
type: 'kick'
}, {
tick: 6251,
type: 'hihat'
}, {
tick: 6263,
type: 'hihat'
}, {
tick: 6264,
type: 'snare'
}, {
tick: 6278,
type: 'hihat'
}, {
tick: 6284,
type: 'hihat'
}, {
tick: 6289,
type: 'kick'
}, {
tick: 6301,
type: 'hihat'
}, {
tick: 6316,
type: 'hihat'
}, {
tick: 6320,
type: 'snare'
}, {
tick: 6344,
type: 'kick'
}, {
tick: 6348,
type: 'hihat'
}, {
tick: 6362,
type: 'hihat'
}, {
tick: 6365,
type: 'kick'
}, {
tick: 6377,
type: 'hihat'
}, {
tick: 6380,
type: 'snare'
}, {
tick: 6391,
type: 'hihat'
}, {
tick: 6405,
type: 'hihat'
}, {
tick: 6408,
type: 'kick'
}, {
tick: 6421,
type: 'hihat'
}, {
tick: 6435,
type: 'hihat'
}, {
tick: 6437,
type: 'snare'
}, {
tick: 6450,
type: 'hihat'
}, {
tick: 6465,
type: 'kick'
}, {
tick: 6465,
type: 'hihat'
}, {
tick: 6480,
type: 'hihat'
}, {
tick: 6494,
type: 'snare'
}, {
tick: 6494,
type: 'hihat'
}, {
tick: 6509,
type: 'hihat'
}, {
tick: 6521,
type: 'kick'
}, {
tick: 6522,
type: 'hihat'
}, {
tick: 6535,
type: 'hihat'
}, {
tick: 6551,
type: 'snare'
}, {
tick: 6551,
type: 'hihat'
}, {
tick: 6566,
type: 'hihat'
}, {
tick: 6576,
type: 'kick'
}, {
tick: 6579,
type: 'hihat'
}, {
tick: 6583,
type: 'kick'
}, {
tick: 6593,
type: 'hihat'
}, {
tick: 6596,
type: 'kick'
}, {
tick: 6607,
type: 'hihat'
}, {
tick: 6610,
type: 'snare'
}, {
tick: 6622,
type: 'hihat'
}, {
tick: 6635,
type: 'hihat'
}, {
tick: 6637,
type: 'kick'
}, {
tick: 6650,
type: 'hihat'
}, {
tick: 6665,
type: 'snare'
}, {
tick: 6665,
type: 'hihat'
}, {
tick: 6686,
type: 'kick'
}, {
tick: 6692,
type: 'kick'
}, {
tick: 6692,
type: 'hihat'
}, {
tick: 6707,
type: 'hihat'
}, {
tick: 6708,
type: 'kick'
}, {
tick: 6720,
type: 'hihat'
}, {
tick: 6724,
type: 'snare'
}, {
tick: 6734,
type: 'hihat'
}, {
tick: 6748,
type: 'hihat'
}, {
tick: 6752,
type: 'kick'
}, {
tick: 6763,
type: 'hihat'
}, {
tick: 6779,
type: 'snare'
}, {
tick: 6780,
type: 'hihat'
}, {
tick: 6794,
type: 'hihat'
}, {
tick: 6803,
type: 'kick'
}, {
tick: 6808,
type: 'hihat'
}, {
tick: 6809,
type: 'kick'
}, {
tick: 6824,
type: 'kick'
}, {
tick: 6824,
type: 'hihat'
}, {
tick: 6836,
type: 'hihat'
}, {
tick: 6839,
type: 'snare'
}, {
tick: 6850,
type: 'hihat'
}, {
tick: 6863,
type: 'hihat'
}, {
tick: 6866,
type: 'kick'
}, {
tick: 6874,
type: 'hihat'
}, {
tick: 6889,
type: 'hihat'
}, {
tick: 6895,
type: 'snare'
}, {
tick: 6905,
type: 'hihat'
}, {
tick: 6920,
type: 'hihat'
}, {
tick: 6924,
type: 'kick'
}, {
tick: 6935,
type: 'hihat'
}, {
tick: 6950,
type: 'snare'
}, {
tick: 6950,
type: 'hihat'
}, {
tick: 6963,
type: 'hihat'
}, {
tick: 6977,
type: 'hihat'
}, {
tick: 6979,
type: 'kick'
}, {
tick: 6991,
type: 'hihat'
}, {
tick: 7008,
type: 'hihat'
}, {
tick: 7010,
type: 'snare'
}, {
tick: 7024,
type: 'hihat'
}, {
tick: 7038,
type: 'kick'
}, {
tick: 7039,
type: 'hihat'
}, {
tick: 7051,
type: 'hihat'
}, {
tick: 7066,
type: 'hihat'
}, {
tick: 7067,
type: 'snare'
}, {
tick: 7081,
type: 'hihat'
}, {
tick: 7094,
type: 'hihat'
}, {
tick: 7095,
type: 'kick'
}, {
tick: 7095,
type: 'hihat'
}, {
tick: 7110,
type: 'hihat'
}, {
tick: 7126,
type: 'snare'
}, {
tick: 7127,
type: 'hihat'
}, {
tick: 7142,
type: 'hihat'
}, {
tick: 7154,
type: 'kick'
}, {
tick: 7155,
type: 'hihat'
}, {
tick: 7169,
type: 'hihat'
}, {
tick: 7172,
type: 'kick'
}, {
tick: 7182,
type: 'hihat'
}, {
tick: 7185,
type: 'snare'
}, {
tick: 7196,
type: 'hihat'
}, {
tick: 7211,
type: 'hihat'
}, {
tick: 7213,
type: 'kick'
}, {
tick: 7224,
type: 'hihat'
}, {
tick: 7239,
type: 'snare'
}, {
tick: 7240,
type: 'hihat'
}, {
tick: 7254,
type: 'hihat'
}, {
tick: 7264,
type: 'kick'
}, {
tick: 7269,
type: 'hihat'
}, {
tick: 7282,
type: 'kick'
}, {
tick: 7285,
type: 'hihat'
}, {
tick: 7287,
type: 'kick'
}, {
tick: 7299,
type: 'hihat'
}, {
tick: 7307,
type: 'snare'
}, {
tick: 7313,
type: 'hihat'
}, {
tick: 7327,
type: 'hihat'
}, {
tick: 7341,
type: 'hihat'
}, {
tick: 7356,
type: 'hihat'
}, {
tick: 7360,
type: 'snare'
}, {
tick: 7371,
type: 'hihat'
}, {
tick: 7384,
type: 'hihat'
}, {
tick: 7399,
type: 'hihat'
}, {
tick: 7411,
type: 'snare'
}, {
tick: 7412,
type: 'hihat'
}, {
tick: 7429,
type: 'hihat'
}, {
tick: 7442,
type: 'kick'
}, {
tick: 7442,
type: 'hihat'
}, {
tick: 7455,
type: 'hihat'
}, {
tick: 7468,
type: 'snare'
}, {
tick: 7469,
type: 'hihat'
}, {
tick: 7484,
type: 'hihat'
}, {
tick: 7492,
type: 'kick'
}, {
tick: 7497,
type: 'hihat'
}, {
tick: 7498,
type: 'hihat'
}, {
tick: 7509,
type: 'kick'
}, {
tick: 7515,
type: 'hihat'
}, {
tick: 7517,
type: 'kick'
}, {
tick: 7528,
type: 'snare'
}, {
tick: 7528,
type: 'hihat'
}, {
tick: 7540,
type: 'hihat'
}, {
tick: 7553,
type: 'hihat'
}, {
tick: 7555,
type: 'kick'
}, {
tick: 7567,
type: 'hihat'
}, {
tick: 7581,
type: 'hihat'
}, {
tick: 7582,
type: 'snare'
}, {
tick: 7598,
type: 'hihat'
}, {
tick: 7605,
type: 'kick'
}, {
tick: 7612,
type: 'hihat'
}, {
tick: 7623,
type: 'kick'
}, {
tick: 7626,
type: 'hihat'
}, {
tick: 7631,
type: 'kick'
}, {
tick: 7641,
type: 'hihat'
}, {
tick: 7643,
type: 'snare'
}, {
tick: 7657,
type: 'hihat'
}, {
tick: 7671,
type: 'kick'
}, {
tick: 7671,
type: 'hihat'
}, {
tick: 7685,
type: 'hihat'
}, {
tick: 7700,
type: 'snare'
}, {
tick: 7700,
type: 'hihat'
}, {
tick: 7717,
type: 'hihat'
}, {
tick: 7724,
type: 'kick'
}, {
tick: 7740,
type: 'kick'
}, {
tick: 7746,
type: 'kick'
}, {
tick: 7758,
type: 'snare'
}]
}, {
name: "Easy: AB/CD Back in Track",
music: "ABCDBackinDark",
notes: [{
tick: 40,
type: 'kick'
}, {
tick: 40,
type: 'crash1'
}, {
tick: 58,
type: 'hihat'
}, {
tick: 77,
type: 'hihat'
}, {
tick: 78,
type: 'snare'
}, {
tick: 95,
type: 'hihat'
}, {
tick: 113,
type: 'hihat'
}, {
tick: 114,
type: 'kick'
}, {
tick: 131,
type: 'hihat'
}, {
tick: 149,
type: 'snare'
}, {
tick: 149,
type: 'hihat'
}, {
tick: 168,
type: 'hihat'
}, {
tick: 185,
type: 'kick'
}, {
tick: 185,
type: 'hihat'
}, {
tick: 202,
type: 'hihat'
}, {
tick: 220,
type: 'hihat'
}, {
tick: 220,
type: 'snare'
}, {
tick: 237,
type: 'hihat'
}, {
tick: 256,
type: 'hihat'
}, {
tick: 257,
type: 'kick'
}, {
tick: 276,
type: 'hihat'
}, {
tick: 292,
type: 'snare'
}, {
tick: 293,
type: 'hihat'
}, {
tick: 311,
type: 'hihat'
}, {
tick: 329,
type: 'hihat'
}, {
tick: 329,
type: 'kick'
}, {
tick: 346,
type: 'hihat'
}, {
tick: 363,
type: 'hihat'
}, {
tick: 364,
type: 'snare'
}, {
tick: 382,
type: 'hihat'
}, {
tick: 400,
type: 'hihat'
}, {
tick: 400,
type: 'kick'
}, {
tick: 419,
type: 'hihat'
}, {
tick: 437,
type: 'hihat'
}, {
tick: 438,
type: 'snare'
}, {
tick: 455,
type: 'hihat'
}, {
tick: 473,
type: 'hihat'
}, {
tick: 473,
type: 'kick'
}, {
tick: 490,
type: 'hihat'
}, {
tick: 508,
type: 'snare'
}, {
tick: 515,
type: 'tom1'
}, {
tick: 537,
type: 'snare'
}, {
tick: 543,
type: 'tom1'
}, {
tick: 567,
type: 'snare'
}, {
tick: 572,
type: 'tom1'
}, {
tick: 594,
type: 'snare'
}, {
tick: 598,
type: 'tom1'
}, {
tick: 622,
type: 'crash1'
}, {
tick: 622,
type: 'kick'
}, {
tick: 643,
type: 'hihat'
}, {
tick: 658,
type: 'snare'
}, {
tick: 658,
type: 'hihat'
}, {
tick: 676,
type: 'hihat'
}, {
tick: 694,
type: 'hihat'
}, {
tick: 694,
type: 'kick'
}, {
tick: 711,
type: 'hihat'
}, {
tick: 729,
type: 'snare'
}, {
tick: 731,
type: 'hihat'
}, {
tick: 750,
type: 'hihat'
}, {
tick: 767,
type: 'hihat'
}, {
tick: 768,
type: 'kick'
}, {
tick: 783,
type: 'hihat'
}, {
tick: 803,
type: 'hihat'
}, {
tick: 803,
type: 'snare'
}, {
tick: 821,
type: 'hihat'
}, {
tick: 838,
type: 'hihat'
}, {
tick: 838,
type: 'kick'
}, {
tick: 854,
type: 'hihat'
}, {
tick: 872,
type: 'snare'
}, {
tick: 872,
type: 'hihat'
}, {
tick: 890,
type: 'hihat'
}, {
tick: 908,
type: 'hihat'
}, {
tick: 910,
type: 'kick'
}, {
tick: 927,
type: 'hihat'
}, {
tick: 944,
type: 'snare'
}, {
tick: 945,
type: 'hihat'
}, {
tick: 965,
type: 'hihat'
}, {
tick: 982,
type: 'hihat'
}, {
tick: 982,
type: 'kick'
}, {
tick: 1001,
type: 'hihat'
}, {
tick: 1018,
type: 'snare'
}, {
tick: 1018,
type: 'hihat'
}, {
tick: 1037,
type: 'hihat'
}, {
tick: 1055,
type: 'hihat'
}, {
tick: 1056,
type: 'kick'
}, {
tick: 1072,
type: 'hihat'
}, {
tick: 1091,
type: 'snare'
}, {
tick: 1098,
type: 'tom1'
}, {
tick: 1120,
type: 'snare'
}, {
tick: 1126,
type: 'tom1'
}, {
tick: 1148,
type: 'snare'
}, {
tick: 1153,
type: 'tom1'
}, {
tick: 1175,
type: 'snare'
}, {
tick: 1181,
type: 'tom1'
}, {
tick: 1203,
type: 'kick'
}, {
tick: 1203,
type: 'crash1'
}, {
tick: 1221,
type: 'hihat'
}, {
tick: 1240,
type: 'hihat'
}, {
tick: 1240,
type: 'snare'
}, {
tick: 1259,
type: 'hihat'
}, {
tick: 1275,
type: 'hihat'
}, {
tick: 1275,
type: 'kick'
}, {
tick: 1293,
type: 'hihat'
}, {
tick: 1310,
type: 'snare'
}, {
tick: 1310,
type: 'hihat'
}, {
tick: 1330,
type: 'hihat'
}, {
tick: 1348,
type: 'hihat'
}, {
tick: 1348,
type: 'kick'
}, {
tick: 1365,
type: 'hihat'
}, {
tick: 1384,
type: 'hihat'
}, {
tick: 1385,
type: 'snare'
}, {
tick: 1403,
type: 'hihat'
}, {
tick: 1422,
type: 'hihat'
}, {
tick: 1422,
type: 'kick'
}, {
tick: 1438,
type: 'hihat'
}, {
tick: 1457,
type: 'hihat'
}, {
tick: 1458,
type: 'snare'
}, {
tick: 1474,
type: 'hihat'
}, {
tick: 1492,
type: 'hihat'
}, {
tick: 1493,
type: 'kick'
}, {
tick: 1511,
type: 'hihat'
}, {
tick: 1529,
type: 'hihat'
}, {
tick: 1529,
type: 'snare'
}, {
tick: 1548,
type: 'hihat'
}, {
tick: 1566,
type: 'hihat'
}, {
tick: 1566,
type: 'kick'
}, {
tick: 1584,
type: 'hihat'
}, {
tick: 1602,
type: 'hihat'
}, {
tick: 1603,
type: 'snare'
}, {
tick: 1619,
type: 'hihat'
}, {
tick: 1637,
type: 'hihat'
}, {
tick: 1639,
type: 'kick'
}, {
tick: 1656,
type: 'hihat'
}, {
tick: 1677,
type: 'snare'
}, {
tick: 1682,
type: 'tom1'
}, {
tick: 1704,
type: 'snare'
}, {
tick: 1709,
type: 'tom1'
}, {
tick: 1729,
type: 'snare'
}, {
tick: 1735,
type: 'tom1'
}, {
tick: 1755,
type: 'snare'
}, {
tick: 1761,
type: 'tom1'
}, {
tick: 1783,
type: 'crash1'
}, {
tick: 1784,
type: 'kick'
}, {
tick: 1801,
type: 'hihat'
}, {
tick: 1818,
type: 'snare'
}, {
tick: 1820,
type: 'hihat'
}, {
tick: 1838,
type: 'hihat'
}, {
tick: 1856,
type: 'hihat'
}, {
tick: 1857,
type: 'kick'
}, {
tick: 1874,
type: 'hihat'
}, {
tick: 1890,
type: 'snare'
}, {
tick: 1891,
type: 'hihat'
}, {
tick: 1909,
type: 'hihat'
}, {
tick: 1926,
type: 'hihat'
}, {
tick: 1928,
type: 'kick'
}, {
tick: 1945,
type: 'hihat'
}, {
tick: 1960,
type: 'hihat'
}, {
tick: 1960,
type: 'snare'
}, {
tick: 1981,
type: 'hihat'
}, {
tick: 2001,
type: 'hihat'
}, {
tick: 2001,
type: 'kick'
}, {
tick: 2018,
type: 'hihat'
}, {
tick: 2037,
type: 'snare'
}, {
tick: 2037,
type: 'hihat'
}, {
tick: 2055,
type: 'hihat'
}, {
tick: 2074,
type: 'kick'
}, {
tick: 2075,
type: 'hihat'
}, {
tick: 2091,
type: 'hihat'
}, {
tick: 2109,
type: 'snare'
}, {
tick: 2109,
type: 'hihat'
}, {
tick: 2127,
type: 'hihat'
}, {
tick: 2144,
type: 'hihat'
}, {
tick: 2144,
type: 'kick'
}, {
tick: 2162,
type: 'hihat'
}, {
tick: 2181,
type: 'hihat'
}, {
tick: 2182,
type: 'snare'
}, {
tick: 2199,
type: 'hihat'
}, {
tick: 2217,
type: 'hihat'
}, {
tick: 2217,
type: 'kick'
}, {
tick: 2235,
type: 'hihat'
}, {
tick: 2254,
type: 'snare'
}, {
tick: 2261,
type: 'tom1'
}, {
tick: 2281,
type: 'snare'
}, {
tick: 2288,
type: 'tom1'
}, {
tick: 2310,
type: 'snare'
}, {
tick: 2316,
type: 'tom1'
}, {
tick: 2336,
type: 'snare'
}, {
tick: 2342,
type: 'tom1'
}, {
tick: 2363,
type: 'crash1'
}, {
tick: 2364,
type: 'kick'
}, {
tick: 2382,
type: 'hihat'
}, {
tick: 2400,
type: 'snare'
}, {
tick: 2401,
type: 'hihat'
}, {
tick: 2418,
type: 'hihat'
}, {
tick: 2436,
type: 'kick'
}, {
tick: 2437,
type: 'hihat'
}, {
tick: 2455,
type: 'hihat'
}, {
tick: 2472,
type: 'snare'
}, {
tick: 2472,
type: 'hihat'
}, {
tick: 2492,
type: 'hihat'
}, {
tick: 2511,
type: 'crash1'
}, {
tick: 2511,
type: 'kick'
}, {
tick: 2533,
type: 'hihat'
}, {
tick: 2547,
type: 'snare'
}, {
tick: 2548,
type: 'hihat'
}, {
tick: 2564,
type: 'hihat'
}, {
tick: 2582,
type: 'hihat'
}, {
tick: 2582,
type: 'kick'
}, {
tick: 2598,
type: 'hihat'
}, {
tick: 2616,
type: 'snare'
}, {
tick: 2617,
type: 'hihat'
}, {
tick: 2636,
type: 'hihat'
}, {
tick: 2655,
type: 'crash1'
}, {
tick: 2655,
type: 'kick'
}, {
tick: 2676,
type: 'hihat'
}, {
tick: 2691,
type: 'snare'
}, {
tick: 2691,
type: 'hihat'
}, {
tick: 2708,
type: 'hihat'
}, {
tick: 2726,
type: 'kick'
}, {
tick: 2726,
type: 'hihat'
}, {
tick: 2745,
type: 'hihat'
}, {
tick: 2762,
type: 'snare'
}, {
tick: 2762,
type: 'hihat'
}, {
tick: 2778,
type: 'hihat'
}, {
tick: 2798,
type: 'kick'
}, {
tick: 2799,
type: 'crash1'
}, {
tick: 2816,
type: 'hihat'
}, {
tick: 2835,
type: 'hihat'
}, {
tick: 2835,
type: 'snare'
}, {
tick: 2854,
type: 'hihat'
}, {
tick: 2871,
type: 'kick'
}, {
tick: 2871,
type: 'hihat'
}, {
tick: 2891,
type: 'hihat'
}, {
tick: 2908,
type: 'hihat'
}, {
tick: 2908,
type: 'snare'
}, {
tick: 2924,
type: 'hihat'
}, {
tick: 2942,
type: 'crash1'
}, {
tick: 2943,
type: 'kick'
}, {
tick: 2962,
type: 'hihat'
}, {
tick: 2981,
type: 'hihat'
}, {
tick: 2981,
type: 'snare'
}, {
tick: 2998,
type: 'hihat'
}, {
tick: 3017,
type: 'kick'
}, {
tick: 3017,
type: 'hihat'
}, {
tick: 3034,
type: 'hihat'
}, {
tick: 3052,
type: 'hihat'
}, {
tick: 3052,
type: 'snare'
}, {
tick: 3071,
type: 'hihat'
}, {
tick: 3088,
type: 'crash1'
}, {
tick: 3089,
type: 'kick'
}, {
tick: 3107,
type: 'hihat'
}, {
tick: 3124,
type: 'snare'
}, {
tick: 3125,
type: 'hihat'
}, {
tick: 3143,
type: 'hihat'
}, {
tick: 3161,
type: 'kick'
}, {
tick: 3161,
type: 'hihat'
}, {
tick: 3178,
type: 'hihat'
}, {
tick: 3197,
type: 'snare'
}, {
tick: 3198,
type: 'hihat'
}, {
tick: 3216,
type: 'hihat'
}, {
tick: 3232,
type: 'crash1'
}, {
tick: 3233,
type: 'kick'
}, {
tick: 3251,
type: 'hihat'
}, {
tick: 3269,
type: 'snare'
}, {
tick: 3269,
type: 'hihat'
}, {
tick: 3286,
type: 'hihat'
}, {
tick: 3305,
type: 'kick'
}, {
tick: 3305,
type: 'hihat'
}, {
tick: 3323,
type: 'hihat'
}, {
tick: 3341,
type: 'snare'
}, {
tick: 3342,
type: 'hihat'
}, {
tick: 3360,
type: 'hihat'
}, {
tick: 3377,
type: 'kick'
}, {
tick: 3377,
type: 'crash1'
}, {
tick: 3405,
type: 'crash1'
}, {
tick: 3405,
type: 'kick'
}, {
tick: 3432,
type: 'crash1'
}, {
tick: 3432,
type: 'kick'
}, {
tick: 3481,
type: 'snare'
}, {
tick: 3524,
type: 'crash1'
}, {
tick: 3524,
type: 'kick'
}, {
tick: 3543,
type: 'hihat'
}, {
tick: 3561,
type: 'hihat'
}, {
tick: 3561,
type: 'snare'
}, {
tick: 3580,
type: 'hihat'
}, {
tick: 3598,
type: 'hihat'
}, {
tick: 3599,
type: 'kick'
}, {
tick: 3617,
type: 'hihat'
}, {
tick: 3634,
type: 'snare'
}, {
tick: 3634,
type: 'hihat'
}, {
tick: 3652,
type: 'hihat'
}, {
tick: 3671,
type: 'hihat'
}, {
tick: 3671,
type: 'kick'
}, {
tick: 3691,
type: 'hihat'
}, {
tick: 3707,
type: 'snare'
}, {
tick: 3707,
type: 'hihat'
}, {
tick: 3725,
type: 'hihat'
}, {
tick: 3742,
type: 'hihat'
}, {
tick: 3743,
type: 'kick'
}, {
tick: 3761,
type: 'hihat'
}, {
tick: 3780,
type: 'snare'
}, {
tick: 3780,
type: 'hihat'
}, {
tick: 3796,
type: 'hihat'
}, {
tick: 3817,
type: 'hihat'
}, {
tick: 3818,
type: 'kick'
}, {
tick: 3833,
type: 'hihat'
}, {
tick: 3851,
type: 'hihat'
}, {
tick: 3852,
type: 'snare'
}, {
tick: 3869,
type: 'hihat'
}, {
tick: 3887,
type: 'hihat'
}, {
tick: 3887,
type: 'kick'
}, {
tick: 3905,
type: 'hihat'
}, {
tick: 3923,
type: 'hihat'
}, {
tick: 3923,
type: 'snare'
}, {
tick: 3939,
type: 'hihat'
}, {
tick: 3957,
type: 'hihat'
}, {
tick: 3957,
type: 'kick'
}, {
tick: 3976,
type: 'hihat'
}, {
tick: 3998,
type: 'snare'
}, {
tick: 4026,
type: 'snare'
}, {
tick: 4030,
type: 'tom1'
}, {
tick: 4052,
type: 'snare'
}, {
tick: 4058,
type: 'tom1'
}, {
tick: 4080,
type: 'snare'
}, {
tick: 4086,
type: 'tom1'
}, {
tick: 4105,
type: 'kick'
}, {
tick: 4106,
type: 'crash1'
}, {
tick: 4125,
type: 'hihat'
}, {
tick: 4143,
type: 'hihat'
}, {
tick: 4143,
type: 'snare'
}, {
tick: 4161,
type: 'hihat'
}, {
tick: 4178,
type: 'kick'
}, {
tick: 4180,
type: 'hihat'
}, {
tick: 4197,
type: 'hihat'
}, {
tick: 4215,
type: 'snare'
}, {
tick: 4215,
type: 'hihat'
}, {
tick: 4233,
type: 'hihat'
}, {
tick: 4250,
type: 'kick'
}, {
tick: 4251,
type: 'hihat'
}, {
tick: 4269,
type: 'hihat'
}, {
tick: 4287,
type: 'snare'
}, {
tick: 4288,
type: 'hihat'
}, {
tick: 4306,
type: 'hihat'
}, {
tick: 4324,
type: 'hihat'
}, {
tick: 4325,
type: 'kick'
}, {
tick: 4343,
type: 'hihat'
}, {
tick: 4360,
type: 'hihat'
}, {
tick: 4361,
type: 'snare'
}, {
tick: 4380,
type: 'hihat'
}, {
tick: 4397,
type: 'kick'
}, {
tick: 4398,
type: 'hihat'
}, {
tick: 4416,
type: 'hihat'
}, {
tick: 4433,
type: 'hihat'
}, {
tick: 4434,
type: 'snare'
}, {
tick: 4451,
type: 'hihat'
}, {
tick: 4470,
type: 'hihat'
}, {
tick: 4471,
type: 'kick'
}, {
tick: 4488,
type: 'hihat'
}, {
tick: 4505,
type: 'hihat'
}, {
tick: 4505,
type: 'snare'
}, {
tick: 4524,
type: 'hihat'
}, {
tick: 4541,
type: 'hihat'
}, {
tick: 4542,
type: 'kick'
}, {
tick: 4558,
type: 'hihat'
}, {
tick: 4572,
type: 'snare'
}, {
tick: 4584,
type: 'tom1'
}, {
tick: 4608,
type: 'snare'
}, {
tick: 4614,
type: 'tom1'
}, {
tick: 4638,
type: 'snare'
}, {
tick: 4642,
type: 'tom1'
}, {
tick: 4664,
type: 'snare'
}, {
tick: 4669,
type: 'tom1'
}, {
tick: 4688,
type: 'crash1'
}, {
tick: 4688,
type: 'kick'
}, {
tick: 4705,
type: 'hihat'
}, {
tick: 4723,
type: 'snare'
}, {
tick: 4724,
type: 'hihat'
}, {
tick: 4742,
type: 'hihat'
}, {
tick: 4760,
type: 'kick'
}, {
tick: 4761,
type: 'hihat'
}, {
tick: 4779,
type: 'hihat'
}, {
tick: 4796,
type: 'snare'
}, {
tick: 4796,
type: 'hihat'
}, {
tick: 4815,
type: 'hihat'
}, {
tick: 4833,
type: 'crash1'
}, {
tick: 4833,
type: 'kick'
}, {
tick: 4850,
type: 'hihat'
}, {
tick: 4867,
type: 'snare'
}, {
tick: 4869,
type: 'hihat'
}, {
tick: 4887,
type: 'hihat'
}, {
tick: 4904,
type: 'kick'
}, {
tick: 4905,
type: 'hihat'
}, {
tick: 4923,
type: 'hihat'
}, {
tick: 4940,
type: 'snare'
}, {
tick: 4940,
type: 'hihat'
}, {
tick: 4958,
type: 'hihat'
}, {
tick: 4976,
type: 'crash1'
}, {
tick: 4976,
type: 'kick'
}, {
tick: 4996,
type: 'hihat'
}, {
tick: 5014,
type: 'snare'
}, {
tick: 5014,
type: 'hihat'
}, {
tick: 5031,
type: 'hihat'
}, {
tick: 5049,
type: 'hihat'
}, {
tick: 5050,
type: 'kick'
}, {
tick: 5066,
type: 'hihat'
}, {
tick: 5084,
type: 'hihat'
}, {
tick: 5085,
type: 'snare'
}, {
tick: 5104,
type: 'hihat'
}, {
tick: 5122,
type: 'kick'
}, {
tick: 5122,
type: 'crash1'
}, {
tick: 5144,
type: 'hihat'
}, {
tick: 5159,
type: 'snare'
}, {
tick: 5160,
type: 'hihat'
}, {
tick: 5177,
type: 'hihat'
}, {
tick: 5196,
type: 'kick'
}, {
tick: 5196,
type: 'hihat'
}, {
tick: 5212,
type: 'hihat'
}, {
tick: 5231,
type: 'hihat'
}, {
tick: 5231,
type: 'snare'
}, {
tick: 5249,
type: 'hihat'
}, {
tick: 5267,
type: 'crash1'
}, {
tick: 5267,
type: 'kick'
}, {
tick: 5287,
type: 'hihat'
}, {
tick: 5304,
type: 'snare'
}, {
tick: 5304,
type: 'hihat'
}, {
tick: 5322,
type: 'hihat'
}, {
tick: 5340,
type: 'hihat'
}, {
tick: 5340,
type: 'kick'
}, {
tick: 5358,
type: 'hihat'
}, {
tick: 5374,
type: 'snare'
}, {
tick: 5375,
type: 'hihat'
}, {
tick: 5395,
type: 'hihat'
}, {
tick: 5413,
type: 'crash1'
}, {
tick: 5413,
type: 'kick'
}, {
tick: 5434,
type: 'hihat'
}, {
tick: 5449,
type: 'snare'
}, {
tick: 5451,
type: 'hihat'
}, {
tick: 5467,
type: 'hihat'
}, {
tick: 5485,
type: 'hihat'
}, {
tick: 5486,
type: 'kick'
}, {
tick: 5503,
type: 'hihat'
}, {
tick: 5520,
type: 'hihat'
}, {
tick: 5521,
type: 'snare'
}, {
tick: 5540,
type: 'hihat'
}, {
tick: 5556,
type: 'crash1'
}, {
tick: 5558,
type: 'kick'
}, {
tick: 5575,
type: 'hihat'
}, {
tick: 5591,
type: 'snare'
}, {
tick: 5592,
type: 'hihat'
}, {
tick: 5611,
type: 'hihat'
}, {
tick: 5629,
type: 'hihat'
}, {
tick: 5629,
type: 'kick'
}, {
tick: 5647,
type: 'hihat'
}, {
tick: 5666,
type: 'hihat'
}, {
tick: 5666,
type: 'snare'
}, {
tick: 5682,
type: 'hihat'
}, {
tick: 5702,
type: 'crash1'
}, {
tick: 5703,
type: 'kick'
}, {
tick: 5728,
type: 'crash1'
}, {
tick: 5729,
type: 'kick'
}, {
tick: 5755,
type: 'crash1'
}, {
tick: 5755,
type: 'kick'
}, {
tick: 5801,
type: 'snare'
}, {
tick: 5849,
type: 'kick'
}, {
tick: 5849,
type: 'crash1'
}]
}, {
name: "Beginner: SevenStripe-Armey",
music: "SevenStripeArmey",
notes: [{
tick: 50,
type: 'kick'
}, {
tick: 74,
type: 'tom1'
}, {
tick: 74,
type: 'kick'
}, {
tick: 105,
type: 'kick'
}, {
tick: 132,
type: 'tom1'
}, {
tick: 132,
type: 'kick'
}, {
tick: 167,
type: 'kick'
}, {
tick: 197,
type: 'tom1'
}, {
tick: 197,
type: 'kick'
}, {
tick: 227,
type: 'kick'
}, {
tick: 258,
type: 'tom1'
}, {
tick: 258,
type: 'kick'
}, {
tick: 289,
type: 'kick'
}, {
tick: 320,
type: 'kick'
}, {
tick: 320,
type: 'tom1'
}, {
tick: 351,
type: 'kick'
}, {
tick: 381,
type: 'kick'
}, {
tick: 381,
type: 'tom1'
}, {
tick: 412,
type: 'kick'
}, {
tick: 439,
type: 'tom1'
}, {
tick: 439,
type: 'kick'
}, {
tick: 470,
type: 'kick'
}, {
tick: 500,
type: 'tom1'
}, {
tick: 500,
type: 'kick'
}, {
tick: 531,
type: 'kick'
}, {
tick: 558,
type: 'tom1'
}, {
tick: 558,
type: 'kick'
}, {
tick: 594,
type: 'kick'
}, {
tick: 624,
type: 'kick'
}, {
tick: 624,
type: 'tom1'
}, {
tick: 654,
type: 'kick'
}, {
tick: 684,
type: 'tom1'
}, {
tick: 684,
type: 'kick'
}, {
tick: 715,
type: 'kick'
}, {
tick: 742,
type: 'tom1'
}, {
tick: 742,
type: 'kick'
}, {
tick: 773,
type: 'kick'
}, {
tick: 803,
type: 'kick'
}, {
tick: 803,
type: 'tom1'
}, {
tick: 834,
type: 'kick'
}, {
tick: 865,
type: 'tom1'
}, {
tick: 865,
type: 'kick'
}, {
tick: 892,
type: 'kick'
}, {
tick: 923,
type: 'tom1'
}, {
tick: 923,
type: 'kick'
}, {
tick: 958,
type: 'kick'
}, {
tick: 988,
type: 'kick'
}, {
tick: 988,
type: 'tom1'
}, {
tick: 1018,
type: 'kick'
}, {
tick: 1045,
type: 'kick'
}, {
tick: 1045,
type: 'tom1'
}, {
tick: 1075,
type: 'kick'
}, {
tick: 1102,
type: 'tom1'
}, {
tick: 1106,
type: 'kick'
}, {
tick: 1137,
type: 'kick'
}, {
tick: 1167,
type: 'kick'
}, {
tick: 1167,
type: 'tom1'
}, {
tick: 1198,
type: 'kick'
}, {
tick: 1228,
type: 'tom1'
}, {
tick: 1228,
type: 'kick'
}, {
tick: 1259,
type: 'kick'
}, {
tick: 1289,
type: 'tom1'
}, {
tick: 1289,
type: 'kick'
}, {
tick: 1320,
type: 'kick'
}, {
tick: 1350,
type: 'tom1'
}, {
tick: 1350,
type: 'kick'
}, {
tick: 1381,
type: 'kick'
}, {
tick: 1408,
type: 'tom1'
}, {
tick: 1408,
type: 'kick'
}, {
tick: 1439,
type: 'kick'
}, {
tick: 1469,
type: 'tom1'
}, {
tick: 1469,
type: 'kick'
}, {
tick: 1500,
type: 'kick'
}, {
tick: 1531,
type: 'snare'
}, {
tick: 1531,
type: 'kick'
}, {
tick: 1562,
type: 'kick'
}, {
tick: 1593,
type: 'snare'
}, {
tick: 1593,
type: 'kick'
}, {
tick: 1624,
type: 'kick'
}, {
tick: 1654,
type: 'snare'
}, {
tick: 1654,
type: 'kick'
}, {
tick: 1684,
type: 'kick'
}, {
tick: 1714,
type: 'snare'
}, {
tick: 1714,
type: 'kick'
}, {
tick: 1745,
type: 'kick'
}, {
tick: 1775,
type: 'snare'
}, {
tick: 1775,
type: 'kick'
}, {
tick: 1806,
type: 'kick'
}, {
tick: 1836,
type: 'snare'
}, {
tick: 1836,
type: 'kick'
}, {
tick: 1867,
type: 'kick'
}, {
tick: 1893,
type: 'snare'
}, {
tick: 1893,
type: 'kick'
}, {
tick: 1924,
type: 'kick'
}, {
tick: 1955,
type: 'snare'
}, {
tick: 1955,
type: 'kick'
}, {
tick: 1989,
type: 'kick'
}, {
tick: 2016,
type: 'snare'
}, {
tick: 2016,
type: 'kick'
}, {
tick: 2051,
type: 'kick'
}, {
tick: 2077,
type: 'snare'
}, {
tick: 2077,
type: 'kick'
}, {
tick: 2108,
type: 'kick'
}, {
tick: 2138,
type: 'snare'
}, {
tick: 2138,
type: 'kick'
}, {
tick: 2169,
type: 'kick'
}, {
tick: 2196,
type: 'snare'
}, {
tick: 2196,
type: 'kick'
}, {
tick: 2231,
type: 'kick'
}, {
tick: 2261,
type: 'snare'
}, {
tick: 2261,
type: 'kick'
}, {
tick: 2292,
type: 'kick'
}, {
tick: 2319,
type: 'kick'
}, {
tick: 2319,
type: 'snare'
}, {
tick: 2350,
type: 'kick'
}, {
tick: 2380,
type: 'snare'
}, {
tick: 2380,
type: 'kick'
}, {
tick: 2411,
type: 'kick'
}, {
tick: 2441,
type: 'snare'
}, {
tick: 2441,
type: 'kick'
}, {
tick: 2471,
type: 'crash1'
}, {
tick: 2471,
type: 'kick'
}, {
tick: 2496,
type: 'tom1'
}, {
tick: 2505,
type: 'tom1'
}, {
tick: 2525,
type: 'tom1'
}, {
tick: 2540,
type: 'tom1'
}, {
tick: 2557,
type: 'tom1'
}, {
tick: 2572,
type: 'tom1'
}, {
tick: 2591,
type: 'kick'
}, {
tick: 2591,
type: 'crash1'
}, {
tick: 2603,
type: 'tom1'
}, {
tick: 2621,
type: 'tom1'
}, {
tick: 2632,
type: 'tom1'
}, {
tick: 2646,
type: 'tom1'
}, {
tick: 2660,
type: 'tom1'
}, {
tick: 2673,
type: 'tom1'
}, {
tick: 2686,
type: 'tom1'
}, {
tick: 2701,
type: 'tom1'
}, {
tick: 2716,
type: 'crash1'
}, {
tick: 2716,
type: 'kick'
}, {
tick: 2750,
type: 'snare'
}, {
tick: 2780,
type: 'crash1'
}, {
tick: 2780,
type: 'kick'
}, {
tick: 2803,
type: 'snare'
}, {
tick: 2803,
type: 'crash1'
}, {
tick: 2834,
type: 'crash1'
}, {
tick: 2834,
type: 'kick'
}, {
tick: 2864,
type: 'snare'
}, {
tick: 2864,
type: 'crash1'
}, {
tick: 2895,
type: 'crash1'
}, {
tick: 2895,
type: 'kick'
}, {
tick: 2926,
type: 'snare'
}, {
tick: 2926,
type: 'crash1'
}, {
tick: 2956,
type: 'crash1'
}, {
tick: 2956,
type: 'kick'
}, {
tick: 2987,
type: 'crash1'
}, {
tick: 2987,
type: 'snare'
}, {
tick: 3017,
type: 'crash1'
}, {
tick: 3017,
type: 'kick'
}, {
tick: 3040,
type: 'crash1'
}, {
tick: 3040,
type: 'kick'
}, {
tick: 3063,
type: 'snare'
}, {
tick: 3063,
type: 'crash1'
}, {
tick: 3082,
type: 'crash1'
}, {
tick: 3082,
type: 'kick'
}, {
tick: 3109,
type: 'snare'
}, {
tick: 3109,
type: 'crash1'
}, {
tick: 3139,
type: 'kick'
}, {
tick: 3139,
type: 'crash1'
}, {
tick: 3170,
type: 'snare'
}, {
tick: 3201,
type: 'crash1'
}, {
tick: 3201,
type: 'kick'
}, {
tick: 3231,
type: 'crash1'
}, {
tick: 3231,
type: 'snare'
}, {
tick: 3261,
type: 'crash1'
}, {
tick: 3261,
type: 'kick'
}, {
tick: 3286,
type: 'crash1'
}, {
tick: 3286,
type: 'snare'
}, {
tick: 3317,
type: 'kick'
}, {
tick: 3317,
type: 'crash1'
}, {
tick: 3348,
type: 'crash1'
}, {
tick: 3348,
type: 'snare'
}, {
tick: 3382,
type: 'crash1'
}, {
tick: 3382,
type: 'kick'
}, {
tick: 3409,
type: 'snare'
}, {
tick: 3409,
type: 'crash1'
}, {
tick: 3443,
type: 'crash1'
}, {
tick: 3443,
type: 'kick'
}, {
tick: 3474,
type: 'crash1'
}, {
tick: 3474,
type: 'snare'
}, {
tick: 3504,
type: 'crash1'
}, {
tick: 3504,
type: 'kick'
}, {
tick: 3526,
type: 'crash1'
}, {
tick: 3526,
type: 'kick'
}, {
tick: 3550,
type: 'crash1'
}, {
tick: 3550,
type: 'snare'
}, {
tick: 3569,
type: 'crash1'
}, {
tick: 3569,
type: 'kick'
}, {
tick: 3596,
type: 'snare'
}, {
tick: 3596,
type: 'crash1'
}, {
tick: 3626,
type: 'crash1'
}, {
tick: 3626,
type: 'kick'
}, {
tick: 3656,
type: 'snare'
}, {
tick: 3656,
type: 'crash1'
}, {
tick: 3686,
type: 'crash1'
}, {
tick: 3686,
type: 'kick'
}, {
tick: 3700,
type: 'tom1'
}, {
tick: 3717,
type: 'tom1'
}, {
tick: 3730,
type: 'tom1'
}, {
tick: 3747,
type: 'tom1'
}, {
tick: 3761,
type: 'tom1'
}, {
tick: 3775,
type: 'tom1'
}, {
tick: 3792,
type: 'tom1'
}, {
tick: 3808,
type: 'crash1'
}, {
tick: 3808,
type: 'kick'
}, {
tick: 3821,
type: 'tom1'
}, {
tick: 3833,
type: 'tom1'
}, {
tick: 3848,
type: 'tom1'
}, {
tick: 3865,
type: 'tom1'
}, {
tick: 3881,
type: 'tom1'
}, {
tick: 3896,
type: 'tom1'
}, {
tick: 3910,
type: 'tom1'
}, {
tick: 3926,
type: 'kick'
}, {
tick: 3926,
type: 'crash1'
}, {
tick: 4412,
type: 'kick'
}, {
tick: 4439,
type: 'kick'
}, {
tick: 4439,
type: 'tom1'
}, {
tick: 4473,
type: 'kick'
}, {
tick: 4503,
type: 'kick'
}, {
tick: 4503,
type: 'tom1'
}, {
tick: 4534,
type: 'kick'
}, {
tick: 4560,
type: 'tom1'
}, {
tick: 4560,
type: 'kick'
}, {
tick: 4597,
type: 'kick'
}, {
tick: 4623,
type: 'kick'
}, {
tick: 4623,
type: 'tom1'
}, {
tick: 4654,
type: 'kick'
}, {
tick: 4685,
type: 'kick'
}, {
tick: 4685,
type: 'tom1'
}, {
tick: 4719,
type: 'kick'
}, {
tick: 4745,
type: 'tom1'
}, {
tick: 4745,
type: 'kick'
}, {
tick: 4781,
type: 'kick'
}, {
tick: 4806,
type: 'tom1'
}, {
tick: 4806,
type: 'kick'
}, {
tick: 4842,
type: 'kick'
}, {
tick: 4866,
type: 'kick'
}, {
tick: 4866,
type: 'tom1'
}, {
tick: 4901,
type: 'kick'
}, {
tick: 4928,
type: 'kick'
}, {
tick: 4928,
type: 'tom1'
}, {
tick: 4959,
type: 'kick'
}, {
tick: 4989,
type: 'kick'
}, {
tick: 4989,
type: 'tom1'
}, {
tick: 5019,
type: 'kick'
}, {
tick: 5049,
type: 'kick'
}, {
tick: 5049,
type: 'tom1'
}, {
tick: 5080,
type: 'kick'
}, {
tick: 5110,
type: 'tom1'
}, {
tick: 5110,
type: 'kick'
}, {
tick: 5141,
type: 'kick'
}, {
tick: 5171,
type: 'kick'
}, {
tick: 5171,
type: 'tom1'
}, {
tick: 5201,
type: 'kick'
}, {
tick: 5231,
type: 'kick'
}, {
tick: 5231,
type: 'tom1'
}, {
tick: 5262,
type: 'kick'
}, {
tick: 5292,
type: 'kick'
}, {
tick: 5292,
type: 'tom1'
}, {
tick: 5326,
type: 'kick'
}, {
tick: 5352,
type: 'tom1'
}, {
tick: 5352,
type: 'kick'
}, {
tick: 5383,
type: 'kick'
}, {
tick: 5409,
type: 'tom1'
}, {
tick: 5409,
type: 'kick'
}, {
tick: 5445,
type: 'kick'
}, {
tick: 5472,
type: 'tom1'
}, {
tick: 5472,
type: 'kick'
}, {
tick: 5503,
type: 'kick'
}, {
tick: 5533,
type: 'kick'
}, {
tick: 5533,
type: 'tom1'
}, {
tick: 5564,
type: 'kick'
}, {
tick: 5595,
type: 'kick'
}, {
tick: 5595,
type: 'tom1'
}, {
tick: 5626,
type: 'kick'
}, {
tick: 5653,
type: 'kick'
}, {
tick: 5653,
type: 'tom1'
}, {
tick: 5684,
type: 'kick'
}, {
tick: 5714,
type: 'tom1'
}, {
tick: 5714,
type: 'kick'
}, {
tick: 5745,
type: 'kick'
}, {
tick: 5776,
type: 'tom1'
}, {
tick: 5776,
type: 'kick'
}, {
tick: 5810,
type: 'kick'
}, {
tick: 5840,
type: 'tom1'
}, {
tick: 5840,
type: 'kick'
}, {
tick: 5870,
type: 'kick'
}, {
tick: 5900,
type: 'kick'
}, {
tick: 5900,
type: 'snare'
}, {
tick: 5931,
type: 'kick'
}, {
tick: 5961,
type: 'kick'
}, {
tick: 5961,
type: 'snare'
}, {
tick: 5991,
type: 'kick'
}, {
tick: 6021,
type: 'snare'
}, {
tick: 6021,
type: 'kick'
}, {
tick: 6052,
type: 'kick'
}, {
tick: 6082,
type: 'snare'
}, {
tick: 6082,
type: 'kick'
}, {
tick: 6113,
type: 'kick'
}, {
tick: 6143,
type: 'snare'
}, {
tick: 6143,
type: 'kick'
}, {
tick: 6173,
type: 'kick'
}, {
tick: 6199,
type: 'snare'
}, {
tick: 6199,
type: 'kick'
}, {
tick: 6230,
type: 'kick'
}, {
tick: 6260,
type: 'snare'
}, {
tick: 6260,
type: 'kick'
}, {
tick: 6291,
type: 'kick'
}, {
tick: 6321,
type: 'snare'
}, {
tick: 6321,
type: 'kick'
}, {
tick: 6351,
type: 'kick'
}, {
tick: 6378,
type: 'snare'
}, {
tick: 6378,
type: 'kick'
}, {
tick: 6413,
type: 'kick'
}, {
tick: 6439,
type: 'snare'
}, {
tick: 6439,
type: 'kick'
}, {
tick: 6470,
type: 'kick'
}, {
tick: 6497,
type: 'snare'
}, {
tick: 6497,
type: 'kick'
}, {
tick: 6532,
type: 'kick'
}, {
tick: 6562,
type: 'snare'
}, {
tick: 6562,
type: 'kick'
}, {
tick: 6593,
type: 'kick'
}, {
tick: 6623,
type: 'snare'
}, {
tick: 6623,
type: 'kick'
}, {
tick: 6658,
type: 'kick'
}, {
tick: 6684,
type: 'kick'
}, {
tick: 6684,
type: 'snare'
}, {
tick: 6715,
type: 'kick'
}, {
tick: 6745,
type: 'snare'
}, {
tick: 6745,
type: 'kick'
}, {
tick: 6779,
type: 'kick'
}, {
tick: 6806,
type: 'snare'
}, {
tick: 6806,
type: 'kick'
}, {
tick: 6837,
type: 'kick'
}, {
tick: 6837,
type: 'crash1'
}, {
tick: 6853,
type: 'tom1'
}, {
tick: 6868,
type: 'tom1'
}, {
tick: 6881,
type: 'tom1'
}, {
tick: 6899,
type: 'tom1'
}, {
tick: 6914,
type: 'tom1'
}, {
tick: 6928,
type: 'tom1'
}, {
tick: 6944,
type: 'tom1'
}, {
tick: 6959,
type: 'kick'
}, {
tick: 6959,
type: 'crash1'
}, {
tick: 6974,
type: 'tom1'
}, {
tick: 6988,
type: 'tom1'
}, {
tick: 7002,
type: 'tom1'
}, {
tick: 7017,
type: 'tom1'
}, {
tick: 7032,
type: 'tom1'
}, {
tick: 7048,
type: 'tom1'
}, {
tick: 7060,
type: 'tom1'
}, {
tick: 7082,
type: 'kick'
}, {
tick: 7082,
type: 'crash1'
}, {
tick: 7106,
type: 'snare'
}, {
tick: 7106,
type: 'crash1'
}, {
tick: 7137,
type: 'kick'
}, {
tick: 7137,
type: 'crash1'
}, {
tick: 7168,
type: 'crash1'
}, {
tick: 7168,
type: 'snare'
}, {
tick: 7199,
type: 'kick'
}, {
tick: 7199,
type: 'crash1'
}, {
tick: 7229,
type: 'snare'
}, {
tick: 7229,
type: 'crash1'
}, {
tick: 7260,
type: 'crash1'
}, {
tick: 7260,
type: 'kick'
}, {
tick: 7291,
type: 'crash1'
}, {
tick: 7291,
type: 'snare'
}, {
tick: 7322,
type: 'crash1'
}, {
tick: 7322,
type: 'kick'
}, {
tick: 7353,
type: 'snare'
}, {
tick: 7353,
type: 'crash1'
}, {
tick: 7384,
type: 'kick'
}, {
tick: 7384,
type: 'crash1'
}, {
tick: 7406,
type: 'crash1'
}, {
tick: 7406,
type: 'kick'
}, {
tick: 7429,
type: 'snare'
}, {
tick: 7429,
type: 'crash1'
}, {
tick: 7451,
type: 'crash1'
}, {
tick: 7451,
type: 'kick'
}, {
tick: 7475,
type: 'crash1'
}, {
tick: 7475,
type: 'snare'
}, {
tick: 7505,
type: 'crash1'
}, {
tick: 7505,
type: 'kick'
}, {
tick: 7535,
type: 'snare'
}, {
tick: 7535,
type: 'crash1'
}, {
tick: 7565,
type: 'kick'
}, {
tick: 7565,
type: 'crash1'
}, {
tick: 7595,
type: 'snare'
}, {
tick: 7595,
type: 'crash1'
}, {
tick: 7626,
type: 'crash1'
}, {
tick: 7626,
type: 'kick'
}, {
tick: 7656,
type: 'crash1'
}, {
tick: 7656,
type: 'snare'
}, {
tick: 7686,
type: 'crash1'
}, {
tick: 7686,
type: 'kick'
}, {
tick: 7716,
type: 'crash1'
}, {
tick: 7716,
type: 'snare'
}, {
tick: 7743,
type: 'crash1'
}, {
tick: 7743,
type: 'kick'
}, {
tick: 7774,
type: 'snare'
}, {
tick: 7774,
type: 'crash1'
}, {
tick: 7805,
type: 'crash1'
}, {
tick: 7805,
type: 'kick'
}, {
tick: 7836,
type: 'crash1'
}, {
tick: 7836,
type: 'snare'
}, {
tick: 7867,
type: 'kick'
}, {
tick: 7867,
type: 'crash1'
}, {
tick: 7889,
type: 'crash1'
}, {
tick: 7889,
type: 'kick'
}, {
tick: 7915,
type: 'crash1'
}, {
tick: 7915,
type: 'snare'
}, {
tick: 7933,
type: 'crash1'
}, {
tick: 7933,
type: 'kick'
}, {
tick: 7960,
type: 'crash1'
}, {
tick: 7960,
type: 'snare'
}, {
tick: 7990,
type: 'kick'
}, {
tick: 7990,
type: 'crash1'
}, {
tick: 8020,
type: 'crash1'
}, {
tick: 8020,
type: 'snare'
}, {
tick: 8050,
type: 'crash1'
}, {
tick: 8050,
type: 'kick'
}, {
tick: 8080,
type: 'crash1'
}, {
tick: 8080,
type: 'snare'
}, {
tick: 8110,
type: 'crash1'
}, {
tick: 8110,
type: 'kick'
}, {
tick: 8140,
type: 'crash1'
}, {
tick: 8140,
type: 'snare'
}, {
tick: 8170,
type: 'crash1'
}, {
tick: 8170,
type: 'kick'
}, {
tick: 8200,
type: 'snare'
}, {
tick: 8200,
type: 'crash1'
}, {
tick: 8231,
type: 'crash1'
}, {
tick: 8231,
type: 'kick'
}, {
tick: 8262,
type: 'snare'
}, {
tick: 8262,
type: 'crash1'
}, {
tick: 8292,
type: 'kick'
}, {
tick: 8292,
type: 'crash1'
}, {
tick: 8323,
type: 'crash1'
}, {
tick: 8323,
type: 'snare'
}, {
tick: 8353,
type: 'crash1'
}, {
tick: 8353,
type: 'kick'
}, {
tick: 8379,
type: 'crash1'
}, {
tick: 8379,
type: 'kick'
}, {
tick: 8404,
type: 'snare'
}, {
tick: 8404,
type: 'crash1'
}, {
tick: 8422,
type: 'crash1'
}, {
tick: 8422,
type: 'kick'
}, {
tick: 8445,
type: 'snare'
}, {
tick: 8445,
type: 'crash1'
}, {
tick: 8475,
type: 'kick'
}, {
tick: 8475,
type: 'crash1'
}, {
tick: 8505,
type: 'snare'
}, {
tick: 8505,
type: 'crash1'
}, {
tick: 8535,
type: 'crash1'
}, {
tick: 8535,
type: 'kick'
}, {
tick: 8566,
type: 'crash1'
}, {
tick: 8566,
type: 'snare'
}, {
tick: 8597,
type: 'crash1'
}, {
tick: 8597,
type: 'kick'
}, {
tick: 8624,
type: 'crash1'
}, {
tick: 8624,
type: 'snare'
}, {
tick: 8658,
type: 'crash1'
}, {
tick: 8658,
type: 'kick'
}, {
tick: 8685,
type: 'snare'
}, {
tick: 8685,
type: 'crash1'
}, {
tick: 8716,
type: 'crash1'
}, {
tick: 8719,
type: 'kick'
}, {
tick: 8749,
type: 'crash1'
}, {
tick: 8749,
type: 'snare'
}, {
tick: 8779,
type: 'crash1'
}, {
tick: 8779,
type: 'kick'
}, {
tick: 8809,
type: 'crash1'
}, {
tick: 8809,
type: 'snare'
}, {
tick: 8840,
type: 'kick'
}, {
tick: 8840,
type: 'crash1'
}, {
tick: 8863,
type: 'crash1'
}, {
tick: 8863,
type: 'kick'
}, {
tick: 8885,
type: 'snare'
}, {
tick: 8889,
type: 'crash1'
}, {
tick: 8906,
type: 'crash1'
}, {
tick: 8906,
type: 'kick'
}, {
tick: 8932,
type: 'crash1'
}, {
tick: 8932,
type: 'snare'
}, {
tick: 8962,
type: 'crash1'
}, {
tick: 8962,
type: 'kick'
}, {
tick: 8992,
type: 'crash1'
}, {
tick: 8992,
type: 'snare'
}, {
tick: 9022,
type: 'kick'
}, {
tick: 9022,
type: 'crash1'
}, {
tick: 9037,
type: 'tom1'
}, {
tick: 9051,
type: 'tom1'
}, {
tick: 9064,
type: 'tom1'
}, {
tick: 9080,
type: 'tom1'
}, {
tick: 9093,
type: 'tom1'
}, {
tick: 9110,
type: 'tom1'
}, {
tick: 9124,
type: 'tom1'
}, {
tick: 9141,
type: 'kick'
}, {
tick: 9141,
type: 'crash1'
}, {
tick: 9156,
type: 'tom1'
}, {
tick: 9169,
type: 'tom1'
}, {
tick: 9184,
type: 'tom1'
}, {
tick: 9199,
type: 'tom1'
}, {
tick: 9212,
type: 'tom1'
}, {
tick: 9224,
type: 'tom1'
}, {
tick: 9238,
type: 'tom1'
}, {
tick: 9262,
type: 'kick'
}, {
tick: 9262,
type: 'crash1'
}]
}];
// Current level index and songNotes reference
var currentLevelIndex = 0;
var songNotes = LEVELS[0].notes;
var currentMusic = LEVELS[0].music;
// Level progression system
var unlockedLevels = storage.unlockedLevels || 1; // Number of unlocked levels, default 1 (only beginner)
var levelOrder = [3, 2, 1, 0]; // Beginner(3) -> Easy(2) -> Medium(1) -> Hard(0)
// Function to check if a level is unlocked
function isLevelUnlocked(levelIndex) {
// If developer mode is on, unlock all levels
if (isDeveloperMode) {
return true;
}
var orderIndex = levelOrder.indexOf(levelIndex);
return orderIndex >= 0 && orderIndex < unlockedLevels;
}
// Function to unlock next level
function unlockNextLevel() {
if (unlockedLevels < levelOrder.length) {
unlockedLevels++;
storage.unlockedLevels = unlockedLevels;
updateLevelButtonStates();
}
}
// --- Intro Screen UI ---
var introContainer = new Container();
introContainer.x = 0;
introContainer.y = 0;
introContainer.visible = true;
LK.gui.center.addChild(introContainer);
// Background
var introBg = LK.getAsset('introBg', {
anchorX: 0,
anchorY: 0,
x: 0,
y: 0,
width: LK.gui.center.width,
height: LK.gui.center.height
});
introContainer.addChild(introBg);
// Center column layout for intro
var introColumn = new Container();
introColumn.x = LK.gui.center.width / 2;
introColumn.y = LK.gui.center.height / 2;
introContainer.addChild(introColumn);
// Logos - create all three and set up alternating
var introLogo1 = LK.getAsset('introLogo', {
anchorX: 0.5,
anchorY: 0.5,
x: 0,
y: 0,
scaleX: 0.6,
scaleY: 0.6
});
var introLogo2 = LK.getAsset('introLogo2', {
anchorX: 0.5,
anchorY: 0.5,
x: 0,
y: 0,
scaleX: 0.6,
scaleY: 0.6
});
var introLogo3 = LK.getAsset('introLogo3', {
anchorX: 0.5,
anchorY: 0.5,
x: 0,
y: 0,
scaleX: 0.6,
scaleY: 0.6
});
// Start with only first logo visible
introLogo2.visible = false;
introLogo3.visible = false;
introColumn.addChild(introLogo1);
introColumn.addChild(introLogo2);
introColumn.addChild(introLogo3);
// Set up alternating timer with cycling through all three logos
var currentLogoIndex = 0;
var logoSwitchTimer = LK.setInterval(function () {
if (introContainer.visible) {
// Hide all logos
introLogo1.visible = false;
introLogo2.visible = false;
introLogo3.visible = false;
// Show next logo in sequence
currentLogoIndex = (currentLogoIndex + 1) % 3;
if (currentLogoIndex === 0) {
introLogo1.visible = true;
} else if (currentLogoIndex === 1) {
introLogo2.visible = true;
} else {
introLogo3.visible = true;
}
}
}, 350); // Switch every 350ms
// Play Button (moved to top)
var playBtn = new Text2("Play", {
size: 120,
fill: "#fff",
font: "Impact"
});
playBtn.anchor.set(0.5, 0.5);
playBtn.x = 0;
playBtn.y = -LK.gui.center.height / 2 + 150 - 500;
// Title Image Asset
var introTitle = LK.getAsset('gameTitle', {
anchorX: 0.5,
anchorY: 0.5,
x: 0,
y: introLogo1.y + introLogo1.height / 2 + 100 - 200,
width: 1400,
height: 300
});
introColumn.addChild(introTitle);
playBtn.interactive = true;
playBtn.buttonMode = true;
playBtn.bg = LK.getAsset('playButton', {
anchorX: 0.5,
anchorY: 0.5,
x: playBtn.x,
y: playBtn.y,
width: 600,
height: 180
});
introColumn.addChild(playBtn.bg);
introColumn.addChild(playBtn);
playBtn.down = function () {
introContainer.visible = false;
levelSelectContainer.visible = true;
// Stop tip cycling when leaving intro
if (tipDisplayTimer) {
LK.clearInterval(tipDisplayTimer);
}
};
// Developer mode toggle button (250 pixels above play button, smaller size)
var isDeveloperMode = false; // Always start as off
var devModeBtn = new Text2("Developer mode: off", {
size: 30,
fill: 0xFF0000,
// Red for off
font: "Impact"
});
devModeBtn.anchor.set(0.5, 0.5);
devModeBtn.x = 0;
devModeBtn.y = playBtn.y - 250;
devModeBtn.interactive = true;
devModeBtn.buttonMode = true;
devModeBtn.down = function () {
isDeveloperMode = !isDeveloperMode;
storage.developerMode = isDeveloperMode;
devModeBtn.setText("Developer mode: " + (isDeveloperMode ? "on" : "off"));
devModeBtn.fill = isDeveloperMode ? "#00FF00" : "#FF0000";
// Update recording UI visibility based on developer mode
if (recordTxt) {
recordTxt.visible = isDeveloperMode && scoreTxt.visible;
}
// Update level button states when developer mode changes
updateLevelButtonStates();
};
introColumn.addChild(devModeBtn);
// --- Level Selection UI ---
var levelSelectContainer = new Container();
levelSelectContainer.x = 0;
levelSelectContainer.y = 0;
levelSelectContainer.visible = false;
LK.gui.center.addChild(levelSelectContainer);
// Place the column at 30px from left, and vertically at 30px from the top (move further up by 20cm ≈ 720px)
var levelSelectColumn = new Container();
// Move further up: 20cm ≈ 720px, so y = 30 - 720 = -690
levelSelectColumn.x = 30;
levelSelectColumn.y = -690;
levelSelectContainer.addChild(levelSelectColumn);
// Title
var levelSelectTitle = new Text2("Choose Level", {
size: 120,
fill: "#fff"
});
levelSelectTitle.anchor.set(0.5, 0.5);
levelSelectTitle.x = 0;
levelSelectTitle.y = 0;
levelSelectColumn.addChild(levelSelectTitle);
// Back button to return to intro screen
var backBtnBg = LK.getAsset('levelButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 0,
y: levelSelectTitle.y - 150,
width: 400,
height: 80
});
var backBtn = new Text2("← Back", {
size: 60,
fill: "#fff",
font: "Impact"
});
backBtn.anchor.set(0.5, 0.5);
backBtn.x = 0;
backBtn.y = levelSelectTitle.y - 150;
backBtn.interactive = true;
backBtn.buttonMode = true;
backBtn.down = function () {
levelSelectContainer.visible = false;
introContainer.visible = true;
// Restart tip cycling when returning to intro screen
startTipCycling();
};
levelSelectColumn.addChild(backBtnBg);
levelSelectColumn.addChild(backBtn);
// Level buttons, stacked vertically, centered below the title
var levelButtons = [];
var levelButtonBackgrounds = [];
var levelBtnSpacing = 220;
var firstBtnY = levelSelectTitle.y + 180;
function updateLevelButtonStates() {
for (var i = 0; i < LEVELS.length; i++) {
var isUnlocked = isLevelUnlocked(i);
var btn = levelButtons[i];
var btnBg = levelButtonBackgrounds[i];
if (isUnlocked) {
btn.alpha = 1.0;
btn.fill = "#fff";
btnBg.alpha = 1.0;
btn.interactive = true;
btn.buttonMode = true;
} else {
btn.alpha = 0.4;
btn.fill = "#888";
btnBg.alpha = 0.4;
btn.interactive = false;
btn.buttonMode = false;
}
}
}
for (var i = 0; i < LEVELS.length; i++) {
(function (idx) {
// Button background for touch area
var btnBg = LK.getAsset('levelButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 0,
y: firstBtnY + idx * levelBtnSpacing,
width: 1000,
height: 200
});
levelButtonBackgrounds.push(btnBg);
// Button text
var btnText = LEVELS[idx].name;
var btn = new Text2(btnText, {
size: 100,
fill: "#fff",
font: "Impact"
});
btn.anchor.set(0.5, 0.5);
btn.x = 0;
btn.y = firstBtnY + idx * levelBtnSpacing;
btn.down = function () {
if (isLevelUnlocked(idx)) {
selectLevel(idx);
}
};
levelSelectColumn.addChild(btnBg);
levelSelectColumn.addChild(btn);
levelButtons.push(btn);
})(i);
}
// Initialize button states
updateLevelButtonStates();
// --- Recording UI and Logic ---
var recordTxt = new Text2('KAYIT: KAPALI', {
size: 70,
fill: 0xFF6666
});
recordTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(recordTxt);
recordTxt.x = LK.gui.top.width / 2;
recordTxt.y = 220;
// Hide gameplay UI until level is selected
scoreTxt.visible = false;
comboTxt.visible = false;
recordTxt.visible = false;
// Level selection handler
function selectLevel(idx) {
if (!isLevelUnlocked(idx)) {
return; // Don't allow selection of locked levels
}
currentLevelIndex = idx;
songNotes = LEVELS[idx].notes;
currentMusic = LEVELS[idx].music;
levelSelectContainer.visible = false;
scoreTxt.visible = true;
comboTxt.visible = true;
recordTxt.visible = isDeveloperMode;
if (typeof TEST_MODE !== "undefined" && TEST_MODE) {
// Update songTotalTicks for timeline
songTotalTicks = songNotes.length > 0 ? songNotes[songNotes.length - 1].tick : 1;
}
startGame(); // Start the game after selecting a level
}
var isRecording = false;
var recordedNotes = [];
var recordStartTick = 0;
// Toggle recording on tap of recordTxt
recordTxt.interactive = true;
recordTxt.buttonMode = true;
recordTxt.down = function () {
if (!isDeveloperMode) {
return; // Don't allow recording if developer mode is off
}
if (!isRecording) {
// Start recording
isRecording = true;
recordedNotes = [];
recordStartTick = LK.ticks;
recordTxt.setText('KAYIT: AÇIK');
comboTxt.setText('KAYIT MODU');
} else {
// Stop recording and save as new level
isRecording = false;
recordTxt.setText('KAYIT: KAPALI');
comboTxt.setText('');
// Convert recordedNotes to songNotes format
if (recordedNotes.length > 0) {
// Normalize ticks to start at 0
var minTick = recordedNotes.length > 0 ? recordedNotes[0].tick : 0;
for (var i = 0; i < recordedNotes.length; i++) {
recordedNotes[i].tick -= minTick;
}
songNotes = [];
for (var i = 0; i < recordedNotes.length; i++) {
songNotes.push({
tick: recordedNotes[i].tick,
type: recordedNotes[i].type
});
}
// Print recorded notes as code in the console
var codeStr = "var songNotes = [\n";
for (var i = 0; i < recordedNotes.length; i++) {
codeStr += " { tick: " + recordedNotes[i].tick + ", type: '" + recordedNotes[i].type + "' },\n";
}
codeStr += "];";
console.log(codeStr);
// Restart game with new level
startGame();
}
}
};
LK.gui.top.addChild(recordTxt);
// --- Record pad hits if in recording mode ---
function recordPadHit(padType) {
if (isRecording && isDeveloperMode) {
var tick = LK.ticks - recordStartTick;
recordedNotes.push({
tick: tick,
type: padType
});
}
}
// --- Create Drum Pads ---
for (var i = 0; i < PAD_COLS; i++) {
var pad = new DrumPad();
pad.setPadType(PAD_TYPES[i]);
pad.x = PAD_X_POSITIONS[PAD_TYPES[i]];
pad.y = PAD_Y;
pad.padIndex = i;
pads.push(pad);
game.addChild(pad);
}
// --- Pad Touch Handling ---
var activePad = null;
function getPadAt(x, y) {
for (var i = 0; i < pads.length; i++) {
var pad = pads[i];
var dx = x - pad.x,
dy = y - pad.y;
var rx = pad.asset.width / 2,
ry = pad.asset.height / 2;
if (dx * dx / (rx * rx) + dy * dy / (ry * ry) <= 1) {
return pad;
}
}
return null;
}
game.down = function (x, y, obj) {
var pad = getPadAt(x, y);
if (pad) {
activePad = pad;
handlePadHit(pad);
}
};
game.move = function (x, y, obj) {
// For multi-touch, could be extended
};
game.up = function (x, y, obj) {
activePad = null;
};
// --- Note Spawning ---
function spawnNote(type) {
var note = new Note();
note.setNoteType(type);
note.x = PAD_X_POSITIONS[type];
note.y = NOTE_START_Y;
note.noteType = type;
note.hit = false;
notes.push(note);
game.addChild(note);
}
// --- Pad Hit Logic ---
function handlePadHit(pad) {
// Play sound
var soundId = pad.padType + 'Sound';
var sound = LK.getSound(soundId);
if (sound) {
if (sound.stop) {
sound.stop();
} // Stop if already playing to avoid overlap/delay
sound.play();
}
// Record pad hit if in recording mode
recordPadHit(pad.padType);
// Visual feedback
pad.flash();
// Allow even earlier and later hits by expanding the hit windows further
var HIT_WINDOW_EARLY = HIT_WINDOW * 2.2; // allow 120% earlier
var HIT_WINDOW_LATE = HIT_WINDOW * 2.5; // allow 150% later - more tolerance for late hits
// Find closest note of this type in expanded hit window
var bestNote = null,
bestDist = HIT_WINDOW_LATE;
for (var i = 0; i < notes.length; i++) {
var note = notes[i];
if (note.hit) {
continue;
}
if (note.noteType !== pad.padType) {
continue;
}
var dist = Math.abs(note.y - NOTE_TARGET_Y);
// Accept if note is within early or late window
if (note.y >= NOTE_TARGET_Y - HIT_WINDOW_EARLY && note.y <= NOTE_TARGET_Y + HIT_WINDOW_LATE && dist < bestDist) {
bestDist = dist;
bestNote = note;
}
}
if (bestNote) {
// Hit!
bestNote.hit = true;
LK.effects.flashObject(bestNote, 0xffffff, 120);
tween(bestNote, {
alpha: 0
}, {
duration: 120,
onFinish: function onFinish() {
bestNote.destroy();
}
});
notes.splice(notes.indexOf(bestNote), 1);
score += 100;
combo += 1;
if (combo > maxCombo) {
maxCombo = combo;
}
scoreTxt.setText(score);
comboTxt.setText(combo > 1 ? combo + 'x' : '');
// Reset consecutiveMisses on successful hit
if (typeof consecutiveMisses !== "undefined") {
consecutiveMisses = 0;
}
// --- HEALTH BAR: Increase health by (1 * combo), clamp to maxHealth ---
if (typeof health !== "undefined") {
var addHealth = 1 * (combo > 0 ? combo : 1);
health += addHealth;
if (health > maxHealth) {
health = maxHealth;
}
// Update health bar UI
if (healthBarFg) {
healthBarFg.width = health / maxHealth * healthBarBg.width;
}
}
} else {
// Miss!
LK.effects.flashScreen(0xff0000, 200);
// Track consecutive misses for combo reset
if (typeof consecutiveMisses === "undefined") {
consecutiveMisses = 0;
}
consecutiveMisses += 1;
if (consecutiveMisses >= 2) {
combo = 0;
comboTxt.setText('');
consecutiveMisses = 0;
}
// --- HEALTH BAR: Decrease health by 2 (or more if many consecutive misses), clamp to 0 ---
if (typeof health !== "undefined") {
var missPenalty = 2;
if (consecutiveMisses >= 3) {
// For every group of 3 consecutive misses, double the penalty
missPenalty = 2 * Math.pow(2, Math.floor(consecutiveMisses / 3));
}
health -= missPenalty;
if (health < 0) {
health = 0;
}
if (healthBarFg) {
healthBarFg.width = health / maxHealth * healthBarBg.width;
}
}
}
}
// --- Game Update ---
game.update = function () {
if (!isPlaying) {
return;
}
// If recording, do not spawn notes, do not check for misses, do not end game
if (isRecording) {
// Allow player to play freely, but do not process notes
return;
}
// --- FAIL CHECK: If health is 0, fail the level and return to menu ---
if (typeof health !== "undefined" && health <= 0 && isPlaying) {
isPlaying = false;
LK.stopMusic();
// Update high scores even on failure if needed
var newHighScore = false;
var newHighCombo = false;
if (score > highScore) {
highScore = score;
storage.highScore = highScore;
newHighScore = true;
}
if (maxCombo > highCombo) {
highCombo = maxCombo;
storage.highCombo = highCombo;
newHighCombo = true;
}
// Update display texts
highScoreTxt.setText("High Score: " + highScore);
highComboTxt.setText("Best Combo: " + highCombo);
// Show "Failed" text in the center of the screen
var failedTxt = new Text2("Not Quite\nMy Tempo!!", {
size: 160,
fill: 0xFF4444
});
failedTxt.anchor.set(0.5, 0.5);
failedTxt.x = GAME_W / 2;
failedTxt.y = GAME_H / 2;
game.addChild(failedTxt);
// Hide gameplay UI
scoreTxt.visible = false;
comboTxt.visible = false;
recordTxt.visible = false;
if (healthBarContainer && healthBarContainer.parent) {
healthBarContainer.parent.removeChild(healthBarContainer);
}
// After 1.2s, remove failed text and return to intro screen
LK.setTimeout(function () {
if (failedTxt && failedTxt.parent) {
failedTxt.parent.removeChild(failedTxt);
}
// Flash high score displays if new records were set
if (newHighScore) {
LK.effects.flashObject(highScoreTxt, 0x00FF00, 1000);
}
if (newHighCombo) {
LK.effects.flashObject(highComboTxt, 0x00FF00, 1000);
}
levelSelectContainer.visible = false;
introContainer.visible = true;
// Restart tip cycling when returning to intro screen after failure
startTipCycling();
}, 1200);
return;
}
// Spawn notes according to songNotes, with NOTE_OFFSET_TICKS for sync
var relTick = LK.ticks - songStartTick;
while (noteIndex < songNotes.length && songNotes[noteIndex].tick <= relTick + NOTE_OFFSET_TICKS) {
spawnNote(songNotes[noteIndex].type);
noteIndex++;
}
// Update notes, check for misses
for (var i = notes.length - 1; i >= 0; i--) {
var note = notes[i];
note.update();
if (!note.hit && note.y > NOTE_TARGET_Y + HIT_WINDOW * 2.5) {
// Missed note
LK.effects.flashObject(note, 0xff0000, 120);
tween(note, {
alpha: 0
}, {
duration: 120,
onFinish: function onFinish() {
note.destroy();
}
});
notes.splice(i, 1);
// Track consecutive misses for combo reset in update loop
if (typeof consecutiveMisses === "undefined") {
consecutiveMisses = 0;
}
consecutiveMisses += 1;
if (consecutiveMisses >= 2) {
combo = 0;
comboTxt.setText('');
consecutiveMisses = 0;
}
// --- HEALTH BAR: Decrease health by 2 (or more if many consecutive misses), clamp to 0 ---
if (typeof health !== "undefined") {
var missPenalty = 2;
if (consecutiveMisses >= 3) {
// For every group of 3 consecutive misses, double the penalty
missPenalty = 2 * Math.pow(2, Math.floor(consecutiveMisses / 3));
}
health -= missPenalty;
if (health < 0) {
health = 0;
}
if (healthBarFg) {
healthBarFg.width = health / maxHealth * healthBarBg.width;
}
}
}
// Remove notes that go off screen
if (note.y > GAME_H + 100) {
if (notes.indexOf(note) !== -1) {
notes.splice(notes.indexOf(note), 1);
}
note.destroy();
}
}
// End of song
if (noteIndex >= songNotes.length && notes.length === 0) {
isPlaying = false;
LK.stopMusic();
// Check if level was completed successfully (level progression)
var levelCompleted = score > 0; // Basic completion criteria
if (levelCompleted) {
// Find current level in order and unlock next if needed
var currentOrderIndex = levelOrder.indexOf(currentLevelIndex);
if (currentOrderIndex >= 0 && currentOrderIndex === unlockedLevels - 1) {
// This was the latest unlocked level, unlock the next one
unlockNextLevel();
}
}
// Update high scores if needed
var newHighScore = false;
var newHighCombo = false;
if (score > highScore) {
highScore = score;
storage.highScore = highScore;
newHighScore = true;
}
if (maxCombo > highCombo) {
highCombo = maxCombo;
storage.highCombo = highCombo;
newHighCombo = true;
}
// Update display texts
highScoreTxt.setText("High Score: " + highScore);
highComboTxt.setText("Best Combo: " + highCombo);
// Flash high score displays if new records were set
if (newHighScore) {
LK.effects.flashObject(highScoreTxt, 0x00FF00, 1000);
}
if (newHighCombo) {
LK.effects.flashObject(highComboTxt, 0x00FF00, 1000);
}
// Instead of showing win popup, return to intro screen
levelSelectContainer.visible = false;
scoreTxt.visible = false;
comboTxt.visible = false;
recordTxt.visible = false;
if (healthBarContainer && healthBarContainer.parent) {
healthBarContainer.parent.removeChild(healthBarContainer);
}
introContainer.visible = true;
// Restart tip cycling when returning to intro screen
startTipCycling();
}
};
// --- Start Game ---
function startGame() {
score = 0;
combo = 0;
maxCombo = 0;
scoreTxt.setText('0');
comboTxt.setText('');
notes = [];
noteIndex = 0;
isPlaying = true;
songStartTick = LK.ticks;
consecutiveMisses = 0;
// Hide tips during gameplay
if (tipsContainer) {
tipsContainer.visible = false;
}
// --- Health Bar Setup ---
health = 150;
maxHealth = 150;
// Remove previous health bar if exists
if (healthBarContainer && healthBarContainer.parent) {
healthBarContainer.parent.removeChild(healthBarContainer);
}
healthBarContainer = new Container();
var barW = 900,
barH = 60;
// Use visual assets for health bar
healthBarBg = LK.getAsset('healthBarBg', {
anchorX: 0.5,
anchorY: 0.5,
width: barW,
height: barH
});
healthBarFg = LK.getAsset('healthBarFg', {
anchorX: 0.5,
anchorY: 0.5,
width: barW,
height: barH
});
healthBarContainer.addChild(healthBarBg);
healthBarContainer.addChild(healthBarFg);
// Place at bottom center, above pads
healthBarContainer.x = GAME_W / 2;
healthBarContainer.y = GAME_H - 80;
game.addChild(healthBarContainer);
// Preload all drum sounds to reduce latency
var preloadSounds = ['kickSound', 'snareSound', 'hihatSound', 'tom1Sound', 'crash1Sound'];
for (var i = 0; i < preloadSounds.length; i++) {
var s = LK.getSound(preloadSounds[i]);
if (s && s.play) {
// Play at zero volume to warm up, then stop immediately
s.volume = 0;
s.play();
if (s.stop) {
s.stop();
}
s.volume = 1;
}
}
// Preload music to reduce latency
var preloadMusic = LK.getMusic ? LK.getMusic('MasterofUpit') : null;
if (preloadMusic && preloadMusic.play) {
preloadMusic.volume = 0;
preloadMusic.play();
if (preloadMusic.stop) {
preloadMusic.stop();
}
preloadMusic.volume = 1;
}
// Stop any currently playing music to ensure clean start
LK.stopMusic();
// Play selected level's music with no fade, no loop, and start at full volume for best sync
LK.playMusic(currentMusic, {
loop: false,
fade: {
start: 1,
end: 1,
duration: 0
}
});
}
// --- Game Over Handling (missed notes or end of song) ---
// Handled by LK.showYouWin() or LK.showGameOver() as needed
// --- Responsive UI (center score) ---
scoreTxt.x = LK.gui.top.width / 2;
comboTxt.x = LK.gui.top.width / 2;
// --- Tips Section ---
var tipsContainer = new Container();
tipsContainer.x = 0;
tipsContainer.y = 0; // Will be positioned relative to intro screen
introContainer.addChild(tipsContainer);
// Tips text array
var tips = ["You can creatively jam as you wish on the home screen.", "Keep a consistent beat to increase the combo!", "I wrote the notes by playing them myself ,they are not all perfect :P", "Still in development.", "I love Upit!", "Recommended to play on mobile device.", "S.a A.s", "I have no idea about software or coding", "Cat GBT is my best friend"];
// Shuffle tips array randomly
function shuffleArray(array) {
for (var i = array.length - 1; i > 0; i--) {
var j = Math.floor(Math.random() * (i + 1));
var temp = array[i];
array[i] = array[j];
array[j] = temp;
}
return array;
}
// Create randomized tips array
var randomizedTips = shuffleArray(tips.slice()); // Use slice() to create a copy
var tipText = new Text2(randomizedTips[0], {
size: 45,
fill: "#fff"
});
tipText.anchor.set(0.5, 0.5);
tipText.x = 0; // Center relative to tipsContainer which is already centered
tipText.y = playBtn.y + 120; // Position below play button
tipsContainer.addChild(tipText);
// Current tip index and animation state
var currentTipIndex = 0;
var tipAnimationTimer = null;
var tipDisplayTimer = null;
// Function to show next tip with sliding animation
function showNextTip() {
// Find next tip that's different from current one
var nextTipIndex;
var attempts = 0;
do {
nextTipIndex = (currentTipIndex + 1) % randomizedTips.length;
// If we've gone through all tips, reshuffle and start over
if (nextTipIndex === 0 && attempts === 0) {
randomizedTips = shuffleArray(tips.slice());
// Make sure first tip after reshuffle is different from last shown
if (randomizedTips[0] === tipText.text) {
// Swap first tip with a random other tip
var swapIndex = Math.floor(Math.random() * (randomizedTips.length - 1)) + 1;
var temp = randomizedTips[0];
randomizedTips[0] = randomizedTips[swapIndex];
randomizedTips[swapIndex] = temp;
}
}
attempts++;
currentTipIndex = nextTipIndex;
} while (randomizedTips[nextTipIndex] === tipText.text && attempts < randomizedTips.length);
// Slide out current tip to the left
tween(tipText, {
x: -LK.gui.center.width
}, {
duration: 800,
easing: tween.easeInOut,
onFinish: function onFinish() {
// Change text and position off-screen right
tipText.setText(randomizedTips[nextTipIndex]);
tipText.x = LK.gui.center.width;
// Slide in new tip from the right
tween(tipText, {
x: 0
}, {
duration: 800,
easing: tween.easeInOut
});
}
});
}
// Start the cycling animation only when intro screen is visible
function startTipCycling() {
if (tipDisplayTimer) {
LK.clearInterval(tipDisplayTimer);
}
tipDisplayTimer = LK.setInterval(function () {
if (introContainer.visible && !levelSelectContainer.visible) {
showNextTip();
}
}, 3000); // Change tip every 3 seconds
}
// Hide tips container when not on intro screen
function updateTipsVisibility() {
tipsContainer.visible = introContainer.visible && !levelSelectContainer.visible;
}
// Start tip cycling
startTipCycling();
// --- High Score Display ---
var highScore = storage.highScore || 0;
var highCombo = storage.highCombo || 0;
var highScoreTxt = new Text2("High Score: " + highScore, {
size: 50,
fill: 0xFFD700
});
highScoreTxt.anchor.set(0.5, 0.5);
highScoreTxt.x = 500;
highScoreTxt.y = playBtn.y - 120 - 100;
introColumn.addChild(highScoreTxt);
var highComboTxt = new Text2("Best Combo: " + highCombo, {
size: 50,
fill: 0xFFD700
});
highComboTxt.anchor.set(0.5, 0.5);
highComboTxt.x = 500;
highComboTxt.y = highScoreTxt.y + 70;
introColumn.addChild(highComboTxt);
// --- TEST MODE: Show timeline and tick counter for sync debugging ---
var TEST_MODE = true; // Set to true to enable timeline and tick counter
var timelineBar = null;
var tickCounterTxt = null;
if (TEST_MODE) {
// Timeline bar (shows song progress)
timelineBar = new Container();
var barBg = LK.getAsset('crash1Pad', {
anchorX: 0,
anchorY: 0,
width: LK.gui.top.width - 200,
height: 24
});
barBg.alpha = 0.18;
timelineBar.addChild(barBg);
var barFg = LK.getAsset('hihatPad', {
anchorX: 0,
anchorY: 0,
width: 0,
height: 24
});
barFg.alpha = 0.7;
timelineBar.addChild(barFg);
timelineBar.x = 100;
timelineBar.y = LK.gui.top.height - 60;
LK.gui.top.addChild(timelineBar);
// Tick counter
tickCounterTxt = new Text2('Tick: 0', {
size: 48,
fill: "#fff"
});
tickCounterTxt.anchor.set(0, 0.5);
tickCounterTxt.x = 100;
tickCounterTxt.y = LK.gui.top.height - 100;
LK.gui.top.addChild(tickCounterTxt);
// Update timeline and tick counter every frame
var lastTimelineUpdateTick = -1;
var songTotalTicks = songNotes.length > 0 ? songNotes[songNotes.length - 1].tick : 1;
game.update = function (origUpdate) {
return function () {
if (origUpdate) {
origUpdate.apply(this, arguments);
}
if (isPlaying && TEST_MODE) {
// Update songTotalTicks in case level changed
songTotalTicks = songNotes.length > 0 ? songNotes[songNotes.length - 1].tick : 1;
var relTick = LK.ticks - songStartTick;
// Timeline bar
var progress = Math.min(1, (relTick + NOTE_OFFSET_TICKS) / songTotalTicks);
barFg.width = (LK.gui.top.width - 200) * progress;
// Tick counter
tickCounterTxt.setText('Tick: ' + relTick);
}
// Update tips visibility
updateTipsVisibility();
};
}(game.update);
}
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