Code edit (1 edits merged)
Please save this source code
User prompt
Here is the old code (before the V4 change) that was working : ``` self.spawnGateAtTime = function () { var beatValue = null; if (self.currentNoteIndex < self.currentSong.songBeats.length) { beatValue = self.currentSong.songBeats[self.currentNoteIndex].beat; } var keyNumber = parseInt(beatValue, 10) || 1; var noteKey = 'Key' + keyNumber; var startScale = self.noteSpawnScale; var endScale = 1.0; var speed = self.gateAnimationSpeed; var timeToReachPlayer = Math.log(endScale / startScale) / speed; var beatAngle = centerAngle; if (beatValue === "1") { beatAngle = rightAngle; } else if (beatValue === "2") { beatAngle = leftAngle; } else { beatAngle = centerAngle; } self.lastGateAngle = beatAngle; var allAngles = [leftAngle, centerAngle, rightAngle]; var gateAngles = []; for (var i = 0; i < allAngles.length; i++) { if (allAngles[i] !== beatAngle) { gateAngles.push(allAngles[i]); } } var beatTime = self.currentSong.songBeats[self.currentNoteIndex].time; var now = Date.now(); var songElapsed = now - self.songStartTime; var spawnTime = beatTime - timeToReachPlayer; // Spawn gates for (var j = 0; j < gateAngles.length; j++) { var gate = new Gate(); gate.updateScale(self.noteSpawnScale); gate.spawnTime = Date.now() + 200 / globalSpeed; gate.colorIndex = 0; gate.gateId = getNextGateId(); gate.noteKey = noteKey; gate.directionAngle = gateAngles[j]; if (songElapsed >= spawnTime) { self.gates.push(gate); self.addChild(gate); } else { (function (g) { LK.setTimeout(function () { self.gates.push(g); self.addChild(g); }, spawnTime - songElapsed); })(gate); } } // When spawning 2 gates, spawn an Orb at the free angle (beatAngle) if (gateAngles.length === 2 && orbManager) { if (songElapsed >= spawnTime) { orbManager.spawnOrb(beatAngle); } else { (function (angle) { LK.setTimeout(function () { orbManager.spawnOrb(angle); }, spawnTime - songElapsed); })(beatAngle); } } }; self.update = function () { if (!songStarted) { return; } var now = Date.now(); var songElapsed = now - self.songStartTime; if (self.currentNoteIndex < self.currentSong.songBeats.length) { var nextBeat = self.currentSong.songBeats[self.currentNoteIndex]; if (songElapsed >= nextBeat.time) { if (now - lastBeatTime >= skipBeatDelay) { self.spawnGateAtTime(); lastBeatTime = now; } self.currentNoteIndex++; } } for (var i = self.gates.length - 1; i >= 0; i--) { var gate = self.gates[i]; var currentScale = gate.boundingBox.scaleX; var newScale = currentScale + self.gateAnimationSpeed * currentScale; if (newScale > 3.0) { gate.destroy(); self.gates.splice(i, 1); } else { gate.updateScale(newScale); } } self.checkSongEnd(); }; ``` In current version logic was changed instead of just changing the properties 'time' to 't' and 'beat' to 'b' => Fix the gate logic like it was working before but use the new properties
User prompt
rework the treatment "// Find beats with 'b' property for gates" as now data is already filtered thanks to filterGateData
User prompt
only one gate is spawned : could you idendify the problem ?
User prompt
Update GateManager to use filterGateData instead of raw songListV4 data
User prompt
Update GateManager to use filtered gate data from filterGateData function
User prompt
add a function filterGateData that takes a trackIndex and returns songListV4 beats that contains a 'b' property
User prompt
Update SpeakerManager to use songListV4 format with filtered speaker data
User prompt
use filterSpeakerData in speakerManager instead of using all songListV4 data
User prompt
add a function filterSpeakerData that takes a trackIndex and returns songListV4 beats that contains a 's' property
Code edit (1 edits merged)
Please save this source code
User prompt
Now there are gates but they don't seem to follow the 'b' properties and the previous rule to avoid too close gates isn't repected
User prompt
Now there are gates but they don't seem to follow the 'b' properties and the previous rule to avoid gates too close together isn't respected
User prompt
Good job : Speakers are back working! But still there is no gates :(
User prompt
I see no gates and speakers do not beat...I can't find where the error is
Code edit (5 edits merged)
Please save this source code
User prompt
Now rework the song data loading system to use the new songListV4 format : This format merges songListV3 and speakersBeat. timestamps are in property "t" instead of "time". beat data for gates are in "b" property (not always available) beat data for speakers are in "s" property (not always available) be carefull to not break anything and check twice to see if you did not forget anything
Code edit (1 edits merged)
Please save this source code
User prompt
after selecting a song via the menu, the Speakers aren't visible : Ensure speakers initialisation is done well
User prompt
after selecting a song via the menu, the Speakers aren't visible : Ensure speakers initialisation is done well
Code edit (1 edits merged)
Please save this source code
Code edit (5 edits merged)
Please save this source code
User prompt
set debug off
Code edit (4 edits merged)
Please save this source code
User prompt
after selecting a song via the menu, the runner isn't visible : Ensure runner initialisation is done well
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ var BackgroundManager = Container.expand(function () { var self = Container.call(this); self.bg0 = self.attachAsset('background01', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1366, scaleX: 2.4, scaleY: 2.4, alpha: 1 }); self.bg1 = self.attachAsset('background01', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1366, scaleX: 1.1, scaleY: 1.1, alpha: 1 }); self.bg2 = self.attachAsset('background01', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1366, scaleX: 0.5, scaleY: 0.5, alpha: 1 }); self.bg3 = self.attachAsset('background01', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1366, scaleX: 0.22, scaleY: 0.22, alpha: 1 }); self.bg4 = self.attachAsset('background01', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1366, scaleX: 0.11, scaleY: 0.11, alpha: 1 }); self.tore0 = self.attachAsset('tore', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1366, scaleX: 1.2, scaleY: 1.2, alpha: 0 }); self.tore1 = self.attachAsset('tore', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1366, scaleX: 0.6, scaleY: 0.6, alpha: 0 }); self.tore2 = self.attachAsset('tore', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1366, scaleX: 0.26, scaleY: 0.26, alpha: 0 }); self.tore3 = self.attachAsset('tore', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1366, scaleX: 0.12, scaleY: 0.12, alpha: 0 }); if (isDebug) { self.bg1.tint = 0xFF0000; self.tore1.tint = 0x00FF00; self.bg2.tint = 0x00FFFF; self.tore2.tint = 0xFF00FF; self.bg3.tint = 0xfff200; } self.bgAnimationSpeed = globalSpeed / 1000; self.bgAnimationAcceleration = 2; self.backgrounds = [self.bg0, self.tore0, self.bg1, self.tore1, self.bg2, self.tore2, self.bg3, self.tore3, self.bg4]; self.bgAnimStartTime = Date.now(); self.update = function () { if (!songStarted) { // Stop all background animations when song ends tween.stop(self.bg0, { scaleX: true, scaleY: true }); tween.stop(self.bg1, { scaleX: true, scaleY: true }); tween.stop(self.bg2, { scaleX: true, scaleY: true }); tween.stop(self.bg3, { scaleX: true, scaleY: true }); tween.stop(self.bg4, { scaleX: true, scaleY: true }); tween.stop(self.tore0, { scaleX: true, scaleY: true }); tween.stop(self.tore1, { scaleX: true, scaleY: true }); tween.stop(self.tore2, { scaleX: true, scaleY: true }); tween.stop(self.tore3, { scaleX: true, scaleY: true }); return; } var now = Date.now(); var elapsed = now - self.bgAnimStartTime; var resetTriggered = false; for (var i = 0; i < self.backgrounds.length; i++) { var bg = self.backgrounds[i]; bg.scaleX += self.bgAnimationSpeed * bg.scaleX; bg.scaleY = bg.scaleX; if (bg.scaleX > 3.0) { bg.scaleX = 0.12; bg.scaleY = bg.scaleX; } bg.tint = 0x1697b8; } }; return self; }); var Ball = Container.expand(function () { var self = Container.call(this); var ballGraphics = self.attachAsset('ball', { anchorX: 0.5, anchorY: 0.5, tint: currentColor, alpha: isDebug ? 1 : 0 }); self.speedX = 0; self.speedY = 0; self.lastIntersectingGates = {}; self.lastIntersectingOrbs = {}; // Track which orbs we've intersected self.update = function () { if (!songStarted) { return; } if (runner) { self.x = runner.x; self.y = runner.y; } if (gateManager && gateManager.gates) { for (var i = gateManager.gates.length - 1; i >= 0; i--) { var gate = gateManager.gates[i]; var gateId = gate.gateId; if (self.lastIntersectingGates[gateId] === undefined) { self.lastIntersectingGates[gateId] = false; } var currentIntersecting = gate.gateAsset.scaleX >= minGateDetectionScale && gate.gateAsset.scaleX <= maxGateDetectionScale && self.intersects(gate.boundingBox); if (!self.lastIntersectingGates[gateId] && currentIntersecting) { // Spawn LooseOrbsAnim at ball position with gate's angle var looseOrbsAnim = new LooseOrbsAnim(gate.directionAngle); looseOrbsAnim.x = self.x; looseOrbsAnim.y = self.y; game.addChild(looseOrbsAnim); playHitSound(); // Calculate penalty based on hit timing var now = Date.now(); if (now - lastGateHitTime <= 1000) { // Hit within 1 second - double the penalty (max -10) gatePenaltyValue = Math.max(-10, gatePenaltyValue * 2); } else { // More than 1 second - reset to -2 gatePenaltyValue = -2; } lastGateHitTime = now; // Reduce score by calculated penalty but don't go negative var currentScore = LK.getScore(); var newScore = Math.max(0, currentScore + gatePenaltyValue); LK.setScore(newScore); if (game.updateScore) { game.updateScore(); } // Show penalty text with current penalty value if (scoreLabel && scoreLabel.showPenalty) { scoreLabel.showPenalty(gatePenaltyValue); } if (!gate.isDestroying) { gate.isDestroying = true; tween(gate, { scaleX: 0, scaleY: 0 }, { duration: 300, easing: tween.easeIn, onFinish: function onFinish() { gateManager.destroyGate(gate); } }); } } self.lastIntersectingGates[gateId] = currentIntersecting; } } // Check for orb intersections if (orbManager && orbManager.orbs) { for (var i = orbManager.orbs.length - 1; i >= 0; i--) { var orb = orbManager.orbs[i]; var orbId = orb.orbId; if (self.lastIntersectingOrbs[orbId] === undefined) { self.lastIntersectingOrbs[orbId] = false; } var currentIntersecting = orb.currentScale >= minOrbDetectionScale && orb.currentScale <= maxOrbDetectionScale && self.intersects(orb.boundingBox); if (!self.lastIntersectingOrbs[orbId] && currentIntersecting) { // Spawn SparkAnim at ball position var sparkAnim = new SparkAnim(); sparkAnim.x = self.x; sparkAnim.y = self.y; game.addChild(sparkAnim); // Orb collected - play sound and increase score LK.getSound('grab').play(); LK.setScore(LK.getScore() + 1); if (game.updateScore) { game.updateScore(); } // Destroy the orb orb.destroy(); orbManager.orbs.splice(i, 1); delete self.lastIntersectingOrbs[orbId]; continue; } self.lastIntersectingOrbs[orbId] = currentIntersecting; } } }; return self; }); /* var testGate = new Gate(); var newScale = 1; testGate.scaleX = newScale; testGate.scaleY = newScale; testGate.gateAsset.scaleX = newScale; testGate.gateAsset.scaleY = newScale; testGate.boundingBox.scaleX = newScale; testGate.boundingBox.scaleY = newScale; testGate.boundingBox.alpha = 0.3; game.addChild(testGate); */ var ConfettiAnim = Container.expand(function () { var self = Container.call(this); self.confettiPieces = []; self.spawnTime = Date.now(); self.lifetime = 5000; // 3 seconds total animation self.spawnDuration = 2000; // Spawn confetti over 500ms self.lastSpawnTime = 0; self.spawnInterval = 5; // Spawn every 50ms // Futuristic blue tint var futuristicBlueTint = 0x32cbec; self.spawnConfettiPiece = function () { // Randomly choose between note, note2, and line (rectangle confetti) var assetType; var random = Math.random(); if (random < 0.2) { assetType = 'note'; } else if (random < 0.4) { assetType = 'note2'; } else { assetType = 'line'; // Rectangle confetti } var piece; if (assetType === 'line') { // Create colored rectangle confetti var confettiColors = [0xFF073A, 0x39FF14, 0x00FFFF, 0xF3F315, 0xFF61F6, 0x32cbec]; var randomColor = confettiColors[Math.floor(Math.random() * confettiColors.length)]; piece = self.attachAsset(assetType, { anchorX: 0.5, anchorY: 0.5, tint: randomColor, alpha: 0.8, scaleX: 3 + Math.random() * 5, // Make rectangles wider scaleY: 0.5 + Math.random() * 1.5 // Make rectangles thinner }); } else { // Create note confetti with futuristic blue tint piece = self.attachAsset(assetType, { anchorX: 0.5, anchorY: 0.5, tint: futuristicBlueTint, alpha: 0.8, scaleX: 0.3 + Math.random() * 0.4, scaleY: 0.3 + Math.random() * 0.4 }); } // Random position across top of screen piece.x = Math.random() * 2048; piece.y = -100; // Start above screen // Random horizontal drift and fall speed piece.vx = (Math.random() - 0.5) * 100; // -50 to 50 pixels/sec horizontal drift piece.vy = 400 + Math.random() * 400; // 200 to 400 pixels/sec fall speed piece.rotationSpeed = (Math.random() - 0.5) * 4; // Random rotation self.confettiPieces.push(piece); // Animate fade out over lifetime tween(piece, { alpha: 0 }, { duration: self.lifetime, easing: tween.linear }); }; self.update = function () { var now = Date.now(); var elapsed = now - self.spawnTime; // Spawn new pieces during spawn duration if (elapsed < self.spawnDuration && now - self.lastSpawnTime >= self.spawnInterval) { self.spawnConfettiPiece(); self.lastSpawnTime = now; } // Update all pieces var deltaTime = 16 / 1000; // Assume 60fps for (var i = self.confettiPieces.length - 1; i >= 0; i--) { var piece = self.confettiPieces[i]; // Update position piece.x += piece.vx * deltaTime; piece.y += piece.vy * deltaTime; piece.rotation += piece.rotationSpeed * deltaTime; // Remove if off screen or lifetime exceeded if (piece.y > 2832 || elapsed >= self.lifetime) { piece.destroy(); self.confettiPieces.splice(i, 1); } } // Destroy self when animation complete and no pieces remain if (elapsed >= self.lifetime && self.confettiPieces.length === 0) { self.destroy(); } }; return self; }); var Gate = Container.expand(function () { var self = Container.call(this); self.gateAsset = self.attachAsset('gate', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1366, scaleX: 0.26, scaleY: 0.26, alpha: 1, visible: false }); self.directionAngle = 0; self.boundingBox = self.attachAsset('boundingBox', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 2450, alpha: 1 }); /* width: 200, heigh: 100, */ self.gateColor = 0xFFFFFF; self.gateId = null; self.setColor = function (color) { self.gateColor = color; self.gateAsset.tint = color; { self.boundingBox.alpha = 0.9; } }; self.updateScale = function (newScale) { self.gateAsset.scaleX = newScale; self.gateAsset.scaleY = newScale; self.gateAsset.alpha = Math.min(1, newScale + 0.66); self.boundingBox.scaleX = newScale; self.boundingBox.scaleY = newScale; var distance = (2450 - 1366) * newScale; self.boundingBox.x = centerX + distance * Math.cos(self.directionAngle + Math.PI * 0.5); self.boundingBox.y = centerY + distance * Math.sin(self.directionAngle + Math.PI * 0.5); self.boundingBox.rotation = self.directionAngle; }; return self; }); var GateManager = Container.expand(function () { var self = Container.call(this); self.gates = []; self.gateAnimStartTime = Date.now(); self.gateAnimationSpeed = globalSpeed / 1000; self.currentSong = songListV3[0]; self.songStartTime = Date.now(); self.currentNoteIndex = 0; self.noteSpawnScale = 0.12; self.lastGateAngle = null; self.lastProcessedBeat = -1; self.spawnGateAtTime = function () { var beatValue = null; if (self.currentNoteIndex < self.currentSong.songBeats.length) { beatValue = self.currentSong.songBeats[self.currentNoteIndex].beat; } var keyNumber = parseInt(beatValue, 10) || 1; var noteKey = 'Key' + keyNumber; var keyColor = keyColorMap[noteKey] || currentColor; var startScale = self.noteSpawnScale; var endScale = 1.0; var speed = self.gateAnimationSpeed; var timeToReachPlayer = Math.log(endScale / startScale) / speed; var beatAngle = centerAngle; if (beatValue === "1") { beatAngle = rightAngle; } else if (beatValue === "2") { beatAngle = leftAngle; } else { beatAngle = centerAngle; } self.lastGateAngle = beatAngle; var allAngles = [leftAngle, centerAngle, rightAngle]; var gateAngles = []; for (var i = 0; i < allAngles.length; i++) { if (allAngles[i] !== beatAngle) { gateAngles.push(allAngles[i]); } } var beatTime = self.currentSong.songBeats[self.currentNoteIndex].time; var now = Date.now(); var songElapsed = now - self.songStartTime; var spawnTime = beatTime - timeToReachPlayer; // Spawn gates for (var j = 0; j < gateAngles.length; j++) { var gate = new Gate(); gate.setColor(keyColor); gate.updateScale(self.noteSpawnScale); gate.spawnTime = Date.now() + 200 / globalSpeed; gate.colorIndex = 0; gate.gateId = getNextGateId(); gate.noteKey = noteKey; gate.directionAngle = gateAngles[j]; gate.gateAsset.rotation = gateAngles[j]; if (songElapsed >= spawnTime) { self.gates.push(gate); self.addChild(gate); } else { (function (g) { LK.setTimeout(function () { self.gates.push(g); self.addChild(g); }, spawnTime - songElapsed); })(gate); } } // When spawning 2 gates, spawn an Orb at the free angle (beatAngle) if (gateAngles.length === 2 && orbManager) { if (songElapsed >= spawnTime) { orbManager.spawnOrb(beatAngle); } else { (function (angle) { LK.setTimeout(function () { orbManager.spawnOrb(angle); }, spawnTime - songElapsed); })(beatAngle); } } }; self.update = function () { if (!songStarted) { return; } var now = Date.now(); var songElapsed = now - self.songStartTime; if (self.currentNoteIndex < self.currentSong.songBeats.length) { var nextBeat = self.currentSong.songBeats[self.currentNoteIndex]; if (songElapsed >= nextBeat.time) { if (now - lastBeatTime >= skipBeatDelay) { self.spawnGateAtTime(); lastBeatTime = now; } self.currentNoteIndex++; } } for (var i = self.gates.length - 1; i >= 0; i--) { var gate = self.gates[i]; var currentScale = gate.gateAsset.scaleX; var newScale = currentScale + self.gateAnimationSpeed * currentScale; if (newScale > 3.0) { gate.destroy(); self.gates.splice(i, 1); } else { gate.updateScale(newScale); } } self.checkSongEnd(); }; self.resetSong = function () { self.songStartTime = Date.now(); self.currentNoteIndex = 0; self.lastGateAngle = null; }; self.checkSongEnd = function () { if (self.currentNoteIndex >= self.currentSong.songBeats.length) { var songDuration = self.currentSong.duration || 156000; // Use duration from songListV3 var songElapsed = Date.now() - self.songStartTime; if (songElapsed >= songDuration && songStarted) { // Handle song end songStarted = false; LK.stopMusic(); // Stop progress bar animation if (progressBar) { tween.stop(progressBar.bar, { width: true }); } // Animate speakers out with opposite entrance animation after 2 second delay if (speakerManager && speakerManager.speakers) { LK.setTimeout(function () { for (var i = 0; i < speakerManager.speakers.length; i++) { var speaker = speakerManager.speakers[i]; var exitX, exitY; if (i === 0) { // Left speaker - exit to left exitX = speaker.x - 800; exitY = speaker.y; } else if (i === 1) { // Center speaker - exit to top exitX = speaker.x; exitY = speaker.y - 800; } else { // Right speaker - exit to right exitX = speaker.x + 800; exitY = speaker.y; } tween(speaker, { x: exitX, y: exitY, alpha: 0 }, { duration: 1200, easing: tween.easeIn, onFinish: function onFinish() { // Clear speakers array after all animations complete if (i === speakerManager.speakers.length - 1) { speakerManager.speakers = []; } } }); } }, 1000); } // Return runner and ball to initial position while keeping runner animation running if (runner) { // Set flags for runner to handle transition runner.isReturningToInitial = true; runner.shouldStartIdleAfterReturn = true; // Reset idle state in case it was playing runner.isPlayingIdleAnim = false; tween(runner, { x: 1024, y: 2000, rotation: 0 }, { duration: 1000, easing: tween.easeOut, onFinish: function onFinish() { runner.isReturningToInitial = false; runner.shouldStartIdleAfterReturn = false; runner.startIdleSequence(); // Spawn confetti animation and play cheers sound var confettiAnim = new ConfettiAnim(); game.addChild(confettiAnim); LK.getSound('cheers').play(); } }); } if (ball) { tween(ball, { x: 1024, y: 2000, rotation: 0 }, { duration: 1000, easing: tween.easeOut }); } // Clear all gates for (var j = self.gates.length - 1; j >= 0; j--) { self.gates[j].destroy(); } self.gates = []; // Don't reset song here since we want to keep the state } } }; self.destroyGate = function (gate) { var index = self.gates.indexOf(gate); if (index > -1) { self.gates.splice(index, 1); gate.destroy(); } }; return self; }); var LooseOrbsAnim = Container.expand(function (gateAngle) { var self = Container.call(this); self.orbs = []; self.lifetime = 2000; self.spawnTime = Date.now(); self.gateAngle = gateAngle || 0; // Store the gate angle // Spawn multiple orbs (3-6 orbs) var orbCount = 3 + Math.floor(Math.random() * 3); var randScale = 0.3 + Math.random() * 0.4; for (var i = 0; i < orbCount; i++) { var orbAsset = self.attachAsset('orb', { anchorX: 0.5, anchorY: 0.5, alpha: 0.8, scaleX: randScale, scaleY: randScale }); // Random initial position offset orbAsset.x = (Math.random() - 0.5) * 100; orbAsset.y = (Math.random() - 0.5) * 100; // Use gate angle to influence orb spawn direction var baseAngle = self.gateAngle - Math.PI / 2; // Opposite direction from gate var angleSpread = Math.PI * 0.6; // 108 degrees spread var angle = baseAngle + (Math.random() - 0.5) * angleSpread; var speed = 200 + Math.random() * 200; orbAsset.velocityX = Math.cos(angle) * speed; orbAsset.velocityY = Math.sin(angle) * speed - 200; // Initial upward bias orbAsset.gravity = 1200; // Gravity acceleration self.orbs.push(orbAsset); // Animate orb scale and alpha over time (delayed by 2 seconds) LK.setTimeout(function () { tween(orbAsset, { alpha: 0 }, { duration: self.lifetime, easing: tween.easeOut }); }, 1000); // Rotation animation tween(orbAsset, { rotation: Math.PI * 6 - Math.random() * Math.PI * 12 }, { duration: self.lifetime, easing: tween.linear }); } // Update method for physics simulation self.update = function () { var deltaTime = 16 / 1000; // Assume 60fps for (var i = 0; i < self.orbs.length; i++) { var orb = self.orbs[i]; // Apply gravity to velocity orb.velocityY += orb.gravity * deltaTime; // Update position based on velocity orb.x += orb.velocityX * deltaTime; orb.y += orb.velocityY * deltaTime; orb.scaleX += 0.4 * deltaTime; orb.scaleY = orb.scaleX; } // Check if animation is complete var elapsed = Date.now() - self.spawnTime; if (elapsed >= self.lifetime) { self.destroy(); } }; return self; }); var Note = Container.expand(function () { var self = Container.call(this); var noteGraphics = self.attachAsset('note', { anchorX: 0.5, anchorY: 0.5, alpha: 1 }); self.velocity = { x: 0, y: -5 }; self.lifetime = 800; self.spawnTime = Date.now(); self.noteType = 'note'; self.noteColor = 0xFFFFFF; self.setNoteType = function (type) { self.noteType = type; noteGraphics.destroy(); noteGraphics = self.attachAsset(type, { anchorX: 0.5, anchorY: 0.5, alpha: 1 }); noteGraphics.tint = self.noteColor; }; self.setColor = function (color) { self.noteColor = color; noteGraphics.tint = color; }; self.setVelocity = function (vx, vy) { self.velocity.x = vx; self.velocity.y = vy; }; self.update = function () { self.x += self.velocity.x; self.y += self.velocity.y; var elapsed = Date.now() - self.spawnTime; if (elapsed > self.lifetime) { self.alpha = Math.max(0, 1 - (elapsed - self.lifetime) / 500); } if (elapsed > self.lifetime + 500 || self.y < -100 || self.y > 2832 || self.x < -100 || self.x > 2148) { self.shouldDestroy = true; } }; return self; }); var NoteSparks = Container.expand(function () { var self = Container.call(this); self.notes = []; self.spawnRate = 500; self.lastSpawnTime = 0; self.spawnEnabled = false; self.spawnX = 1024; self.spawnY = 1366; self.spawnVelocityRange = { x: { min: -2, max: 2 }, y: { min: -8, max: -4 } }; self.noteColors = [0xFF073A, 0x39FF14, 0x00FFFF, 0xF3F315, 0xFF61F6]; self.setSpawnPosition = function (x, y) { self.spawnX = x; self.spawnY = y; }; self.setSpawnEnabled = function (enabled) { self.spawnEnabled = enabled; }; self.setSpawnRate = function (rate) { self.spawnRate = rate; }; self.spawnNote = function () { var note = new Note(); note.x = self.spawnX + (Math.random() - 0.5) * 50; note.y = self.spawnY; var vx = self.spawnVelocityRange.x.min + Math.random() * (self.spawnVelocityRange.x.max - self.spawnVelocityRange.x.min); var vy = self.spawnVelocityRange.y.min + Math.random() * (self.spawnVelocityRange.y.max - self.spawnVelocityRange.y.min); note.setVelocity(vx, vy); note.setNoteType(Math.random() > 0.5 ? 'note' : 'note2'); var color = self.noteColors[Math.floor(Math.random() * self.noteColors.length)]; note.setColor(color); note.rotation = (Math.random() - 0.5) * 0.5; self.notes.push(note); self.addChild(note); }; self.spawnBurst = function (count) { for (var i = 0; i < count; i++) { self.spawnNote(); } }; self.update = function () { var now = Date.now(); if (self.spawnEnabled && now - self.lastSpawnTime >= self.spawnRate) { self.spawnNote(); self.lastSpawnTime = now; } for (var i = self.notes.length - 1; i >= 0; i--) { var note = self.notes[i]; if (note.shouldDestroy) { note.destroy(); self.notes.splice(i, 1); } } }; return self; }); var Orb = Container.expand(function () { var self = Container.call(this); var frames = ['orb0', 'orb1', 'orb2', 'orb3', 'orb4', 'orb5']; var orbAssets = []; var currentFrameIndex = 0; var animationInterval = 100; // milliseconds per frame var lastFrameTime = 0; self.directionAngle = 0; self.orbId = null; self.initialSize = 200; self.orbAngleOffsetRatio = 0.15; self.spawnTime = Date.now(); self.currentScale = 0.12; // Track current scale like gates do var glowGraphics = self.attachAsset('glow', { anchorX: 0.5, anchorY: 0.5, alpha: 0.8, width: self.initialSize * 1.5, height: self.initialSize * 1.5, blendMode: 1 }); // Add bounding box for collision detection self.boundingBox = self.attachAsset('boundingCircle', { anchorX: 0.5, anchorY: 0.5, width: self.initialSize * 0.5, height: self.initialSize * 0.5, alpha: 0 }); var _rotateGlow = function rotateGlow() { tween(glowGraphics, { rotation: glowGraphics.rotation + Math.PI * 2 }, { duration: 3000, easing: tween.linear, onFinish: _rotateGlow }); }; _rotateGlow(); // Pulsing scale animation var _pulseGlow = function pulseGlow() { tween(glowGraphics, { scaleX: 0.8, scaleY: 0.8 }, { duration: 500, easing: tween.easeInOut, onFinish: function onFinish() { tween(glowGraphics, { scaleX: 1.6, scaleY: 1.6 }, { duration: 500, easing: tween.easeInOut, onFinish: _pulseGlow }); } }); }; _pulseGlow(); for (var i = 0; i < frames.length; i++) { var asset = self.attachAsset(frames[i], { anchorX: 0.5, anchorY: 0.5, alpha: 0, width: self.initialSize, height: self.initialSize }); orbAssets.push(asset); } // Set the first frame to be visible initially if (orbAssets.length > 0) { orbAssets[0].alpha = 1; } self.updateScale = function (newScale) { self.currentScale = newScale; // Update all frame assets scale and alpha exactly like gates for (var i = 0; i < orbAssets.length; i++) { orbAssets[i].scaleX = newScale; orbAssets[i].scaleY = newScale; // Only update alpha for the currently visible frame if (i === currentFrameIndex) { orbAssets[i].alpha = Math.min(1, newScale + 0.66); } } // Update position based on scale exactly like gates do var distance = (2450 - 1366) * newScale; var angle = self.directionAngle; if (angle != centerAngle) { angle += Math.sign(angle) * self.orbAngleOffsetRatio; } self.x = centerX + distance * Math.cos(angle + Math.PI * 0.5); self.y = centerY + distance * Math.sin(angle + Math.PI * 0.5); self.rotation = angle; }; self.update = function () { var now = Date.now(); if (now - lastFrameTime >= animationInterval) { // Get current scale to maintain proper alpha var currentScale = orbAssets[0].scaleX; var targetAlpha = Math.min(1, currentScale + 0.66); // Fade out the current frame tween(orbAssets[currentFrameIndex], { alpha: 0 }, { duration: animationInterval / 2 }); // Move to the next frame currentFrameIndex = (currentFrameIndex + 1) % frames.length; // Fade in the next frame with proper alpha based on scale tween(orbAssets[currentFrameIndex], { alpha: targetAlpha }, { duration: animationInterval / 2 }); lastFrameTime = now; } }; return self; }); var OrbManager = Container.expand(function () { var self = Container.call(this); self.orbs = []; self.orbSpawnInterval = 1000; // Spawn every 1000ms for now, adjust as needed self.lastOrbSpawnTime = 0; self.orbSpawnScale = 0.12; // Same as gateManager.noteSpawnScale self.orbEndScale = 1.0; self.orbAnimationDuration = 2000; // ms self.spawnOrb = function (angle) { var orb = new Orb(); orb.orbId = getNextGateId(); orb.directionAngle = angle || centerAngle; orb.spawnTime = Date.now(); // Set initial position exactly like gates orb.x = centerX; orb.y = centerY; orb.rotation = angle; orb.updateScale(self.orbSpawnScale); self.orbs.push(orb); self.addChild(orb); // Update last spawn time self.lastOrbSpawnTime = Date.now(); }; self.update = function () { if (!songStarted) { // Clear all orbs when song ends if (self.orbs.length > 0) { for (var i = self.orbs.length - 1; i >= 0; i--) { self.orbs[i].destroy(); } self.orbs = []; } return; } // Check if we need to spawn an orb var now = Date.now(); if (now - self.lastOrbSpawnTime >= 600) { // Check if there's a gate spawn planned in the next 300ms var hasPlannedSpawn = false; if (gateManager && gateManager.currentNoteIndex < gateManager.currentSong.songBeats.length) { var nextBeat = gateManager.currentSong.songBeats[gateManager.currentNoteIndex]; var songElapsed = now - gateManager.songStartTime; var timeToNextBeat = nextBeat.time - songElapsed; if (timeToNextBeat <= 300 && timeToNextBeat > 0) { hasPlannedSpawn = true; } } // Only spawn orb if no gate spawn is planned soon if (!hasPlannedSpawn) { // Spawn orb at centerAngle if no orb was spawned recently self.spawnOrb(centerAngle); self.lastOrbSpawnTime = now; } } // Animate orbs similar to gates for (var i = self.orbs.length - 1; i >= 0; i--) { var orb = self.orbs[i]; var currentScale = orb.currentScale; var newScale = currentScale + gateManager.gateAnimationSpeed * currentScale; if (newScale > 3.0) { orb.destroy(); self.orbs.splice(i, 1); } else { orb.updateScale(newScale); } } }; return self; }); var ProgressBar = Container.expand(function () { var self = Container.call(this); // Background frame (border) self.frame = self.attachAsset('progressFrame', { anchorX: 0.0, anchorY: 0.5, alpha: 0.8 }); // Progress bar (fill) self.bar = self.attachAsset('progressBar', { anchorX: 0.0, anchorY: 0.5, alpha: 0.8 }); // Position bar inside frame self.bar.x = -0; //self.bar.y = 0; // Set initial progress to 0 self.setProgress = function (progress) { progress = Math.max(0, Math.min(1, progress)); // Clamp between 0 and 1 self.bar.width = self.frame.width * progress; }; self.startProgressAnimation = function () { // Get song duration from songListV3 var songDuration = 0; if (gateManager && gateManager.currentSong && gateManager.currentSong.duration) { songDuration = gateManager.currentSong.duration; } if (songDuration > 0) { // Reset progress to 0 and start tween animation self.setProgress(0); tween(self.bar, { width: self.frame.width }, { duration: songDuration, easing: tween.linear }); } }; self.update = function () { // Progress is now handled by tween animation // No need for manual progress calculation }; self.setProgress(0); // Start with empty progress return self; }); var Runner = Container.expand(function () { var self = Container.call(this); // Setup frame animation with assets 001 to 012 var frameAssets = []; var currentFrameIndex = 0; var animationInterval = 2; // milliseconds per frame var lastFrameTime = 0; // Create all 12 frames for (var i = 1; i <= 12; i++) { var frameId = 'runnerDir4_' + (i < 10 ? '00' + i : '0' + i); var asset = self.attachAsset(frameId, { anchorX: 0.5, anchorY: 0.5, tint: 0xFFFFFF, alpha: 0 // Start with all frames hidden }); frameAssets.push(asset); } // Show first frame if (frameAssets.length > 0) { frameAssets[0].alpha = 1; } self.speedX = 0; self.speedY = 0; self.lastIntersectingGates = {}; self.tickCounter = 0; // Setup idle animation frames for when song ends self.idleFrameAssets = []; var currentIdleFrameIndex = 0; var idleAnimationInterval = 100; // milliseconds per frame for idle animation var lastIdleFrameTime = 0; self.isPlayingIdleAnim = false; self.isReturningToInitial = false; self.shouldStartIdleAfterReturn = false; // Make frameAssets accessible from outside self.frameAssets = frameAssets; // Create all 20 idle frames (runnerIdleDir8001 to runnerIdleDir8020) for (var i = 1; i <= 20; i++) { var idleFrameId = 'runnerIdleDir8' + (i < 10 ? '00' + i : '0' + i); var idleAsset = self.attachAsset(idleFrameId, { anchorX: 0.5, anchorY: 0.5, tint: 0xFFFFFF, alpha: 0 // Start with all frames hidden }); self.idleFrameAssets.push(idleAsset); } self.teleportAnim = function () { // Create temporary beam asset at x=1024, y=0 var beam = game.addChild(LK.getAsset('beam', { anchorX: 0.5, anchorY: 0.0, x: 1024, y: 0, alpha: 0, scaleY: 0 })); // Play beamEnter sound on beam appearance LK.getSound('beamEnter').play(); // Animate beam appearance tween(beam, { alpha: 0.8, scaleY: 1.0 }, { duration: 800, easing: tween.easeIn, onFinish: function onFinish() { // Play beamTeleport sound before runner moves up LK.getSound('beamTeleport').play(); // Animate runner moving up to y=-800 tween(self, { y: -800, scaleX: 0.1, alpha: 0.3 }, { duration: 1200, easing: tween.easeInOut, onFinish: function onFinish() { // Keep beam visible for a moment then fade out tween(beam, { alpha: 0, scaleY: 0 }, { duration: 600, easing: tween.easeOut, onFinish: function onFinish() { // Destroy beam after animation beam.destroy(); // Call showMenu after teleport animation completes showMenu(); } }); } }); } }); }; self.rotationAnim = function () { // Create rotation frame assets var rotationFrames = ['runnerRotation_01', 'runnerRotation_02', 'runnerRotation_03']; var rotationAssets = []; // Hide all frames first for (var i = 0; i < self.frameAssets.length; i++) { self.frameAssets[i].alpha = 0; } for (var i = 0; i < self.idleFrameAssets.length; i++) { self.idleFrameAssets[i].alpha = 0; } // Create and show rotation frames for (var i = 0; i < rotationFrames.length; i++) { var asset = self.attachAsset(rotationFrames[i], { anchorX: 0.5, anchorY: 0.5, tint: 0xFFFFFF, alpha: 0 }); rotationAssets.push(asset); } // Animate through rotation frames var frameIndex = 0; var frameInterval = 100; // ms per frame function showNextFrame() { if (frameIndex < rotationAssets.length) { // Hide previous frame if (frameIndex > 0) { rotationAssets[frameIndex - 1].alpha = 0; } // Show current frame rotationAssets[frameIndex].alpha = 1; frameIndex++; LK.setTimeout(showNextFrame, frameInterval); } else { // Animation complete, hide last frame and clean up rotationAssets[rotationAssets.length - 1].alpha = 0; // Destroy rotation assets for (var i = 0; i < rotationAssets.length; i++) { rotationAssets[i].alpha = 0; rotationAssets[i].destroy(); } for (var i = 0; i < self.idleFrameAssets.length; i++) { self.idleFrameAssets[i].alpha = 0; } // Show first idle frame to continue with idle animation if (self.idleFrameAssets.length > 0) { //self.idleFrameAssets[0].alpha = 1; } // Now start idle animation after rotation completes self.idleAnim(); } } // Start animation showNextFrame(); }; self.startIdleSequence = function () { // Hide all running frames for (var i = 0; i < self.frameAssets.length; i++) { self.frameAssets[i].alpha = 0; } // Start with rotation animation self.rotationAnim(); }; self.idleAnim = function () { if (self.isPlayingIdleAnim) { return; // Already playing idle animation } self.isPlayingIdleAnim = true; currentIdleFrameIndex = 0; lastIdleFrameTime = Date.now(); // Hide all running frames for (var i = 0; i < self.frameAssets.length; i++) { self.frameAssets[i].alpha = 0; } // Show first idle frame if (self.idleFrameAssets.length > 0) { self.idleFrameAssets[0].alpha = 1; } // Call teleportAnim after 2 seconds LK.setTimeout(function () { if (self.isPlayingIdleAnim) { // Only if still in idle animation self.teleportAnim(); } }, 2000); }; self.update = function () { // Handle transition from running to idle when returning to initial position if (self.isReturningToInitial) { // Keep running animation during return journey // Hide all idle frames for (var i = 0; i < self.idleFrameAssets.length; i++) { self.idleFrameAssets[i].alpha = 0; } // Show current running frame to ensure visibility if (self.frameAssets.length > 0) { // Make sure at least one frame is visible if (self.frameAssets[currentFrameIndex].alpha === 0) { self.frameAssets[currentFrameIndex].alpha = 1; } } // Continue with normal running animation var now = Date.now(); if (now - lastFrameTime >= animationInterval) { // Hide current frame self.frameAssets[currentFrameIndex].alpha = 0; // Move to next frame currentFrameIndex = (currentFrameIndex + 1) % self.frameAssets.length; // Show next frame self.frameAssets[currentFrameIndex].alpha = 1; lastFrameTime = now; } // Update rotation based on position var angle = Math.atan2(self.y - centerY, self.x - centerX); self.rotation = angle - Math.PI * 0.5; return; } if (!songStarted) { if (!self.isPlayingIdleAnim && !self.isReturningToInitial) { // Hide all running frames when song is not started and not returning for (var i = 0; i < self.frameAssets.length; i++) { self.frameAssets[i].alpha = 0; } } // Handle idle animation when song is not started if (self.isPlayingIdleAnim) { var now = Date.now(); if (now - lastIdleFrameTime >= idleAnimationInterval) { // Hide current idle frame self.idleFrameAssets[currentIdleFrameIndex].alpha = 0; // Move to next idle frame currentIdleFrameIndex = (currentIdleFrameIndex + 1) % self.idleFrameAssets.length; // Show next idle frame self.idleFrameAssets[currentIdleFrameIndex].alpha = 1; lastIdleFrameTime = now; } } return; } // Reset idle animation when song starts if (self.isPlayingIdleAnim) { self.isPlayingIdleAnim = false; // Hide all idle frames for (var i = 0; i < self.idleFrameAssets.length; i++) { self.idleFrameAssets[i].alpha = 0; } // Show first running frame currentFrameIndex = 0; if (self.frameAssets.length > 0) { self.frameAssets[0].alpha = 1; } } // Update rotation based on position var angle = Math.atan2(self.y - centerY, self.x - centerX); self.rotation = angle - Math.PI * 0.5; // Animate frames var now = Date.now(); if (now - lastFrameTime >= animationInterval) { // Hide current frame self.frameAssets[currentFrameIndex].alpha = 0; // Move to next frame currentFrameIndex = (currentFrameIndex + 1) % self.frameAssets.length; // Show next frame self.frameAssets[currentFrameIndex].alpha = 1; lastFrameTime = now; } // self.tickCounter++; // if (self.tickCounter >= 5) { // self.scaleX *= -1; // self.tickCounter = 0; // } }; return self; }); var ScoreLabel = Container.expand(function () { var self = Container.call(this); self.scoreText = new Text2('0', { size: 160, fill: 0xFFFFFF }); self.scoreText.anchor.set(0.5, 0.5); self.addChild(self.scoreText); // Add penalty text self.penaltyText = new Text2('-2', { size: 120, fill: 0xFF0000 }); self.penaltyText.anchor.set(-0.5, 0.5); self.penaltyText.y = 100; // Position below score self.penaltyText.alpha = 0; // Start hidden self.addChild(self.penaltyText); self.updateScore = function (newScore) { self.scoreText.setText(newScore.toString()); // Animate score with scale effect tween(self, { scaleX: 1.3, scaleY: 1.3 }, { duration: 150, easing: tween.easeOut, onFinish: function onFinish() { tween(self, { scaleX: 1.0, scaleY: 1.0 }, { duration: 150, easing: tween.easeIn }); } }); }; self.showPenalty = function (penaltyValue) { penaltyValue = penaltyValue || -2; // Update penalty text with current value self.penaltyText.setText(penaltyValue.toString()); // Reset any ongoing animations tween.stop(self.penaltyText, { alpha: true, y: true }); // Reset position and alpha self.penaltyText.y = 150; self.penaltyText.alpha = 1; // Set random anchor X between -0.5 and 1.5 self.penaltyText.anchor.x = -0.5 + Math.random() * 2.0; // Animate penalty text - fade out and move up tween(self.penaltyText, { alpha: 0, y: 50 }, { duration: 1000, easing: tween.easeOut }); }; return self; }); var SparkAnim = Container.expand(function () { var self = Container.call(this); // Randomly select between note and note2 var assetType = Math.random() > 0.5 ? 'note' : 'note2'; var glowGraphics = self.attachAsset(assetType, { anchorX: 0.5, anchorY: 0.5, alpha: 1.0, scaleX: 1, scaleY: 1, tint: 0x32cbec }); self.lifetime = 1500; self.spawnTime = Date.now(); // Animate the glow with vertical movement, acceleration and alpha var initialVelocity = -200; // Start moving upward var acceleration = -2000; // Accelerate downward var deltaTime = 16; // 60fps frame time in ms var velocity = initialVelocity; // Create update function for physics movement self.update = function () { velocity += acceleration * (deltaTime / 1000); // Apply acceleration glowGraphics.y += velocity * (deltaTime / 1000); // Update position // Check if animation is complete var elapsed = Date.now() - self.spawnTime; if (elapsed >= self.lifetime) { self.destroy(); } }; // Animate alpha fade out tween(glowGraphics, { alpha: 0 }, { duration: self.lifetime, easing: tween.easeOut }); return self; }); var Speaker = Container.expand(function () { var self = Container.call(this); var speakerGraphics = self.attachAsset('speaker', { anchorX: 0.5, anchorY: 0.5, alpha: 1 }); self.volume = 1.0; self.isPlaying = false; self.setVolume = function (vol) { self.volume = Math.max(0, Math.min(1, vol)); }; self.toggleState = function () { self.isPlaying = !self.isPlaying; speakerGraphics.alpha = self.isPlaying ? 1.0 : 0.5; }; return self; }); var SpeakerManager = Container.expand(function () { var self = Container.call(this); self.speakers = []; self.lastBeatTime = 0; self.beatCooldown = 200; self.speakerSongData = speakersBeat[0]; self.currentBeatIndex = 0; self.songStartTime = 0; // Define speakerPositions in class scope so it's accessible in update method var speakerPositions = [{ x: 1024 - 500, y: 512 }, { x: 1024, y: 512 }, { x: 1024 + 500, y: 512 }]; self.initializeSpeakers = function () { for (var i = 0; i < 3; i++) { var speaker = new Speaker(); var finalX = speakerPositions[i].x; var finalY = speakerPositions[i].y; // Set initial positions for entrance animation if (i === 0) { // Left speaker - comes from left speaker.x = finalX - 800; speaker.y = finalY; } else if (i === 1) { // Center speaker - comes from top speaker.x = finalX; speaker.y = finalY - 800; } else { // Right speaker - comes from right speaker.x = finalX + 800; speaker.y = finalY; } speaker.scaleX = 0.8; speaker.scaleY = 0.8; speaker.isBigBumping = false; self.speakers.push(speaker); self.addChild(speaker); // Set delay for entrance order: left & right first, then center var delay; if (i === 0 || i === 2) { // Left and right speakers - no delay delay = 0; } else { // Center speaker - delay after left and right delay = 300; } LK.setTimeout(function (spkr, targetX, targetY) { return function () { tween(spkr, { x: targetX, y: targetY }, { duration: 800, easing: tween.easeOut }); }; }(speaker, finalX, finalY), delay); } }; self.onBeat = function (beatValue) { var now = Date.now(); if (now - self.lastBeatTime >= self.beatCooldown) { var speakerIndex = -1; if (beatValue === "1") { speakerIndex = 1; } else if (beatValue === "2") { speakerIndex = 2; } else { speakerIndex = 0; } if (speakerIndex >= 0 && speakerIndex < self.speakers.length) { var mainSpeaker = self.speakers[speakerIndex]; mainSpeaker.isBigBumping = true; self.spawnNoteSparks(mainSpeaker); tween(mainSpeaker, { scaleX: 1.2, scaleY: 1.2 }, { duration: 100, easing: tween.easeOut, onFinish: function onFinish() { tween(mainSpeaker, { scaleX: 0.8, scaleY: 0.8 }, { duration: 200, easing: tween.easeIn, onFinish: function onFinish() { mainSpeaker.isBigBumping = false; } }); } }); } self.lastBeatTime = now; } }; self.update = function () { if (songStarted) { // Initialize speakers only once when song starts if (self.speakers.length === 0) { self.initializeSpeakers(); } for (var i = 0; i < self.speakers.length; i++) { var speaker = self.speakers[i]; var time = Date.now() * 0.003; var twistAngle = Math.sin(time + i * 0.5) * 0.15; speaker.rotation = twistAngle; if (!speaker.isBigBumping) { var scaleValue = 0.8 + Math.sin(time * 2 + i * 0.3) * 0.05; speaker.scaleX = scaleValue; speaker.scaleY = scaleValue; // Add dancing up/down movement var dancingOffset = Math.sin(time * 3 + i * 0.7) * 10; speaker.y = speakerPositions[i].y + dancingOffset; } } } if (!songStarted) { // Don't clear speakers array immediately to allow exit animation // The array will be cleared after the animation completes return; } var now = Date.now(); var songElapsed = now - self.songStartTime; if (self.currentBeatIndex < self.speakerSongData.songBeats.length) { var nextBeat = self.speakerSongData.songBeats[self.currentBeatIndex]; if (songElapsed >= nextBeat.time) { self.onBeat(nextBeat.beat); self.currentBeatIndex++; } } else { var lastBeatTime = self.speakerSongData.songBeats[self.speakerSongData.songBeats.length - 1].time; if (songElapsed > lastBeatTime + 5000) { self.songStartTime = Date.now(); self.currentBeatIndex = 0; } } }; self.spawnNoteSparks = function (speaker) { var noteCount = 3 + Math.floor(Math.random() * 3); for (var i = 0; i < noteCount; i++) { var note = new Note(); var angle = Math.random() * Math.PI * 2; var distance = 50 + Math.random() * 100; note.x = speaker.x + Math.cos(angle) * distance; note.y = speaker.y + Math.sin(angle) * distance; var speed = 3 + Math.random() * 5; note.setVelocity(Math.cos(angle) * speed, Math.sin(angle) * speed - 2); note.setNoteType(Math.random() > 0.5 ? 'note' : 'note2'); var futuristicColors = [0x32cbec]; var color = futuristicColors[Math.floor(Math.random() * futuristicColors.length)]; note.setColor(color); note.rotation = (Math.random() - 0.5) * 0.5; note.scaleX = 0.5; note.scaleY = 0.5; if (noteSparks) { noteSparks.notes.push(note); noteSparks.addChild(note); } } }; return self; }); var StartButton = Container.expand(function () { var self = Container.call(this); self.buttonBg = self.attachAsset('start', { anchorX: 0.5, anchorY: 0.5 }); self.x = centerX; self.y = centerY; self.down = function () { if (songStarted) { return; } songStarted = true; if (isDebug) { LK.playMusic('track_test'); } else { LK.playMusic('track_01'); } if (gateManager) { gateManager.songStartTime = Date.now(); gateManager.currentNoteIndex = 0; } if (speakerManager) { speakerManager.songStartTime = Date.now(); speakerManager.currentBeatIndex = 0; } if (noteSparks) {} // Show score label when game starts // Show score label when game starts if (scoreLabel) { scoreLabel.visible = true; } // Show progress bar when game starts if (progressBar) { progressBar.visible = true; progressBar.startProgressAnimation(); } tween(self, { alpha: 0 }, { duration: 500, easing: tween.easeOut, onFinish: function onFinish() { self.destroy(); } }); }; return self; }); var WorldManager = Container.expand(function () { var self = Container.call(this); var assetWidth = 2732; var screenWidth = 2048; var totalContentWidth = assetWidth * 2; self.x_center_view = -(totalContentWidth / 2 - screenWidth / 2); self.shiftAmplitude = 1024; self.shiftDurationOneWay = 15000; self._isShifting = false; self._animateToRandomTarget = function () { if (!songStarted || !self._isShifting) { self._isShifting = false; tween.stop(self, { x: true }); return; } var minTargetX = self.x_center_view - self.shiftAmplitude; var maxTargetX = self.x_center_view + self.shiftAmplitude; var randomTargetX = minTargetX + Math.random() * (maxTargetX - minTargetX); var currentX = self.x; var distanceToTravel = Math.abs(currentX - randomTargetX); if (distanceToTravel < 50) { LK.setTimeout(self._animateToRandomTarget, 0); return; } var speed = self.shiftAmplitude / self.shiftDurationOneWay; if (speed <= 0) { speed = (self.shiftAmplitude > 0 ? self.shiftAmplitude : 1024) / 15000; if (speed <= 0) { speed = 0.05; } } var dynamicDuration = distanceToTravel / speed; dynamicDuration = Math.max(500, Math.min(dynamicDuration, self.shiftDurationOneWay * 2)); tween(self, { x: randomTargetX }, { duration: dynamicDuration, easing: tween.easeInOut, onFinish: self._animateToRandomTarget }); }; self._initiateShift = function () { if (self._isShifting) { return; } self._isShifting = true; self._animateToRandomTarget(); }; self.update = function () { if (songStarted && !self._isShifting) { self._initiateShift(); } else if (!songStarted && self._isShifting) { self._isShifting = false; tween.stop(self, { x: true }); tween(self, { x: self.x_center_view }, { duration: 1000, easing: tween.easeOut }); } }; self.x = self.x_center_view; self.y = 0; self.bgLeft = self.attachAsset('world01', { anchorX: 0.5, anchorY: 0.5, x: assetWidth / 2, y: centerY, scaleX: 1.0, scaleY: 1.0 }); self.bgRight = self.attachAsset('world01', { anchorX: 0.5, anchorY: 0.5, x: assetWidth / 2 + assetWidth, y: centerY, scaleX: -1.0, scaleY: 1.0 }); return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000c33 }); /**** * Game Code ****/ var centerX = 1024; var centerY = 1366; var neonColors = [0x39FF14, 0xFF073A, 0x00FFFF, 0xF3F315, 0xFF61F6, 0xFF9900]; var keyColorMap = { 'Key0': 0x39FF14, 'Key1': 0xFF073A, 'Key2': 0x00FFFF, 'Key3': 0xF3F315, 'Key4': 0xFF61F6, 'Key5': 0xFF9900, 'Key6': 0x39FF14, 'Key7': 0xFF073A, 'Key8': 0x00FFFF, 'Key9': 0xF3F315, 'Key10': 0xFF61F6, 'Key11': 0xFF9900, 'Key12': 0x39FF14, 'Key13': 0xFF073A, 'Key14': 0x00FFFF }; var currentColor = neonColors[Math.floor(Math.random() * neonColors.length)]; function drawPolygon(coordinates, tint) { log("drawPolygon ", coordinates); var lines = []; for (var i = 0; i < coordinates.length; i++) { var startPoint = coordinates[i]; var endPoint = coordinates[(i + 1) % coordinates.length]; var line = drawLine(startPoint.x, startPoint.y, endPoint.x, endPoint.y, tint); lines.push(line); } return lines; } function updatePolygon(lines, newCoordinates, scale) { log("updatePolygon ", lines, scale); if (lines.length !== newCoordinates.length) { error("updatePolygon error: lines and newCoordinates length mismatch"); return lines; } for (var i = 0; i < lines.length; i++) { var startPoint = newCoordinates[i]; var endPoint = newCoordinates[(i + 1) % newCoordinates.length]; updateLine(lines[i], startPoint.x, startPoint.y, endPoint.x, endPoint.y, scale); } return lines; } function drawLine(x1, y1, x2, y2, tint) { log("drawLine ", x1, y1); var line = LK.getAsset('line', { anchorX: 0.0, anchorY: 0.0, x: x1, y: y1, tint: tint }); line.startX = x1; line.startY = y1; line.endX = x2; line.endY = y2; var distance = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2)); line.width = distance; var angle = Math.atan2(y2 - y1, x2 - x1); line.rotation = angle; return line; } function updateLine(line, newX1, newY1, newX2, newY2, scale) { log("updateLine ", line); scale = scale === undefined ? 1 : scale; var midX = (newX1 + newX2) / 2; var midY = (newY1 + newY2) / 2; newX1 = midX + (newX1 - midX) * scale; newY1 = midY + (newY1 - midY) * scale; newX2 = midX + (newX2 - midX) * scale; newY2 = midY + (newY2 - midY) * scale; line.x = newX1; line.y = newY1; line.startX = newX1; line.startY = newY1; line.endX = newX2; line.endY = newY2; var distance = Math.sqrt(Math.pow(newX2 - newX1, 2) + Math.pow(newY2 - newY1, 2)); line.width = distance; var angle = Math.atan2(newY2 - newY1, newX2 - newX1); line.rotation = angle; return line; } function log() { if (isDebug) { console.log(arguments); } } var songTracks = ["track_01", "track_02", "track_03"]; var songListV3 = [{ "name": "Words Fly Fast", "duration": 156000, // Real 157240, "songBeats": [{ "time": 651, "beat": "1" }, { "time": 1256, "beat": "1" }, { "time": 1800, "beat": "1" }, { "time": 2364, "beat": "1" }, { "time": 2828, "beat": "1" }, { "time": 3324, "beat": "1" }, { "time": 3708, "beat": "1" }, { "time": 4192, "beat": "2" }, { "time": 4804, "beat": "2" }, { "time": 5320, "beat": "2" }, { "time": 5796, "beat": "2" }, { "time": 6240, "beat": "2" }, { "time": 6692, "beat": "2" }, { "time": 7176, "beat": "2" }, { "time": 7640, "beat": "2" }, { "time": 8092, "beat": "1" }, { "time": 8576, "beat": "2" }, { "time": 9124, "beat": "1" }, { "time": 9580, "beat": "2" }, { "time": 10084, "beat": "1" }, { "time": 10548, "beat": "2" }, { "time": 11072, "beat": "1" }, { "time": 11556, "beat": "2" }, { "time": 12092, "beat": "1" }, { "time": 12564, "beat": "2" }, { "time": 13008, "beat": "1" }, { "time": 13400, "beat": "2" }, { "time": 13916, "beat": "1" }, { "time": 14460, "beat": "2" }, { "time": 14944, "beat": "1" }, { "time": 15360, "beat": "2" }, { "time": 17340, "beat": "1" }, { "time": 18260, "beat": "2" }, { "time": 19196, "beat": "1" }, { "time": 20064, "beat": "2" }, { "time": 21092, "beat": "1" }, { "time": 22072, "beat": "2" }, { "time": 23100, "beat": "1" }, { "time": 24040, "beat": "2" }, { "time": 24988, "beat": "1" }, { "time": 25884, "beat": "2" }, { "time": 26876, "beat": "1" }, { "time": 27892, "beat": "2" }, { "time": 28820, "beat": "1" }, { "time": 29688, "beat": "2" }, { "time": 30728, "beat": "1" }, { "time": 31696, "beat": "2" }, { "time": 32656, "beat": "1" }, { "time": 33624, "beat": "2" }, { "time": 34673, "beat": "1" }, { "time": 35692, "beat": "2" }, { "time": 36628, "beat": "1" }, { "time": 37536, "beat": "2" }, { "time": 38516, "beat": "1" }, { "time": 39372, "beat": "2" }, { "time": 40524, "beat": "1" }, { "time": 41028, "beat": "1" }, { "time": 43080, "beat": "2" }, { "time": 43564, "beat": "2" }, { "time": 44400, "beat": "1" }, { "time": 44948, "beat": "1" }, { "time": 46888, "beat": "2" }, { "time": 47412, "beat": "2" }, { "time": 48260, "beat": "1" }, { "time": 48818, "beat": "1" }, { "time": 50816, "beat": "2" }, { "time": 51524, "beat": "2" }, { "time": 52168, "beat": "1" }, { "time": 52684, "beat": "1" }, { "time": 54540, "beat": "3" }, { "time": 55488, "beat": "3" }, { "time": 56448, "beat": "3" }, { "time": 57436, "beat": "3" }, { "time": 58412, "beat": "1" }, { "time": 59240, "beat": "2" }, { "time": 59988, "beat": "1" }, { "time": 60808, "beat": "2" }, { "time": 61636, "beat": "1" }, { "time": 63800, "beat": "1" }, { "time": 64688, "beat": "2" }, { "time": 65656, "beat": "1" }, { "time": 66544, "beat": "2" }, { "time": 67492, "beat": "1" }, { "time": 68432, "beat": "2" }, { "time": 69369, "beat": "1" }, { "time": 70336, "beat": "2" }, { "time": 71416, "beat": "1" }, { "time": 72324, "beat": "2" }, { "time": 73408, "beat": "1" }, { "time": 74316, "beat": "2" }, { "time": 75276, "beat": "1" }, { "time": 76204, "beat": "2" }, { "time": 77248, "beat": "2" }, { "time": 78232, "beat": "1" }, { "time": 79168, "beat": "2" }, { "time": 81048, "beat": "1" }, { "time": 81996, "beat": "2" }, { "time": 83096, "beat": "1" }, { "time": 84064, "beat": "2" }, { "time": 85040, "beat": "1" }, { "time": 86008, "beat": "2" }, { "time": 86956, "beat": "1" }, { "time": 87976, "beat": "2" }, { "time": 88832, "beat": "1" }, { "time": 89844, "beat": "2" }, { "time": 90832, "beat": "1" }, { "time": 92672, "beat": "3" }, { "time": 93156, "beat": "3" }, { "time": 93720, "beat": "3" }, { "time": 94329, "beat": "3" }, { "time": 94812, "beat": "3" }, { "time": 95256, "beat": "3" }, { "time": 95720, "beat": "1" }, { "time": 96496, "beat": "2" }, { "time": 97556, "beat": "3" }, { "time": 98112, "beat": "3" }, { "time": 98624, "beat": "3" }, { "time": 99100, "beat": "3" }, { "time": 99604, "beat": "1" }, { "time": 100440, "beat": "2" }, { "time": 101420, "beat": "1" }, { "time": 102388, "beat": "2" }, { "time": 103336, "beat": "1" }, { "time": 104324, "beat": "2" }, { "time": 105172, "beat": "1" }, { "time": 106260, "beat": "3" }, { "time": 106836, "beat": "3" }, { "time": 107392, "beat": "3" }, { "time": 108028, "beat": "2" }, { "time": 108692, "beat": "1" }, { "time": 109540, "beat": "2" }, { "time": 110488, "beat": "1" }, { "time": 111932, "beat": "2" }, { "time": 112888, "beat": "1" }, { "time": 113796, "beat": "2" }, { "time": 114864, "beat": "1" }, { "time": 115904, "beat": "2" }, { "time": 116864, "beat": "2" }, { "time": 117792, "beat": "1" }, { "time": 119184, "beat": "2" }, { "time": 120244, "beat": "1" }, { "time": 121112, "beat": "2" }, { "time": 122121, "beat": "3" }, { "time": 122744, "beat": "3" }, { "time": 123260, "beat": "3" }, { "time": 123784, "beat": "3" }, { "time": 124217, "beat": "3" }, { "time": 125620, "beat": "1" }, { "time": 126668, "beat": "2" }, { "time": 127788, "beat": "1" }, { "time": 128796, "beat": "2" }, { "time": 129716, "beat": "1" }, { "time": 130884, "beat": "2" }, { "time": 131936, "beat": "1" }, { "time": 132932, "beat": "2" }, { "time": 134092, "beat": "1" }, { "time": 135124, "beat": "2" }, { "time": 136160, "beat": "1" }, { "time": 137128, "beat": "2" }, { "time": 139693, "beat": "3" }, { "time": 140208, "beat": "3" }, { "time": 140712, "beat": "3" }, { "time": 141216, "beat": "3" }, { "time": 141700, "beat": "3" }, { "time": 142164, "beat": "3" }, { "time": 142668, "beat": "3" }, { "time": 143164, "beat": "3" }, { "time": 143668, "beat": "1" }, { "time": 144484, "beat": "2" }, { "time": 145412, "beat": "1" }, { "time": 146340, "beat": "2" }, { "time": 147708, "beat": "3" }, { "time": 148304, "beat": "3" }, { "time": 148820, "beat": "3" }, { "time": 149312, "beat": "3" }, { "time": 149908, "beat": "1" }, { "time": 150804, "beat": "2" }, { "time": 151784, "beat": "3" }, { "time": 152328, "beat": "3" }, { "time": 152832, "beat": "3" }, { "time": 153236, "beat": "3" }, { "time": 153680, "beat": "1" }, { "time": 154518, "beat": "2" }] }, { "name": "Freedom", "duration": 153600, "songBeats": [{ "time": 3218, "beat": "1" }, { "time": 3522, "beat": "1" }, { "time": 4358, "beat": "2" }, { "time": 4661, "beat": "2" }, { "time": 5378, "beat": "1" }, { "time": 5682, "beat": "1" }, { "time": 5980, "beat": "1" }, { "time": 6557, "beat": "2" }, { "time": 6862, "beat": "2" }, { "time": 7166, "beat": "2" }, { "time": 7670, "beat": "1" }, { "time": 7974, "beat": "1" }, { "time": 8271, "beat": "1" }, { "time": 8719, "beat": "2" }, { "time": 9023, "beat": "2" }, { "time": 9322, "beat": "2" }, { "time": 9926, "beat": "0" }, { "time": 10234, "beat": "0" }, { "time": 11037, "beat": "2" }, { "time": 11341, "beat": "2" }, { "time": 11741, "beat": "1" }, { "time": 12044, "beat": "1" }, { "time": 12278, "beat": "2" }, { "time": 12578, "beat": "2" }, { "time": 12842, "beat": "1" }, { "time": 13155, "beat": "1" }, { "time": 13438, "beat": "2" }, { "time": 13744, "beat": "2" }, { "time": 13982, "beat": "1" }, { "time": 14289, "beat": "1" }, { "time": 14569, "beat": "2" }, { "time": 14875, "beat": "2" }, { "time": 15233, "beat": "1" }, { "time": 15544, "beat": "1" }, { "time": 15789, "beat": "2" }, { "time": 16099, "beat": "2" }, { "time": 16340, "beat": "1" }, { "time": 16641, "beat": "1" }, { "time": 16881, "beat": "2" }, { "time": 17186, "beat": "2" }, { "time": 17921, "beat": "1" }, { "time": 18193, "beat": "1" }, { "time": 18447, "beat": "1" }, { "time": 18697, "beat": "1" }, { "time": 19007, "beat": "1" }, { "time": 19738, "beat": "2" }, { "time": 20045, "beat": "2" }, { "time": 20340, "beat": "2" }, { "time": 21321, "beat": "2" }, { "time": 21623, "beat": "2" }, { "time": 21934, "beat": "2" }, { "time": 22223, "beat": "2" }, { "time": 23453, "beat": "2" }, { "time": 23767, "beat": "2" }, { "time": 24057, "beat": "2" }, { "time": 26197, "beat": "1" }, { "time": 26507, "beat": "1" }, { "time": 27085, "beat": "1" }, { "time": 27387, "beat": "1" }, { "time": 27698, "beat": "1" }, { "time": 28473, "beat": "3" }, { "time": 29066, "beat": "3" }, { "time": 29658, "beat": "3" }, { "time": 30197, "beat": "3" }, { "time": 30770, "beat": "3" }, { "time": 31071, "beat": "3" }, { "time": 31285, "beat": "2" }, { "time": 31596, "beat": "2" }, { "time": 32062, "beat": "1" }, { "time": 32367, "beat": "1" }, { "time": 32663, "beat": "1" }, { "time": 33129, "beat": "2" }, { "time": 33430, "beat": "2" }, { "time": 33736, "beat": "2" }, { "time": 34190, "beat": "1" }, { "time": 34491, "beat": "1" }, { "time": 34798, "beat": "1" }, { "time": 35218, "beat": "2" }, { "time": 35520, "beat": "2" }, { "time": 35829, "beat": "2" }, { "time": 36417, "beat": "3" }, { "time": 36731, "beat": "3" }, { "time": 37021, "beat": "3" }, { "time": 37337, "beat": "3" }, { "time": 38194, "beat": "1" }, { "time": 38504, "beat": "1" }, { "time": 39194, "beat": "2" }, { "time": 39509, "beat": "2" }, { "time": 40170, "beat": "1" }, { "time": 40471, "beat": "1" }, { "time": 41241, "beat": "2" }, { "time": 41551, "beat": "2" }, { "time": 42277, "beat": "1" }, { "time": 42583, "beat": "1" }, { "time": 42878, "beat": "1" }, { "time": 43417, "beat": "2" }, { "time": 43731, "beat": "2" }, { "time": 44029, "beat": "2" }, { "time": 45454, "beat": "3" }, { "time": 45917, "beat": "3" }, { "time": 46223, "beat": "3" }, { "time": 46429, "beat": "3" }, { "time": 46735, "beat": "3" }, { "time": 47197, "beat": "2" }, { "time": 47509, "beat": "2" }, { "time": 47803, "beat": "2" }, { "time": 49050, "beat": "1" }, { "time": 49354, "beat": "1" }, { "time": 49660, "beat": "1" }, { "time": 51274, "beat": "2" }, { "time": 51574, "beat": "2" }, { "time": 51885, "beat": "2" }, { "time": 53692, "beat": "1" }, { "time": 53995, "beat": "1" }, { "time": 54293, "beat": "1" }, { "time": 54600, "beat": "1" }, { "time": 54893, "beat": "1" }, { "time": 56858, "beat": "0" }, { "time": 57361, "beat": "0" }, { "time": 57969, "beat": "0" }, { "time": 58489, "beat": "0" }, { "time": 58986, "beat": "2" }, { "time": 59290, "beat": "2" }, { "time": 60113, "beat": "1" }, { "time": 60416, "beat": "1" }, { "time": 61138, "beat": "2" }, { "time": 61438, "beat": "2" }, { "time": 61741, "beat": "2" }, { "time": 62366, "beat": "1" }, { "time": 62675, "beat": "1" }, { "time": 63453, "beat": "2" }, { "time": 63756, "beat": "2" }, { "time": 64141, "beat": "3" }, { "time": 64745, "beat": "3" }, { "time": 65057, "beat": "3" }, { "time": 65833, "beat": "1" }, { "time": 66138, "beat": "1" }, { "time": 66994, "beat": "2" }, { "time": 67298, "beat": "2" }, { "time": 68093, "beat": "1" }, { "time": 68399, "beat": "1" }, { "time": 69121, "beat": "2" }, { "time": 69426, "beat": "2" }, { "time": 70138, "beat": "1" }, { "time": 70439, "beat": "1" }, { "time": 70746, "beat": "1" }, { "time": 71342, "beat": "2" }, { "time": 71653, "beat": "2" }, { "time": 73313, "beat": "3" }, { "time": 73857, "beat": "3" }, { "time": 74174, "beat": "3" }, { "time": 75786, "beat": "1" }, { "time": 76088, "beat": "1" }, { "time": 76396, "beat": "1" }, { "time": 77390, "beat": "2" }, { "time": 77692, "beat": "2" }, { "time": 77998, "beat": "2" }, { "time": 78977, "beat": "1" }, { "time": 79281, "beat": "1" }, { "time": 79590, "beat": "1" }, { "time": 80665, "beat": "2" }, { "time": 80975, "beat": "2" }, { "time": 82473, "beat": "1" }, { "time": 82782, "beat": "1" }, { "time": 83190, "beat": "2" }, { "time": 83499, "beat": "2" }, { "time": 83937, "beat": "3" }, { "time": 85038, "beat": "3" }, { "time": 85341, "beat": "3" }, { "time": 85953, "beat": "1" }, { "time": 86263, "beat": "1" }, { "time": 87086, "beat": "2" }, { "time": 87391, "beat": "2" }, { "time": 88123, "beat": "1" }, { "time": 88424, "beat": "1" }, { "time": 89153, "beat": "2" }, { "time": 89457, "beat": "2" }, { "time": 89766, "beat": "2" }, { "time": 90221, "beat": "1" }, { "time": 90524, "beat": "1" }, { "time": 91150, "beat": "3" }, { "time": 91451, "beat": "3" }, { "time": 91826, "beat": "3" }, { "time": 92136, "beat": "3" }, { "time": 93077, "beat": "1" }, { "time": 93386, "beat": "1" }, { "time": 94166, "beat": "2" }, { "time": 94480, "beat": "2" }, { "time": 95386, "beat": "1" }, { "time": 95686, "beat": "1" }, { "time": 96617, "beat": "2" }, { "time": 96926, "beat": "2" }, { "time": 97798, "beat": "1" }, { "time": 98103, "beat": "1" }, { "time": 98938, "beat": "2" }, { "time": 99246, "beat": "2" }, { "time": 99544, "beat": "2" }, { "time": 100077, "beat": "1" }, { "time": 100382, "beat": "1" }, { "time": 100680, "beat": "1" }, { "time": 101145, "beat": "2" }, { "time": 101447, "beat": "2" }, { "time": 101747, "beat": "2" }, { "time": 102325, "beat": "3" }, { "time": 102628, "beat": "3" }, { "time": 103481, "beat": "3" }, { "time": 103782, "beat": "3" }, { "time": 104854, "beat": "3" }, { "time": 105166, "beat": "3" }, { "time": 106094, "beat": "3" }, { "time": 106401, "beat": "3" }, { "time": 107266, "beat": "3" }, { "time": 107569, "beat": "3" }, { "time": 108506, "beat": "3" }, { "time": 108809, "beat": "3" }, { "time": 110938, "beat": "1" }, { "time": 111241, "beat": "1" }, { "time": 112218, "beat": "2" }, { "time": 112521, "beat": "2" }, { "time": 112823, "beat": "2" }, { "time": 113621, "beat": "1" }, { "time": 113930, "beat": "1" }, { "time": 114881, "beat": "2" }, { "time": 115191, "beat": "2" }, { "time": 115490, "beat": "2" }, { "time": 115989, "beat": "1" }, { "time": 116291, "beat": "1" }, { "time": 116596, "beat": "1" }, { "time": 117138, "beat": "2" }, { "time": 117447, "beat": "2" }, { "time": 117740, "beat": "2" }, { "time": 118830, "beat": "3" }, { "time": 119132, "beat": "3" }, { "time": 119449, "beat": "3" }, { "time": 119756, "beat": "3" }, { "time": 120885, "beat": "1" }, { "time": 121192, "beat": "1" }, { "time": 122073, "beat": "2" }, { "time": 122374, "beat": "2" }, { "time": 123157, "beat": "1" }, { "time": 123460, "beat": "1" }, { "time": 124402, "beat": "2" }, { "time": 124708, "beat": "2" }, { "time": 125533, "beat": "1" }, { "time": 125834, "beat": "1" }, { "time": 126806, "beat": "2" }, { "time": 127113, "beat": "2" }, { "time": 128186, "beat": "3" }, { "time": 128491, "beat": "3" }, { "time": 128953, "beat": "3" }, { "time": 129255, "beat": "3" }, { "time": 129941, "beat": "1" }, { "time": 130242, "beat": "1" }, { "time": 131093, "beat": "2" }, { "time": 131395, "beat": "2" }, { "time": 131702, "beat": "2" }, { "time": 132305, "beat": "1" }, { "time": 132609, "beat": "1" }, { "time": 133401, "beat": "2" }, { "time": 133706, "beat": "2" }, { "time": 134002, "beat": "2" }, { "time": 134550, "beat": "1" }, { "time": 134856, "beat": "1" }, { "time": 135593, "beat": "2" }, { "time": 135896, "beat": "2" }, { "time": 136206, "beat": "2" }, { "time": 137238, "beat": "3" }, { "time": 137538, "beat": "3" }, { "time": 137881, "beat": "3" }, { "time": 138183, "beat": "3" }, { "time": 138497, "beat": "3" }, { "time": 138802, "beat": "3" }, { "time": 141045, "beat": "1" }, { "time": 141351, "beat": "1" }, { "time": 143062, "beat": "2" }, { "time": 143367, "beat": "2" }, { "time": 144529, "beat": "1" }, { "time": 144833, "beat": "1" }, { "time": 146029, "beat": "2" }, { "time": 146339, "beat": "2" }, { "time": 147346, "beat": "1" }, { "time": 147652, "beat": "1" }, { "time": 147947, "beat": "1" }, { "time": 149938, "beat": "3" }, { "time": 150240, "beat": "3" }, { "time": 150539, "beat": "3" }, { "time": 150849, "beat": "3" }] }, { "name": "Stranger in the Storm", "duration": 170760, "songBeats": [{ "time": 582, "beat": "0" }, { "time": 1286, "beat": "0" }, { "time": 2053, "beat": "0" }, { "time": 2769, "beat": "0" }, { "time": 3093, "beat": "0" }, { "time": 3465, "beat": "0" }, { "time": 4194, "beat": "0" }, { "time": 4929, "beat": "0" }, { "time": 5501, "beat": "0" }, { "time": 6141, "beat": "1" }, { "time": 6845, "beat": "2" }, { "time": 7462, "beat": "1" }, { "time": 8149, "beat": "2" }, { "time": 8456, "beat": "2" }, { "time": 8954, "beat": "1" }, { "time": 9662, "beat": "2" }, { "time": 10285, "beat": "1" }, { "time": 10921, "beat": "2" }, { "time": 11235, "beat": "2" }, { "time": 11577, "beat": "1" }, { "time": 12373, "beat": "2" }, { "time": 13098, "beat": "1" }, { "time": 13398, "beat": "1" }, { "time": 13737, "beat": "2" }, { "time": 14050, "beat": "2" }, { "time": 14521, "beat": "1" }, { "time": 14837, "beat": "1" }, { "time": 15269, "beat": "2" }, { "time": 15593, "beat": "2" }, { "time": 15925, "beat": "1" }, { "time": 16248, "beat": "1" }, { "time": 16945, "beat": "3" }, { "time": 17254, "beat": "3" }, { "time": 17682, "beat": "3" }, { "time": 17996, "beat": "3" }, { "time": 18422, "beat": "3" }, { "time": 18734, "beat": "3" }, { "time": 19213, "beat": "3" }, { "time": 19515, "beat": "3" }, { "time": 20414, "beat": "1" }, { "time": 21101, "beat": "2" }, { "time": 21412, "beat": "2" }, { "time": 21765, "beat": "1" }, { "time": 22402, "beat": "2" }, { "time": 22702, "beat": "2" }, { "time": 23321, "beat": "3" }, { "time": 24065, "beat": "3" }, { "time": 24366, "beat": "3" }, { "time": 24814, "beat": "3" }, { "time": 25123, "beat": "3" }, { "time": 25589, "beat": "3" }, { "time": 25899, "beat": "3" }, { "time": 26265, "beat": "1" }, { "time": 26901, "beat": "2" }, { "time": 27207, "beat": "2" }, { "time": 27585, "beat": "1" }, { "time": 28285, "beat": "2" }, { "time": 29001, "beat": "1" }, { "time": 29606, "beat": "2" }, { "time": 29908, "beat": "2" }, { "time": 30310, "beat": "1" }, { "time": 30621, "beat": "1" }, { "time": 31057, "beat": "2" }, { "time": 31366, "beat": "2" }, { "time": 31825, "beat": "1" }, { "time": 32141, "beat": "1" }, { "time": 32541, "beat": "2" }, { "time": 32850, "beat": "2" }, { "time": 33197, "beat": "1" }, { "time": 33499, "beat": "1" }, { "time": 33941, "beat": "2" }, { "time": 34248, "beat": "2" }, { "time": 34537, "beat": "1" }, { "time": 34850, "beat": "1" }, { "time": 35201, "beat": "2" }, { "time": 35525, "beat": "2" }, { "time": 35881, "beat": "1" }, { "time": 36194, "beat": "1" }, { "time": 36526, "beat": "2" }, { "time": 36839, "beat": "2" }, { "time": 37282, "beat": "1" }, { "time": 37905, "beat": "2" }, { "time": 38207, "beat": "2" }, { "time": 38645, "beat": "1" }, { "time": 38949, "beat": "1" }, { "time": 39301, "beat": "2" }, { "time": 39602, "beat": "2" }, { "time": 40157, "beat": "3" }, { "time": 40965, "beat": "3" }, { "time": 41721, "beat": "3" }, { "time": 42031, "beat": "3" }, { "time": 42466, "beat": "3" }, { "time": 42790, "beat": "3" }, { "time": 43749, "beat": "1" }, { "time": 44057, "beat": "1" }, { "time": 44533, "beat": "2" }, { "time": 45149, "beat": "1" }, { "time": 45933, "beat": "2" }, { "time": 46247, "beat": "2" }, { "time": 46673, "beat": "1" }, { "time": 47317, "beat": "2" }, { "time": 47631, "beat": "2" }, { "time": 47973, "beat": "1" }, { "time": 49917, "beat": "3" }, { "time": 50621, "beat": "3" }, { "time": 51517, "beat": "1" }, { "time": 52313, "beat": "2" }, { "time": 52630, "beat": "2" }, { "time": 53401, "beat": "1" }, { "time": 53713, "beat": "1" }, { "time": 54382, "beat": "2" }, { "time": 54693, "beat": "2" }, { "time": 55390, "beat": "1" }, { "time": 55693, "beat": "1" }, { "time": 56277, "beat": "2" }, { "time": 56581, "beat": "2" }, { "time": 57186, "beat": "1" }, { "time": 57509, "beat": "1" }, { "time": 58186, "beat": "2" }, { "time": 58488, "beat": "2" }, { "time": 59070, "beat": "1" }, { "time": 59374, "beat": "1" }, { "time": 59990, "beat": "2" }, { "time": 60299, "beat": "2" }, { "time": 60826, "beat": "1" }, { "time": 61135, "beat": "1" }, { "time": 61646, "beat": "2" }, { "time": 61975, "beat": "2" }, { "time": 62774, "beat": "3" }, { "time": 63501, "beat": "3" }, { "time": 64277, "beat": "3" }, { "time": 64584, "beat": "3" }, { "time": 65173, "beat": "2" }, { "time": 65489, "beat": "2" }, { "time": 66053, "beat": "2" }, { "time": 66769, "beat": "2" }, { "time": 67089, "beat": "2" }, { "time": 67513, "beat": "2" }, { "time": 67827, "beat": "2" }, { "time": 68150, "beat": "1" }, { "time": 68452, "beat": "1" }, { "time": 68949, "beat": "1" }, { "time": 69693, "beat": "1" }, { "time": 70701, "beat": "0" }, { "time": 71410, "beat": "0" }, { "time": 72094, "beat": "0" }, { "time": 72397, "beat": "0" }, { "time": 72809, "beat": "0" }, { "time": 73442, "beat": "0" }, { "time": 74093, "beat": "1" }, { "time": 74805, "beat": "2" }, { "time": 75542, "beat": "1" }, { "time": 76321, "beat": "2" }, { "time": 76638, "beat": "2" }, { "time": 77037, "beat": "1" }, { "time": 77342, "beat": "1" }, { "time": 77745, "beat": "2" }, { "time": 78061, "beat": "2" }, { "time": 78442, "beat": "1" }, { "time": 79126, "beat": "2" }, { "time": 79437, "beat": "2" }, { "time": 79773, "beat": "1" }, { "time": 80088, "beat": "1" }, { "time": 80458, "beat": "2" }, { "time": 80773, "beat": "2" }, { "time": 81213, "beat": "1" }, { "time": 81962, "beat": "3" }, { "time": 82689, "beat": "3" }, { "time": 83453, "beat": "3" }, { "time": 84209, "beat": "3" }, { "time": 84510, "beat": "3" }, { "time": 84927, "beat": "3" }, { "time": 85230, "beat": "3" }, { "time": 85630, "beat": "3" }, { "time": 85953, "beat": "3" }, { "time": 87922, "beat": "1" }, { "time": 88629, "beat": "2" }, { "time": 88942, "beat": "2" }, { "time": 89345, "beat": "1" }, { "time": 90061, "beat": "2" }, { "time": 90371, "beat": "2" }, { "time": 90869, "beat": "1" }, { "time": 91473, "beat": "2" }, { "time": 91786, "beat": "2" }, { "time": 92142, "beat": "1" }, { "time": 92452, "beat": "1" }, { "time": 92924, "beat": "2" }, { "time": 93239, "beat": "2" }, { "time": 93853, "beat": "3" }, { "time": 94661, "beat": "3" }, { "time": 95389, "beat": "3" }, { "time": 96185, "beat": "3" }, { "time": 96493, "beat": "3" }, { "time": 97161, "beat": "1" }, { "time": 97853, "beat": "2" }, { "time": 98166, "beat": "2" }, { "time": 98545, "beat": "1" }, { "time": 99273, "beat": "2" }, { "time": 100098, "beat": "1" }, { "time": 100401, "beat": "1" }, { "time": 100805, "beat": "2" }, { "time": 101130, "beat": "2" }, { "time": 101513, "beat": "1" }, { "time": 104422, "beat": "3" }, { "time": 104723, "beat": "3" }, { "time": 105210, "beat": "3" }, { "time": 105519, "beat": "3" }, { "time": 105953, "beat": "3" }, { "time": 106261, "beat": "3" }, { "time": 106714, "beat": "3" }, { "time": 107030, "beat": "3" }, { "time": 107397, "beat": "1" }, { "time": 107701, "beat": "1" }, { "time": 108065, "beat": "2" }, { "time": 108401, "beat": "2" }, { "time": 108709, "beat": "1" }, { "time": 109011, "beat": "1" }, { "time": 109373, "beat": "2" }, { "time": 109707, "beat": "2" }, { "time": 110225, "beat": "1" }, { "time": 110538, "beat": "1" }, { "time": 110901, "beat": "2" }, { "time": 111224, "beat": "2" }, { "time": 111690, "beat": "1" }, { "time": 112325, "beat": "2" }, { "time": 112632, "beat": "2" }, { "time": 113041, "beat": "1" }, { "time": 113375, "beat": "1" }, { "time": 113770, "beat": "2" }, { "time": 114076, "beat": "2" }, { "time": 114453, "beat": "1" }, { "time": 114767, "beat": "1" }, { "time": 115143, "beat": "2" }, { "time": 115452, "beat": "2" }, { "time": 115865, "beat": "3" }, { "time": 116594, "beat": "3" }, { "time": 117298, "beat": "3" }, { "time": 117603, "beat": "3" }, { "time": 118013, "beat": "3" }, { "time": 118761, "beat": "3" }, { "time": 119070, "beat": "3" }, { "time": 119402, "beat": "3" }, { "time": 119706, "beat": "3" }, { "time": 120148, "beat": "3" }, { "time": 120450, "beat": "3" }, { "time": 120813, "beat": "3" }, { "time": 121134, "beat": "3" }, { "time": 121530, "beat": "1" }, { "time": 122370, "beat": "1" }, { "time": 123073, "beat": "1" }, { "time": 123396, "beat": "1" }, { "time": 123742, "beat": "1" }, { "time": 124046, "beat": "1" }, { "time": 124446, "beat": "2" }, { "time": 124774, "beat": "2" }, { "time": 125221, "beat": "2" }, { "time": 125538, "beat": "2" }, { "time": 125869, "beat": "2" }, { "time": 126183, "beat": "2" }, { "time": 126878, "beat": "1" }, { "time": 127713, "beat": "2" }, { "time": 128449, "beat": "1" }, { "time": 129137, "beat": "2" }, { "time": 129444, "beat": "2" }, { "time": 129793, "beat": "1" }, { "time": 130497, "beat": "2" }, { "time": 130809, "beat": "2" }, { "time": 131133, "beat": "1" }, { "time": 131709, "beat": "2" }, { "time": 132030, "beat": "2" }, { "time": 132345, "beat": "1" }, { "time": 133038, "beat": "2" }, { "time": 133348, "beat": "2" }, { "time": 133713, "beat": "1" }, { "time": 134014, "beat": "1" }, { "time": 134450, "beat": "2" }, { "time": 135437, "beat": "3" }, { "time": 136273, "beat": "3" }, { "time": 136961, "beat": "3" }, { "time": 137718, "beat": "3" }, { "time": 138393, "beat": "3" }, { "time": 138957, "beat": "1" }, { "time": 139642, "beat": "2" }, { "time": 140422, "beat": "1" }, { "time": 141077, "beat": "2" }, { "time": 141937, "beat": "1" }, { "time": 142626, "beat": "2" }, { "time": 142937, "beat": "2" }, { "time": 143305, "beat": "1" }, { "time": 143889, "beat": "2" }, { "time": 144202, "beat": "2" }, { "time": 144559, "beat": "1" }, { "time": 145253, "beat": "2" }, { "time": 145564, "beat": "2" }, { "time": 145928, "beat": "1" }, { "time": 146246, "beat": "1" }, { "time": 146667, "beat": "2" }, { "time": 147369, "beat": "1" }, { "time": 147670, "beat": "1" }, { "time": 148018, "beat": "2" }, { "time": 148754, "beat": "1" }, { "time": 149074, "beat": "1" }, { "time": 149369, "beat": "2" }, { "time": 150053, "beat": "1" }, { "time": 150375, "beat": "1" }, { "time": 150761, "beat": "2" }, { "time": 151477, "beat": "1" }, { "time": 151784, "beat": "1" }, { "time": 152202, "beat": "2" }, { "time": 152512, "beat": "2" }, { "time": 152937, "beat": "1" }, { "time": 153665, "beat": "3" }, { "time": 154593, "beat": "3" }, { "time": 155325, "beat": "3" }, { "time": 156097, "beat": "3" }, { "time": 156833, "beat": "3" }, { "time": 158457, "beat": "1" }, { "time": 159133, "beat": "2" }, { "time": 159769, "beat": "1" }, { "time": 160405, "beat": "2" }, { "time": 161086, "beat": "1" }, { "time": 161741, "beat": "2" }, { "time": 162492, "beat": "1" }, { "time": 163141, "beat": "2" }, { "time": 163467, "beat": "2" }, { "time": 163983, "beat": "0" }, { "time": 164578, "beat": "0" }, { "time": 164890, "beat": "0" }, { "time": 165253, "beat": "0" }, { "time": 165905, "beat": "1" }, { "time": 166614, "beat": "2" }, { "time": 166946, "beat": "2" }, { "time": 167349, "beat": "0" }, { "time": 168077, "beat": "0" }, { "time": 168793, "beat": "1" }, { "time": 169107, "beat": "1" }, { "time": 169497, "beat": "2" }, { "time": 169810, "beat": "2" }] }]; var speakersBeat = [{ "name": "Words Fly Fast", "songBeats": [{ "time": 128, "beat": "1" }, { "time": 443, "beat": "1" }, { "time": 747, "beat": "1" }, { "time": 1232, "beat": "1" }, { "time": 1579, "beat": "1" }, { "time": 1893, "beat": "1" }, { "time": 2224, "beat": "1" }, { "time": 2549, "beat": "1" }, { "time": 2853, "beat": "1" }, { "time": 3269, "beat": "1" }, { "time": 3712, "beat": "1" }, { "time": 4037, "beat": "1" }, { "time": 4352, "beat": "1" }, { "time": 4661, "beat": "1" }, { "time": 5072, "beat": "1" }, { "time": 5392, "beat": "1" }, { "time": 5728, "beat": "1" }, { "time": 6176, "beat": "1" }, { "time": 6587, "beat": "1" }, { "time": 7141, "beat": "1" }, { "time": 7541, "beat": "1" }, { "time": 7856, "beat": "1" }, { "time": 8171, "beat": "3" }, { "time": 8501, "beat": "2" }, { "time": 8816, "beat": "2" }, { "time": 9120, "beat": "3" }, { "time": 9424, "beat": "2" }, { "time": 9728, "beat": "2" }, { "time": 10032, "beat": "3" }, { "time": 10347, "beat": "2" }, { "time": 10651, "beat": "1" }, { "time": 10971, "beat": "2" }, { "time": 11275, "beat": "2" }, { "time": 11600, "beat": "2" }, { "time": 11915, "beat": "1" }, { "time": 12240, "beat": "2" }, { "time": 12560, "beat": "3" }, { "time": 12875, "beat": "2" }, { "time": 13184, "beat": "3" }, { "time": 13493, "beat": "2" }, { "time": 13813, "beat": "3" }, { "time": 14176, "beat": "3" }, { "time": 14517, "beat": "1" }, { "time": 14843, "beat": "2" }, { "time": 15147, "beat": "2" }, { "time": 15472, "beat": "3" }, { "time": 15781, "beat": "2" }, { "time": 16112, "beat": "2" }, { "time": 16432, "beat": "2" }, { "time": 16741, "beat": "2" }, { "time": 17056, "beat": "3" }, { "time": 17360, "beat": "3" }, { "time": 17685, "beat": "2" }, { "time": 17995, "beat": "3" }, { "time": 18299, "beat": "3" }, { "time": 18608, "beat": "3" }, { "time": 18917, "beat": "3" }, { "time": 19232, "beat": "1" }, { "time": 19547, "beat": "2" }, { "time": 19851, "beat": "3" }, { "time": 20171, "beat": "1" }, { "time": 20475, "beat": "3" }, { "time": 20805, "beat": "3" }, { "time": 21120, "beat": "1" }, { "time": 21435, "beat": "2" }, { "time": 21749, "beat": "2" }, { "time": 22059, "beat": "2" }, { "time": 22373, "beat": "2" }, { "time": 22699, "beat": "2" }, { "time": 23019, "beat": "1" }, { "time": 23323, "beat": "3" }, { "time": 23627, "beat": "3" }, { "time": 23931, "beat": "2" }, { "time": 24240, "beat": "2" }, { "time": 24549, "beat": "2" }, { "time": 24869, "beat": "2" }, { "time": 25189, "beat": "3" }, { "time": 25493, "beat": "2" }, { "time": 25819, "beat": "2" }, { "time": 26133, "beat": "1" }, { "time": 26437, "beat": "2" }, { "time": 26757, "beat": "2" }, { "time": 27061, "beat": "2" }, { "time": 27365, "beat": "2" }, { "time": 27669, "beat": "3" }, { "time": 27973, "beat": "3" }, { "time": 28277, "beat": "3" }, { "time": 28581, "beat": "3" }, { "time": 28885, "beat": "3" }, { "time": 29221, "beat": "2" }, { "time": 29557, "beat": "3" }, { "time": 29861, "beat": "2" }, { "time": 30197, "beat": "2" }, { "time": 30507, "beat": "2" }, { "time": 30827, "beat": "2" }, { "time": 31141, "beat": "2" }, { "time": 31483, "beat": "2" }, { "time": 31787, "beat": "2" }, { "time": 32091, "beat": "3" }, { "time": 32395, "beat": "3" }, { "time": 32731, "beat": "1" }, { "time": 33045, "beat": "2" }, { "time": 33349, "beat": "3" }, { "time": 33653, "beat": "2" }, { "time": 33957, "beat": "3" }, { "time": 34261, "beat": "2" }, { "time": 34576, "beat": "2" }, { "time": 34901, "beat": "2" }, { "time": 35211, "beat": "3" }, { "time": 35520, "beat": "2" }, { "time": 35829, "beat": "3" }, { "time": 36149, "beat": "3" }, { "time": 36464, "beat": "2" }, { "time": 36779, "beat": "3" }, { "time": 37083, "beat": "2" }, { "time": 37403, "beat": "2" }, { "time": 37707, "beat": "2" }, { "time": 38037, "beat": "2" }, { "time": 38341, "beat": "3" }, { "time": 38661, "beat": "2" }, { "time": 38976, "beat": "1" }, { "time": 39301, "beat": "1" }, { "time": 39611, "beat": "2" }, { "time": 39941, "beat": "2" }, { "time": 40256, "beat": "1" }, { "time": 40565, "beat": "2" }, { "time": 40885, "beat": "1" }, { "time": 41189, "beat": "1" }, { "time": 41499, "beat": "1" }, { "time": 41851, "beat": "1" }, { "time": 42155, "beat": "1" }, { "time": 42459, "beat": "1" }, { "time": 42976, "beat": "1" }, { "time": 43429, "beat": "1" }, { "time": 43733, "beat": "1" }, { "time": 44043, "beat": "1" }, { "time": 44357, "beat": "2" }, { "time": 44672, "beat": "2" }, { "time": 44987, "beat": "1" }, { "time": 45312, "beat": "1" }, { "time": 45744, "beat": "1" }, { "time": 46059, "beat": "1" }, { "time": 46373, "beat": "1" }, { "time": 46683, "beat": "2" }, { "time": 46992, "beat": "2" }, { "time": 47301, "beat": "1" }, { "time": 47605, "beat": "2" }, { "time": 47920, "beat": "2" }, { "time": 48229, "beat": "1" }, { "time": 48544, "beat": "2" }, { "time": 48859, "beat": "1" }, { "time": 49168, "beat": "1" }, { "time": 49477, "beat": "2" }, { "time": 49845, "beat": "1" }, { "time": 50160, "beat": "1" }, { "time": 50496, "beat": "2" }, { "time": 50805, "beat": "1" }, { "time": 51173, "beat": "1" }, { "time": 51477, "beat": "2" }, { "time": 51792, "beat": "2" }, { "time": 52107, "beat": "2" }, { "time": 52421, "beat": "1" }, { "time": 52869, "beat": "1" }, { "time": 53189, "beat": "1" }, { "time": 53595, "beat": "1" }, { "time": 53979, "beat": "1" }, { "time": 54288, "beat": "1" }, { "time": 54597, "beat": "3" }, { "time": 54907, "beat": "2" }, { "time": 55227, "beat": "3" }, { "time": 55531, "beat": "3" }, { "time": 55851, "beat": "2" }, { "time": 56165, "beat": "3" }, { "time": 56475, "beat": "3" }, { "time": 56789, "beat": "2" }, { "time": 57104, "beat": "2" }, { "time": 57408, "beat": "1" }, { "time": 57728, "beat": "3" }, { "time": 58053, "beat": "2" }, { "time": 58363, "beat": "1" }, { "time": 58667, "beat": "3" }, { "time": 58976, "beat": "3" }, { "time": 59307, "beat": "1" }, { "time": 59621, "beat": "3" }, { "time": 59947, "beat": "3" }, { "time": 60304, "beat": "2" }, { "time": 60608, "beat": "3" }, { "time": 60971, "beat": "1" }, { "time": 61339, "beat": "2" }, { "time": 61701, "beat": "1" }, { "time": 62032, "beat": "1" }, { "time": 62336, "beat": "3" }, { "time": 62640, "beat": "3" }, { "time": 62955, "beat": "3" }, { "time": 63269, "beat": "3" }, { "time": 63584, "beat": "2" }, { "time": 63904, "beat": "3" }, { "time": 64213, "beat": "3" }, { "time": 64555, "beat": "2" }, { "time": 64864, "beat": "3" }, { "time": 65179, "beat": "2" }, { "time": 65499, "beat": "2" }, { "time": 65824, "beat": "3" }, { "time": 66144, "beat": "2" }, { "time": 66464, "beat": "2" }, { "time": 66768, "beat": "3" }, { "time": 67093, "beat": "1" }, { "time": 67403, "beat": "3" }, { "time": 67707, "beat": "3" }, { "time": 68053, "beat": "2" }, { "time": 68368, "beat": "2" }, { "time": 68709, "beat": "1" }, { "time": 69024, "beat": "1" }, { "time": 69333, "beat": "2" }, { "time": 69648, "beat": "3" }, { "time": 69968, "beat": "2" }, { "time": 70283, "beat": "2" }, { "time": 70587, "beat": "3" }, { "time": 70896, "beat": "3" }, { "time": 71205, "beat": "3" }, { "time": 71525, "beat": "3" }, { "time": 71835, "beat": "3" }, { "time": 72139, "beat": "3" }, { "time": 72448, "beat": "3" }, { "time": 72779, "beat": "3" }, { "time": 73083, "beat": "2" }, { "time": 73387, "beat": "3" }, { "time": 73691, "beat": "1" }, { "time": 74016, "beat": "3" }, { "time": 74336, "beat": "2" }, { "time": 74667, "beat": "3" }, { "time": 74987, "beat": "3" }, { "time": 75296, "beat": "1" }, { "time": 75605, "beat": "3" }, { "time": 75915, "beat": "3" }, { "time": 76224, "beat": "3" }, { "time": 76549, "beat": "3" }, { "time": 76853, "beat": "3" }, { "time": 77157, "beat": "3" }, { "time": 77461, "beat": "3" }, { "time": 77776, "beat": "1" }, { "time": 78107, "beat": "2" }, { "time": 78421, "beat": "2" }, { "time": 78731, "beat": "2" }, { "time": 79045, "beat": "2" }, { "time": 79365, "beat": "2" }, { "time": 79669, "beat": "1" }, { "time": 79995, "beat": "1" }, { "time": 80309, "beat": "1" }, { "time": 80640, "beat": "1" }, { "time": 80965, "beat": "1" }, { "time": 81296, "beat": "1" }, { "time": 81856, "beat": "1" }, { "time": 82165, "beat": "2" }, { "time": 82491, "beat": "2" }, { "time": 82827, "beat": "2" }, { "time": 83136, "beat": "2" }, { "time": 83451, "beat": "2" }, { "time": 83765, "beat": "1" }, { "time": 84080, "beat": "1" }, { "time": 84389, "beat": "1" }, { "time": 84704, "beat": "1" }, { "time": 85040, "beat": "1" }, { "time": 85392, "beat": "2" }, { "time": 85696, "beat": "1" }, { "time": 86016, "beat": "1" }, { "time": 86325, "beat": "1" }, { "time": 86688, "beat": "1" }, { "time": 87019, "beat": "2" }, { "time": 87323, "beat": "2" }, { "time": 87643, "beat": "1" }, { "time": 87947, "beat": "1" }, { "time": 88272, "beat": "1" }, { "time": 88587, "beat": "1" }, { "time": 88901, "beat": "1" }, { "time": 89216, "beat": "1" }, { "time": 89520, "beat": "1" }, { "time": 89872, "beat": "1" }, { "time": 90176, "beat": "2" }, { "time": 90485, "beat": "2" }, { "time": 90800, "beat": "2" }, { "time": 91115, "beat": "1" }, { "time": 91424, "beat": "1" }, { "time": 91819, "beat": "1" }, { "time": 92304, "beat": "1" }, { "time": 92667, "beat": "1" }, { "time": 92992, "beat": "2" }, { "time": 93301, "beat": "3" }, { "time": 93659, "beat": "1" }, { "time": 93968, "beat": "3" }, { "time": 94272, "beat": "3" }, { "time": 94581, "beat": "2" }, { "time": 94885, "beat": "3" }, { "time": 95205, "beat": "3" }, { "time": 95525, "beat": "2" }, { "time": 95845, "beat": "3" }, { "time": 96155, "beat": "1" }, { "time": 96485, "beat": "2" }, { "time": 96811, "beat": "3" }, { "time": 97125, "beat": "3" }, { "time": 97451, "beat": "2" }, { "time": 97755, "beat": "3" }, { "time": 98069, "beat": "3" }, { "time": 98411, "beat": "2" }, { "time": 98725, "beat": "3" }, { "time": 99035, "beat": "3" }, { "time": 99349, "beat": "3" }, { "time": 99680, "beat": "1" }, { "time": 100000, "beat": "2" }, { "time": 100304, "beat": "3" }, { "time": 100624, "beat": "3" }, { "time": 100928, "beat": "3" }, { "time": 101232, "beat": "3" }, { "time": 101557, "beat": "3" }, { "time": 101888, "beat": "2" }, { "time": 102192, "beat": "3" }, { "time": 102507, "beat": "3" }, { "time": 102853, "beat": "3" }, { "time": 103157, "beat": "3" }, { "time": 103461, "beat": "3" }, { "time": 103765, "beat": "2" }, { "time": 104085, "beat": "1" }, { "time": 104395, "beat": "1" }, { "time": 104709, "beat": "2" }, { "time": 105013, "beat": "3" }, { "time": 105317, "beat": "2" }, { "time": 105627, "beat": "1" }, { "time": 105931, "beat": "3" }, { "time": 106240, "beat": "2" }, { "time": 106555, "beat": "3" }, { "time": 106864, "beat": "3" }, { "time": 107168, "beat": "3" }, { "time": 107472, "beat": "1" }, { "time": 107781, "beat": "2" }, { "time": 108091, "beat": "3" }, { "time": 108416, "beat": "2" }, { "time": 108731, "beat": "2" }, { "time": 109045, "beat": "2" }, { "time": 109349, "beat": "3" }, { "time": 109669, "beat": "2" }, { "time": 109979, "beat": "2" }, { "time": 110293, "beat": "3" }, { "time": 110597, "beat": "3" }, { "time": 110917, "beat": "3" }, { "time": 111221, "beat": "3" }, { "time": 111525, "beat": "3" }, { "time": 111840, "beat": "2" }, { "time": 112144, "beat": "3" }, { "time": 112459, "beat": "3" }, { "time": 112773, "beat": "3" }, { "time": 113093, "beat": "3" }, { "time": 113419, "beat": "3" }, { "time": 113723, "beat": "3" }, { "time": 114032, "beat": "2" }, { "time": 114336, "beat": "2" }, { "time": 114651, "beat": "3" }, { "time": 114965, "beat": "1" }, { "time": 115280, "beat": "2" }, { "time": 115584, "beat": "3" }, { "time": 115888, "beat": "3" }, { "time": 116208, "beat": "2" }, { "time": 116523, "beat": "3" }, { "time": 116837, "beat": "2" }, { "time": 117147, "beat": "3" }, { "time": 117451, "beat": "3" }, { "time": 117787, "beat": "3" }, { "time": 118101, "beat": "3" }, { "time": 118405, "beat": "3" }, { "time": 118741, "beat": "2" }, { "time": 119051, "beat": "2" }, { "time": 119360, "beat": "1" }, { "time": 119664, "beat": "2" }, { "time": 119973, "beat": "3" }, { "time": 120283, "beat": "2" }, { "time": 120603, "beat": "3" }, { "time": 120912, "beat": "3" }, { "time": 121216, "beat": "3" }, { "time": 121525, "beat": "3" }, { "time": 121829, "beat": "3" }, { "time": 122293, "beat": "1" }, { "time": 122779, "beat": "1" }, { "time": 123099, "beat": "1" }, { "time": 123504, "beat": "1" }, { "time": 123845, "beat": "1" }, { "time": 124352, "beat": "1" }, { "time": 124699, "beat": "1" }, { "time": 125024, "beat": "1" }, { "time": 125333, "beat": "1" }, { "time": 125648, "beat": "1" }, { "time": 125979, "beat": "1" }, { "time": 126325, "beat": "1" }, { "time": 126635, "beat": "1" }, { "time": 126960, "beat": "1" }, { "time": 127275, "beat": "1" }, { "time": 127589, "beat": "1" }, { "time": 128059, "beat": "1" }, { "time": 128523, "beat": "1" }, { "time": 128837, "beat": "2" }, { "time": 129173, "beat": "1" }, { "time": 129483, "beat": "2" }, { "time": 129813, "beat": "2" }, { "time": 130133, "beat": "1" }, { "time": 130437, "beat": "1" }, { "time": 130741, "beat": "1" }, { "time": 131109, "beat": "1" }, { "time": 131413, "beat": "1" }, { "time": 131739, "beat": "2" }, { "time": 132080, "beat": "2" }, { "time": 132384, "beat": "2" }, { "time": 132784, "beat": "1" }, { "time": 133093, "beat": "1" }, { "time": 133408, "beat": "2" }, { "time": 133739, "beat": "1" }, { "time": 134069, "beat": "1" }, { "time": 134389, "beat": "1" }, { "time": 134709, "beat": "1" }, { "time": 135019, "beat": "1" }, { "time": 135355, "beat": "1" }, { "time": 135733, "beat": "1" }, { "time": 136064, "beat": "2" }, { "time": 136384, "beat": "3" }, { "time": 136693, "beat": "1" }, { "time": 137024, "beat": "2" }, { "time": 137339, "beat": "2" }, { "time": 137776, "beat": "1" }, { "time": 138261, "beat": "1" }, { "time": 138741, "beat": "1" }, { "time": 139109, "beat": "1" }, { "time": 139435, "beat": "1" }, { "time": 139744, "beat": "2" }, { "time": 140048, "beat": "2" }, { "time": 140352, "beat": "3" }, { "time": 140656, "beat": "3" }, { "time": 140987, "beat": "2" }, { "time": 141291, "beat": "3" }, { "time": 141605, "beat": "3" }, { "time": 141909, "beat": "3" }, { "time": 142251, "beat": "1" }, { "time": 142555, "beat": "1" }, { "time": 142859, "beat": "3" }, { "time": 143184, "beat": "3" }, { "time": 143504, "beat": "3" }, { "time": 143813, "beat": "2" }, { "time": 144123, "beat": "3" }, { "time": 144427, "beat": "2" }, { "time": 144741, "beat": "3" }, { "time": 145061, "beat": "3" }, { "time": 145365, "beat": "3" }, { "time": 145685, "beat": "3" }, { "time": 146000, "beat": "3" }, { "time": 146309, "beat": "2" }, { "time": 146624, "beat": "3" }, { "time": 146928, "beat": "2" }, { "time": 147237, "beat": "2" }, { "time": 147547, "beat": "3" }, { "time": 147851, "beat": "2" }, { "time": 148165, "beat": "3" }, { "time": 148480, "beat": "3" }, { "time": 148784, "beat": "2" }, { "time": 149104, "beat": "3" }, { "time": 149413, "beat": "3" }, { "time": 149717, "beat": "3" }, { "time": 150032, "beat": "2" }, { "time": 150336, "beat": "2" }, { "time": 150651, "beat": "2" }, { "time": 150971, "beat": "3" }, { "time": 151285, "beat": "2" }, { "time": 151600, "beat": "3" }, { "time": 151904, "beat": "3" }, { "time": 152208, "beat": "3" }, { "time": 152517, "beat": "3" }, { "time": 152821, "beat": "3" }, { "time": 153248, "beat": "1" }, { "time": 153728, "beat": "1" }, { "time": 154208, "beat": "1" }, { "time": 154576, "beat": "1" }] }, { "name": "Freedom", "songBeats": [{ "time": 0, "beat": "3" }, { "time": 315, "beat": "3" }, { "time": 619, "beat": "1" }, { "time": 928, "beat": "1" }, { "time": 1355, "beat": "1" }, { "time": 1739, "beat": "1" }, { "time": 2176, "beat": "1" }, { "time": 2539, "beat": "1" }, { "time": 2848, "beat": "1" }, { "time": 3173, "beat": "2" }, { "time": 3488, "beat": "1" }, { "time": 4037, "beat": "1" }, { "time": 4480, "beat": "1" }, { "time": 4837, "beat": "1" }, { "time": 5163, "beat": "1" }, { "time": 5520, "beat": "2" }, { "time": 5899, "beat": "1" }, { "time": 6341, "beat": "1" }, { "time": 6704, "beat": "1" }, { "time": 7045, "beat": "2" }, { "time": 7365, "beat": "1" }, { "time": 7696, "beat": "1" }, { "time": 8080, "beat": "1" }, { "time": 8405, "beat": "1" }, { "time": 8709, "beat": "1" }, { "time": 9109, "beat": "1" }, { "time": 9483, "beat": "1" }, { "time": 9819, "beat": "1" }, { "time": 10128, "beat": "2" }, { "time": 10437, "beat": "2" }, { "time": 10747, "beat": "3" }, { "time": 11072, "beat": "2" }, { "time": 11387, "beat": "2" }, { "time": 11691, "beat": "3" }, { "time": 12005, "beat": "3" }, { "time": 12352, "beat": "2" }, { "time": 12656, "beat": "1" }, { "time": 12976, "beat": "2" }, { "time": 13296, "beat": "1" }, { "time": 13600, "beat": "3" }, { "time": 13904, "beat": "3" }, { "time": 14208, "beat": "2" }, { "time": 14528, "beat": "1" }, { "time": 14832, "beat": "2" }, { "time": 15147, "beat": "3" }, { "time": 15451, "beat": "2" }, { "time": 15755, "beat": "3" }, { "time": 16059, "beat": "3" }, { "time": 16363, "beat": "3" }, { "time": 16667, "beat": "2" }, { "time": 16981, "beat": "2" }, { "time": 17296, "beat": "1" }, { "time": 17600, "beat": "1" }, { "time": 17947, "beat": "2" }, { "time": 18256, "beat": "2" }, { "time": 18603, "beat": "3" }, { "time": 18949, "beat": "2" }, { "time": 19275, "beat": "2" }, { "time": 19589, "beat": "3" }, { "time": 19893, "beat": "2" }, { "time": 20213, "beat": "1" }, { "time": 20768, "beat": "1" }, { "time": 21083, "beat": "1" }, { "time": 21440, "beat": "1" }, { "time": 21765, "beat": "1" }, { "time": 22085, "beat": "1" }, { "time": 22512, "beat": "1" }, { "time": 22827, "beat": "1" }, { "time": 23189, "beat": "1" }, { "time": 23499, "beat": "1" }, { "time": 23803, "beat": "1" }, { "time": 24149, "beat": "1" }, { "time": 24480, "beat": "1" }, { "time": 24843, "beat": "1" }, { "time": 25269, "beat": "1" }, { "time": 25627, "beat": "1" }, { "time": 25968, "beat": "1" }, { "time": 26293, "beat": "1" }, { "time": 26597, "beat": "1" }, { "time": 26987, "beat": "1" }, { "time": 27360, "beat": "1" }, { "time": 27776, "beat": "1" }, { "time": 28128, "beat": "3" }, { "time": 28501, "beat": "2" }, { "time": 28848, "beat": "1" }, { "time": 29152, "beat": "2" }, { "time": 29467, "beat": "2" }, { "time": 29776, "beat": "1" }, { "time": 30085, "beat": "2" }, { "time": 30400, "beat": "3" }, { "time": 30715, "beat": "3" }, { "time": 31029, "beat": "1" }, { "time": 31392, "beat": "3" }, { "time": 31717, "beat": "1" }, { "time": 32048, "beat": "1" }, { "time": 32368, "beat": "1" }, { "time": 32741, "beat": "2" }, { "time": 33045, "beat": "3" }, { "time": 33467, "beat": "1" }, { "time": 33771, "beat": "2" }, { "time": 34091, "beat": "3" }, { "time": 34411, "beat": "2" }, { "time": 34731, "beat": "1" }, { "time": 35051, "beat": "3" }, { "time": 35387, "beat": "3" }, { "time": 35771, "beat": "1" }, { "time": 36181, "beat": "1" }, { "time": 36491, "beat": "3" }, { "time": 36805, "beat": "2" }, { "time": 37120, "beat": "2" }, { "time": 37445, "beat": "2" }, { "time": 37755, "beat": "3" }, { "time": 38080, "beat": "1" }, { "time": 38384, "beat": "2" }, { "time": 38704, "beat": "2" }, { "time": 39019, "beat": "3" }, { "time": 39344, "beat": "2" }, { "time": 39653, "beat": "2" }, { "time": 39963, "beat": "3" }, { "time": 40325, "beat": "1" }, { "time": 40629, "beat": "2" }, { "time": 40949, "beat": "1" }, { "time": 41253, "beat": "1" }, { "time": 41579, "beat": "2" }, { "time": 41952, "beat": "1" }, { "time": 42261, "beat": "2" }, { "time": 42571, "beat": "2" }, { "time": 42875, "beat": "3" }, { "time": 43269, "beat": "1" }, { "time": 43595, "beat": "3" }, { "time": 43915, "beat": "2" }, { "time": 44224, "beat": "3" }, { "time": 44565, "beat": "2" }, { "time": 44880, "beat": "3" }, { "time": 45189, "beat": "2" }, { "time": 45515, "beat": "2" }, { "time": 45840, "beat": "1" }, { "time": 46293, "beat": "1" }, { "time": 46597, "beat": "3" }, { "time": 46923, "beat": "3" }, { "time": 47227, "beat": "3" }, { "time": 47541, "beat": "2" }, { "time": 47861, "beat": "3" }, { "time": 48165, "beat": "2" }, { "time": 48469, "beat": "2" }, { "time": 48773, "beat": "2" }, { "time": 49083, "beat": "2" }, { "time": 49387, "beat": "2" }, { "time": 49701, "beat": "3" }, { "time": 50005, "beat": "3" }, { "time": 50315, "beat": "2" }, { "time": 50624, "beat": "3" }, { "time": 50997, "beat": "3" }, { "time": 51301, "beat": "2" }, { "time": 51611, "beat": "2" }, { "time": 51957, "beat": "3" }, { "time": 52267, "beat": "2" }, { "time": 52576, "beat": "3" }, { "time": 52880, "beat": "3" }, { "time": 53205, "beat": "2" }, { "time": 53520, "beat": "3" }, { "time": 53835, "beat": "3" }, { "time": 54139, "beat": "3" }, { "time": 54443, "beat": "3" }, { "time": 54752, "beat": "2" }, { "time": 55083, "beat": "1" }, { "time": 55424, "beat": "1" }, { "time": 56085, "beat": "1" }, { "time": 56400, "beat": "2" }, { "time": 56715, "beat": "3" }, { "time": 57093, "beat": "1" }, { "time": 57403, "beat": "1" }, { "time": 57728, "beat": "2" }, { "time": 58032, "beat": "2" }, { "time": 58336, "beat": "2" }, { "time": 58640, "beat": "3" }, { "time": 58944, "beat": "1" }, { "time": 59264, "beat": "3" }, { "time": 59579, "beat": "3" }, { "time": 59883, "beat": "3" }, { "time": 60208, "beat": "2" }, { "time": 60523, "beat": "2" }, { "time": 60837, "beat": "2" }, { "time": 61141, "beat": "1" }, { "time": 61451, "beat": "2" }, { "time": 61765, "beat": "2" }, { "time": 62085, "beat": "3" }, { "time": 62395, "beat": "2" }, { "time": 62704, "beat": "3" }, { "time": 63024, "beat": "2" }, { "time": 63344, "beat": "2" }, { "time": 63653, "beat": "2" }, { "time": 63957, "beat": "2" }, { "time": 64283, "beat": "2" }, { "time": 64608, "beat": "2" }, { "time": 64912, "beat": "3" }, { "time": 65253, "beat": "2" }, { "time": 65573, "beat": "2" }, { "time": 65904, "beat": "2" }, { "time": 66213, "beat": "2" }, { "time": 66533, "beat": "3" }, { "time": 66869, "beat": "1" }, { "time": 67173, "beat": "2" }, { "time": 67477, "beat": "2" }, { "time": 67787, "beat": "2" }, { "time": 68117, "beat": "2" }, { "time": 68437, "beat": "3" }, { "time": 68747, "beat": "2" }, { "time": 69067, "beat": "2" }, { "time": 69371, "beat": "3" }, { "time": 69675, "beat": "3" }, { "time": 70000, "beat": "3" }, { "time": 70389, "beat": "1" }, { "time": 70704, "beat": "2" }, { "time": 71013, "beat": "3" }, { "time": 71344, "beat": "2" }, { "time": 71653, "beat": "1" }, { "time": 71963, "beat": "1" }, { "time": 72272, "beat": "3" }, { "time": 72592, "beat": "2" }, { "time": 72896, "beat": "1" }, { "time": 73205, "beat": "3" }, { "time": 73563, "beat": "1" }, { "time": 73877, "beat": "2" }, { "time": 74181, "beat": "3" }, { "time": 74528, "beat": "3" }, { "time": 75019, "beat": "1" }, { "time": 75328, "beat": "1" }, { "time": 76011, "beat": "1" }, { "time": 76336, "beat": "1" }, { "time": 76651, "beat": "1" }, { "time": 77008, "beat": "1" }, { "time": 77429, "beat": "1" }, { "time": 77872, "beat": "1" }, { "time": 78293, "beat": "1" }, { "time": 78624, "beat": "1" }, { "time": 78933, "beat": "1" }, { "time": 79237, "beat": "1" }, { "time": 79616, "beat": "1" }, { "time": 80064, "beat": "1" }, { "time": 80459, "beat": "1" }, { "time": 80779, "beat": "1" }, { "time": 81125, "beat": "1" }, { "time": 81429, "beat": "1" }, { "time": 81733, "beat": "3" }, { "time": 82069, "beat": "1" }, { "time": 82373, "beat": "2" }, { "time": 82715, "beat": "2" }, { "time": 83051, "beat": "1" }, { "time": 83371, "beat": "3" }, { "time": 83723, "beat": "1" }, { "time": 84032, "beat": "3" }, { "time": 84357, "beat": "3" }, { "time": 84667, "beat": "3" }, { "time": 84971, "beat": "3" }, { "time": 85291, "beat": "3" }, { "time": 85605, "beat": "2" }, { "time": 85915, "beat": "2" }, { "time": 86229, "beat": "3" }, { "time": 86539, "beat": "3" }, { "time": 86864, "beat": "3" }, { "time": 87179, "beat": "2" }, { "time": 87488, "beat": "2" }, { "time": 87797, "beat": "2" }, { "time": 88107, "beat": "2" }, { "time": 88411, "beat": "3" }, { "time": 88731, "beat": "2" }, { "time": 89072, "beat": "2" }, { "time": 89387, "beat": "2" }, { "time": 89696, "beat": "3" }, { "time": 90005, "beat": "3" }, { "time": 90309, "beat": "3" }, { "time": 90619, "beat": "3" }, { "time": 90933, "beat": "2" }, { "time": 91253, "beat": "2" }, { "time": 91557, "beat": "2" }, { "time": 91931, "beat": "3" }, { "time": 92363, "beat": "2" }, { "time": 92741, "beat": "1" }, { "time": 93045, "beat": "3" }, { "time": 93472, "beat": "1" }, { "time": 93797, "beat": "3" }, { "time": 94112, "beat": "3" }, { "time": 94421, "beat": "3" }, { "time": 94752, "beat": "2" }, { "time": 95056, "beat": "2" }, { "time": 95392, "beat": "3" }, { "time": 95760, "beat": "1" }, { "time": 96069, "beat": "3" }, { "time": 96395, "beat": "2" }, { "time": 96715, "beat": "2" }, { "time": 97035, "beat": "2" }, { "time": 97344, "beat": "2" }, { "time": 97648, "beat": "2" }, { "time": 98048, "beat": "1" }, { "time": 98352, "beat": "2" }, { "time": 98656, "beat": "1" }, { "time": 98965, "beat": "2" }, { "time": 99269, "beat": "2" }, { "time": 99579, "beat": "3" }, { "time": 99893, "beat": "2" }, { "time": 100208, "beat": "3" }, { "time": 100512, "beat": "3" }, { "time": 100821, "beat": "3" }, { "time": 101131, "beat": "3" }, { "time": 101445, "beat": "3" }, { "time": 101749, "beat": "3" }, { "time": 102117, "beat": "2" }, { "time": 102421, "beat": "3" }, { "time": 102731, "beat": "3" }, { "time": 103045, "beat": "2" }, { "time": 103365, "beat": "3" }, { "time": 103669, "beat": "1" }, { "time": 103973, "beat": "2" }, { "time": 104309, "beat": "2" }, { "time": 104635, "beat": "2" }, { "time": 104960, "beat": "1" }, { "time": 105285, "beat": "1" }, { "time": 105589, "beat": "2" }, { "time": 105893, "beat": "1" }, { "time": 106240, "beat": "1" }, { "time": 106587, "beat": "1" }, { "time": 106891, "beat": "3" }, { "time": 107200, "beat": "2" }, { "time": 107504, "beat": "3" }, { "time": 107829, "beat": "2" }, { "time": 108144, "beat": "3" }, { "time": 108453, "beat": "2" }, { "time": 108848, "beat": "2" }, { "time": 109157, "beat": "1" }, { "time": 109493, "beat": "1" }, { "time": 109808, "beat": "3" }, { "time": 110123, "beat": "1" }, { "time": 110432, "beat": "1" }, { "time": 110741, "beat": "1" }, { "time": 111056, "beat": "1" }, { "time": 111403, "beat": "1" }, { "time": 111776, "beat": "1" }, { "time": 112128, "beat": "3" }, { "time": 112432, "beat": "3" }, { "time": 112757, "beat": "2" }, { "time": 113061, "beat": "3" }, { "time": 113365, "beat": "3" }, { "time": 113675, "beat": "2" }, { "time": 114005, "beat": "3" }, { "time": 114309, "beat": "2" }, { "time": 114613, "beat": "3" }, { "time": 114917, "beat": "2" }, { "time": 115227, "beat": "3" }, { "time": 115536, "beat": "3" }, { "time": 115845, "beat": "3" }, { "time": 116187, "beat": "2" }, { "time": 116539, "beat": "2" }, { "time": 116848, "beat": "3" }, { "time": 117157, "beat": "3" }, { "time": 117477, "beat": "2" }, { "time": 117781, "beat": "3" }, { "time": 118091, "beat": "2" }, { "time": 118416, "beat": "2" }, { "time": 118731, "beat": "3" }, { "time": 119045, "beat": "3" }, { "time": 119365, "beat": "3" }, { "time": 119739, "beat": "1" }, { "time": 120080, "beat": "1" }, { "time": 120432, "beat": "1" }, { "time": 120736, "beat": "3" }, { "time": 121040, "beat": "2" }, { "time": 121392, "beat": "3" }, { "time": 121707, "beat": "2" }, { "time": 122011, "beat": "3" }, { "time": 122331, "beat": "2" }, { "time": 122661, "beat": "2" }, { "time": 122997, "beat": "3" }, { "time": 123301, "beat": "3" }, { "time": 123605, "beat": "3" }, { "time": 123941, "beat": "3" }, { "time": 124256, "beat": "3" }, { "time": 124576, "beat": "2" }, { "time": 124880, "beat": "2" }, { "time": 125200, "beat": "3" }, { "time": 125525, "beat": "3" }, { "time": 125840, "beat": "2" }, { "time": 126155, "beat": "3" }, { "time": 126469, "beat": "2" }, { "time": 126779, "beat": "2" }, { "time": 127104, "beat": "3" }, { "time": 127413, "beat": "2" }, { "time": 127723, "beat": "3" }, { "time": 128027, "beat": "3" }, { "time": 128341, "beat": "3" }, { "time": 128651, "beat": "3" }, { "time": 128960, "beat": "3" }, { "time": 129280, "beat": "3" }, { "time": 129595, "beat": "3" }, { "time": 129909, "beat": "3" }, { "time": 130229, "beat": "3" }, { "time": 130533, "beat": "3" }, { "time": 130843, "beat": "2" }, { "time": 131211, "beat": "1" }, { "time": 131531, "beat": "2" }, { "time": 131845, "beat": "1" }, { "time": 132155, "beat": "3" }, { "time": 132480, "beat": "2" }, { "time": 132784, "beat": "3" }, { "time": 133099, "beat": "3" }, { "time": 133413, "beat": "3" }, { "time": 133744, "beat": "3" }, { "time": 134048, "beat": "2" }, { "time": 134352, "beat": "3" }, { "time": 134672, "beat": "3" }, { "time": 134987, "beat": "2" }, { "time": 135333, "beat": "3" }, { "time": 135637, "beat": "3" }, { "time": 135947, "beat": "3" }, { "time": 136261, "beat": "3" }, { "time": 136571, "beat": "3" }, { "time": 136885, "beat": "3" }, { "time": 137195, "beat": "3" }, { "time": 137504, "beat": "3" }, { "time": 137819, "beat": "3" }, { "time": 138123, "beat": "3" }, { "time": 138432, "beat": "3" }, { "time": 140544, "beat": "2" }, { "time": 140853, "beat": "2" }, { "time": 141163, "beat": "3" }, { "time": 141483, "beat": "1" }, { "time": 141845, "beat": "1" }, { "time": 142160, "beat": "1" }, { "time": 142512, "beat": "1" }, { "time": 142816, "beat": "2" }, { "time": 143141, "beat": "1" }, { "time": 143488, "beat": "1" }, { "time": 143888, "beat": "1" }, { "time": 144325, "beat": "1" }, { "time": 144645, "beat": "1" }, { "time": 144971, "beat": "1" }, { "time": 145280, "beat": "2" }, { "time": 145595, "beat": "1" }, { "time": 145899, "beat": "1" }, { "time": 146203, "beat": "2" }, { "time": 146608, "beat": "1" }, { "time": 146933, "beat": "1" }, { "time": 147264, "beat": "1" }, { "time": 147568, "beat": "1" }, { "time": 147883, "beat": "1" }, { "time": 148192, "beat": "1" }, { "time": 148501, "beat": "1" }, { "time": 148805, "beat": "1" }, { "time": 149109, "beat": "1" }, { "time": 149419, "beat": "1" }, { "time": 149728, "beat": "1" }, { "time": 150160, "beat": "1" }, { "time": 150464, "beat": "2" }] }, { "name": "Stranger in the Storm", "songBeats": [{ "time": 165, "beat": "1" }, { "time": 469, "beat": "1" }, { "time": 869, "beat": "1" }, { "time": 1221, "beat": "1" }, { "time": 1541, "beat": "1" }, { "time": 1941, "beat": "1" }, { "time": 2288, "beat": "1" }, { "time": 2635, "beat": "1" }, { "time": 2987, "beat": "2" }, { "time": 3339, "beat": "2" }, { "time": 3691, "beat": "1" }, { "time": 4043, "beat": "1" }, { "time": 4395, "beat": "1" }, { "time": 4752, "beat": "1" }, { "time": 5104, "beat": "2" }, { "time": 5627, "beat": "1" }, { "time": 5931, "beat": "2" }, { "time": 6240, "beat": "1" }, { "time": 6544, "beat": "2" }, { "time": 6869, "beat": "1" }, { "time": 7221, "beat": "1" }, { "time": 7573, "beat": "1" }, { "time": 7931, "beat": "1" }, { "time": 8272, "beat": "1" }, { "time": 8635, "beat": "1" }, { "time": 8944, "beat": "1" }, { "time": 9253, "beat": "3" }, { "time": 9637, "beat": "1" }, { "time": 9941, "beat": "3" }, { "time": 10245, "beat": "3" }, { "time": 10555, "beat": "3" }, { "time": 10875, "beat": "3" }, { "time": 11179, "beat": "2" }, { "time": 11488, "beat": "1" }, { "time": 11803, "beat": "1" }, { "time": 12107, "beat": "3" }, { "time": 12416, "beat": "2" }, { "time": 12720, "beat": "3" }, { "time": 13024, "beat": "1" }, { "time": 13344, "beat": "3" }, { "time": 13648, "beat": "2" }, { "time": 13952, "beat": "2" }, { "time": 14277, "beat": "1" }, { "time": 14635, "beat": "1" }, { "time": 14987, "beat": "1" }, { "time": 15296, "beat": "1" }, { "time": 15605, "beat": "3" }, { "time": 16112, "beat": "1" }, { "time": 16741, "beat": "1" }, { "time": 17045, "beat": "3" }, { "time": 17413, "beat": "1" }, { "time": 17723, "beat": "3" }, { "time": 18165, "beat": "1" }, { "time": 18507, "beat": "1" }, { "time": 18827, "beat": "1" }, { "time": 19157, "beat": "3" }, { "time": 19483, "beat": "2" }, { "time": 19787, "beat": "3" }, { "time": 20101, "beat": "3" }, { "time": 20416, "beat": "3" }, { "time": 20720, "beat": "2" }, { "time": 21035, "beat": "3" }, { "time": 21344, "beat": "2" }, { "time": 21691, "beat": "1" }, { "time": 22032, "beat": "1" }, { "time": 22357, "beat": "1" }, { "time": 22683, "beat": "3" }, { "time": 23061, "beat": "1" }, { "time": 23371, "beat": "3" }, { "time": 23675, "beat": "3" }, { "time": 23984, "beat": "2" }, { "time": 24288, "beat": "2" }, { "time": 24592, "beat": "3" }, { "time": 24896, "beat": "2" }, { "time": 25205, "beat": "1" }, { "time": 25509, "beat": "3" }, { "time": 25856, "beat": "1" }, { "time": 26160, "beat": "3" }, { "time": 26480, "beat": "3" }, { "time": 26789, "beat": "3" }, { "time": 27200, "beat": "1" }, { "time": 27696, "beat": "1" }, { "time": 28005, "beat": "1" }, { "time": 28331, "beat": "3" }, { "time": 28661, "beat": "2" }, { "time": 28987, "beat": "3" }, { "time": 29307, "beat": "3" }, { "time": 29632, "beat": "3" }, { "time": 29947, "beat": "2" }, { "time": 30251, "beat": "2" }, { "time": 30555, "beat": "2" }, { "time": 30864, "beat": "1" }, { "time": 31195, "beat": "3" }, { "time": 31504, "beat": "2" }, { "time": 31808, "beat": "3" }, { "time": 32112, "beat": "3" }, { "time": 32416, "beat": "3" }, { "time": 32720, "beat": "3" }, { "time": 33035, "beat": "3" }, { "time": 33339, "beat": "2" }, { "time": 33653, "beat": "2" }, { "time": 33957, "beat": "3" }, { "time": 34261, "beat": "3" }, { "time": 34571, "beat": "2" }, { "time": 34891, "beat": "1" }, { "time": 35195, "beat": "2" }, { "time": 35504, "beat": "2" }, { "time": 35829, "beat": "2" }, { "time": 36155, "beat": "2" }, { "time": 36469, "beat": "1" }, { "time": 36773, "beat": "3" }, { "time": 37077, "beat": "3" }, { "time": 37387, "beat": "3" }, { "time": 37701, "beat": "3" }, { "time": 38011, "beat": "3" }, { "time": 38336, "beat": "3" }, { "time": 38640, "beat": "3" }, { "time": 38981, "beat": "1" }, { "time": 39296, "beat": "2" }, { "time": 39605, "beat": "3" }, { "time": 39909, "beat": "3" }, { "time": 40213, "beat": "2" }, { "time": 40528, "beat": "2" }, { "time": 40848, "beat": "2" }, { "time": 41163, "beat": "2" }, { "time": 41477, "beat": "2" }, { "time": 41781, "beat": "2" }, { "time": 42165, "beat": "2" }, { "time": 42501, "beat": "2" }, { "time": 42821, "beat": "2" }, { "time": 43125, "beat": "3" }, { "time": 43440, "beat": "3" }, { "time": 43744, "beat": "3" }, { "time": 44059, "beat": "2" }, { "time": 44363, "beat": "3" }, { "time": 44683, "beat": "2" }, { "time": 44987, "beat": "3" }, { "time": 45328, "beat": "3" }, { "time": 45643, "beat": "2" }, { "time": 45957, "beat": "3" }, { "time": 46267, "beat": "3" }, { "time": 46576, "beat": "3" }, { "time": 46885, "beat": "3" }, { "time": 47221, "beat": "3" }, { "time": 47525, "beat": "3" }, { "time": 47829, "beat": "3" }, { "time": 48267, "beat": "1" }, { "time": 48683, "beat": "1" }, { "time": 48987, "beat": "1" }, { "time": 49419, "beat": "1" }, { "time": 49781, "beat": "1" }, { "time": 50107, "beat": "1" }, { "time": 50811, "beat": "2" }, { "time": 51120, "beat": "1" }, { "time": 51424, "beat": "2" }, { "time": 51744, "beat": "1" }, { "time": 52053, "beat": "1" }, { "time": 52400, "beat": "1" }, { "time": 52752, "beat": "1" }, { "time": 53067, "beat": "1" }, { "time": 53392, "beat": "1" }, { "time": 53797, "beat": "1" }, { "time": 54165, "beat": "2" }, { "time": 54528, "beat": "1" }, { "time": 54869, "beat": "1" }, { "time": 55184, "beat": "1" }, { "time": 55573, "beat": "1" }, { "time": 55931, "beat": "1" }, { "time": 56283, "beat": "1" }, { "time": 56635, "beat": "1" }, { "time": 56981, "beat": "1" }, { "time": 57344, "beat": "1" }, { "time": 57669, "beat": "1" }, { "time": 58053, "beat": "1" }, { "time": 58416, "beat": "1" }, { "time": 58768, "beat": "1" }, { "time": 59104, "beat": "1" }, { "time": 59456, "beat": "1" }, { "time": 59808, "beat": "1" }, { "time": 60160, "beat": "1" }, { "time": 60512, "beat": "1" }, { "time": 60869, "beat": "2" }, { "time": 61211, "beat": "1" }, { "time": 61579, "beat": "1" }, { "time": 61925, "beat": "1" }, { "time": 62283, "beat": "1" }, { "time": 62592, "beat": "2" }, { "time": 62912, "beat": "3" }, { "time": 63307, "beat": "1" }, { "time": 63627, "beat": "3" }, { "time": 63984, "beat": "1" }, { "time": 64288, "beat": "3" }, { "time": 64592, "beat": "3" }, { "time": 64901, "beat": "1" }, { "time": 65216, "beat": "3" }, { "time": 65525, "beat": "3" }, { "time": 65835, "beat": "3" }, { "time": 66139, "beat": "3" }, { "time": 66448, "beat": "3" }, { "time": 66757, "beat": "3" }, { "time": 67067, "beat": "3" }, { "time": 67371, "beat": "3" }, { "time": 67675, "beat": "3" }, { "time": 67984, "beat": "3" }, { "time": 68293, "beat": "3" }, { "time": 68624, "beat": "2" }, { "time": 68939, "beat": "2" }, { "time": 69243, "beat": "3" }, { "time": 69557, "beat": "1" }, { "time": 69867, "beat": "1" }, { "time": 70219, "beat": "1" }, { "time": 70571, "beat": "1" }, { "time": 70885, "beat": "2" }, { "time": 71195, "beat": "2" }, { "time": 71499, "beat": "1" }, { "time": 71813, "beat": "2" }, { "time": 72149, "beat": "1" }, { "time": 72464, "beat": "1" }, { "time": 72773, "beat": "3" }, { "time": 73083, "beat": "3" }, { "time": 73397, "beat": "2" }, { "time": 73707, "beat": "3" }, { "time": 74016, "beat": "3" }, { "time": 74325, "beat": "3" }, { "time": 74635, "beat": "3" }, { "time": 74981, "beat": "2" }, { "time": 75291, "beat": "3" }, { "time": 75605, "beat": "3" }, { "time": 75915, "beat": "3" }, { "time": 76245, "beat": "3" }, { "time": 76549, "beat": "2" }, { "time": 76864, "beat": "2" }, { "time": 77179, "beat": "2" }, { "time": 77488, "beat": "2" }, { "time": 77808, "beat": "2" }, { "time": 78123, "beat": "2" }, { "time": 78448, "beat": "3" }, { "time": 78784, "beat": "2" }, { "time": 79093, "beat": "3" }, { "time": 79403, "beat": "3" }, { "time": 79712, "beat": "3" }, { "time": 80016, "beat": "3" }, { "time": 80331, "beat": "3" }, { "time": 80635, "beat": "1" }, { "time": 81264, "beat": "1" }, { "time": 81605, "beat": "1" }, { "time": 81909, "beat": "2" }, { "time": 82219, "beat": "2" }, { "time": 82533, "beat": "1" }, { "time": 82848, "beat": "2" }, { "time": 83173, "beat": "2" }, { "time": 83488, "beat": "2" }, { "time": 83803, "beat": "2" }, { "time": 84139, "beat": "2" }, { "time": 84443, "beat": "2" }, { "time": 84752, "beat": "3" }, { "time": 85061, "beat": "2" }, { "time": 85371, "beat": "2" }, { "time": 85680, "beat": "2" }, { "time": 85984, "beat": "2" }, { "time": 86299, "beat": "2" }, { "time": 86608, "beat": "2" }, { "time": 86917, "beat": "2" }, { "time": 87227, "beat": "2" }, { "time": 87536, "beat": "2" }, { "time": 87840, "beat": "2" }, { "time": 88165, "beat": "2" }, { "time": 88507, "beat": "2" }, { "time": 88821, "beat": "2" }, { "time": 89152, "beat": "2" }, { "time": 89461, "beat": "2" }, { "time": 89861, "beat": "2" }, { "time": 90187, "beat": "2" }, { "time": 90496, "beat": "3" }, { "time": 90805, "beat": "2" }, { "time": 91109, "beat": "2" }, { "time": 91419, "beat": "2" }, { "time": 91728, "beat": "2" }, { "time": 92032, "beat": "3" }, { "time": 92347, "beat": "3" }, { "time": 92656, "beat": "3" }, { "time": 93024, "beat": "3" }, { "time": 93339, "beat": "2" }, { "time": 93653, "beat": "2" }, { "time": 93957, "beat": "2" }, { "time": 94277, "beat": "2" }, { "time": 94608, "beat": "3" }, { "time": 94917, "beat": "1" }, { "time": 95237, "beat": "2" }, { "time": 95568, "beat": "2" }, { "time": 95883, "beat": "2" }, { "time": 96187, "beat": "3" }, { "time": 96496, "beat": "2" }, { "time": 96816, "beat": "2" }, { "time": 97131, "beat": "3" }, { "time": 97435, "beat": "2" }, { "time": 97749, "beat": "2" }, { "time": 98053, "beat": "2" }, { "time": 98368, "beat": "3" }, { "time": 98683, "beat": "2" }, { "time": 98987, "beat": "2" }, { "time": 99301, "beat": "2" }, { "time": 99611, "beat": "3" }, { "time": 99925, "beat": "3" }, { "time": 100235, "beat": "3" }, { "time": 100544, "beat": "1" }, { "time": 100859, "beat": "2" }, { "time": 101163, "beat": "2" }, { "time": 101472, "beat": "2" }, { "time": 101909, "beat": "1" }, { "time": 102341, "beat": "1" }, { "time": 102736, "beat": "1" }, { "time": 103056, "beat": "1" }, { "time": 103429, "beat": "1" }, { "time": 103755, "beat": "1" }, { "time": 104080, "beat": "1" }, { "time": 104453, "beat": "2" }, { "time": 104773, "beat": "3" }, { "time": 105083, "beat": "2" }, { "time": 105413, "beat": "3" }, { "time": 105723, "beat": "2" }, { "time": 106037, "beat": "1" }, { "time": 106347, "beat": "2" }, { "time": 106661, "beat": "3" }, { "time": 106976, "beat": "3" }, { "time": 107280, "beat": "3" }, { "time": 107589, "beat": "3" }, { "time": 107893, "beat": "3" }, { "time": 108203, "beat": "3" }, { "time": 108512, "beat": "3" }, { "time": 108848, "beat": "3" }, { "time": 109152, "beat": "3" }, { "time": 109467, "beat": "3" }, { "time": 109803, "beat": "3" }, { "time": 110107, "beat": "3" }, { "time": 110421, "beat": "2" }, { "time": 110741, "beat": "2" }, { "time": 111045, "beat": "2" }, { "time": 111365, "beat": "2" }, { "time": 111675, "beat": "2" }, { "time": 111984, "beat": "1" }, { "time": 112299, "beat": "3" }, { "time": 112608, "beat": "3" }, { "time": 112928, "beat": "3" }, { "time": 113237, "beat": "3" }, { "time": 113557, "beat": "3" }, { "time": 113877, "beat": "3" }, { "time": 114187, "beat": "3" }, { "time": 114512, "beat": "1" }, { "time": 114832, "beat": "1" }, { "time": 115179, "beat": "1" }, { "time": 115541, "beat": "1" }, { "time": 115941, "beat": "1" }, { "time": 116267, "beat": "1" }, { "time": 116651, "beat": "1" }, { "time": 117013, "beat": "1" }, { "time": 117515, "beat": "2" }, { "time": 117867, "beat": "1" }, { "time": 118208, "beat": "1" }, { "time": 118539, "beat": "1" }, { "time": 118928, "beat": "2" }, { "time": 119280, "beat": "2" }, { "time": 119632, "beat": "2" }, { "time": 119947, "beat": "1" }, { "time": 120336, "beat": "1" }, { "time": 120693, "beat": "2" }, { "time": 121045, "beat": "2" }, { "time": 121397, "beat": "2" }, { "time": 121749, "beat": "2" }, { "time": 122069, "beat": "1" }, { "time": 122395, "beat": "1" }, { "time": 122811, "beat": "1" }, { "time": 123115, "beat": "1" }, { "time": 123515, "beat": "2" }, { "time": 123867, "beat": "2" }, { "time": 124192, "beat": "2" }, { "time": 124576, "beat": "2" }, { "time": 124933, "beat": "3" }, { "time": 125280, "beat": "1" }, { "time": 125637, "beat": "2" }, { "time": 125989, "beat": "3" }, { "time": 126341, "beat": "2" }, { "time": 126661, "beat": "1" }, { "time": 127013, "beat": "2" }, { "time": 127323, "beat": "2" }, { "time": 127637, "beat": "2" }, { "time": 127941, "beat": "2" }, { "time": 128267, "beat": "2" }, { "time": 128571, "beat": "2" }, { "time": 128875, "beat": "3" }, { "time": 129227, "beat": "3" }, { "time": 129531, "beat": "3" }, { "time": 129840, "beat": "2" }, { "time": 130187, "beat": "2" }, { "time": 130496, "beat": "2" }, { "time": 130805, "beat": "3" }, { "time": 131125, "beat": "2" }, { "time": 131440, "beat": "1" }, { "time": 131760, "beat": "2" }, { "time": 132069, "beat": "3" }, { "time": 132379, "beat": "3" }, { "time": 132688, "beat": "3" }, { "time": 133003, "beat": "3" }, { "time": 133323, "beat": "2" }, { "time": 133627, "beat": "2" }, { "time": 133952, "beat": "3" }, { "time": 134368, "beat": "3" }, { "time": 134672, "beat": "3" }, { "time": 134981, "beat": "2" }, { "time": 135339, "beat": "1" }, { "time": 135648, "beat": "1" }, { "time": 135963, "beat": "1" }, { "time": 136283, "beat": "1" }, { "time": 136587, "beat": "1" }, { "time": 136960, "beat": "2" }, { "time": 137312, "beat": "1" }, { "time": 137627, "beat": "1" }, { "time": 137936, "beat": "1" }, { "time": 138240, "beat": "2" }, { "time": 138549, "beat": "2" }, { "time": 138859, "beat": "1" }, { "time": 139168, "beat": "2" }, { "time": 139483, "beat": "1" }, { "time": 139936, "beat": "1" }, { "time": 140299, "beat": "1" }, { "time": 140800, "beat": "1" }, { "time": 141163, "beat": "2" }, { "time": 141483, "beat": "2" }, { "time": 141787, "beat": "3" }, { "time": 142091, "beat": "2" }, { "time": 142395, "beat": "1" }, { "time": 142731, "beat": "1" }, { "time": 143035, "beat": "2" }, { "time": 143349, "beat": "3" }, { "time": 143653, "beat": "3" }, { "time": 143957, "beat": "3" }, { "time": 144267, "beat": "3" }, { "time": 144581, "beat": "3" }, { "time": 144885, "beat": "3" }, { "time": 145189, "beat": "3" }, { "time": 145493, "beat": "3" }, { "time": 145797, "beat": "3" }, { "time": 146112, "beat": "3" }, { "time": 146427, "beat": "3" }, { "time": 146789, "beat": "3" }, { "time": 147099, "beat": "3" }, { "time": 147408, "beat": "3" }, { "time": 147712, "beat": "2" }, { "time": 148027, "beat": "2" }, { "time": 148331, "beat": "3" }, { "time": 148645, "beat": "3" }, { "time": 148955, "beat": "3" }, { "time": 149264, "beat": "3" }, { "time": 149579, "beat": "2" }, { "time": 149888, "beat": "3" }, { "time": 150192, "beat": "3" }, { "time": 150507, "beat": "2" }, { "time": 150811, "beat": "2" }, { "time": 151115, "beat": "3" }, { "time": 151419, "beat": "3" }, { "time": 151728, "beat": "3" }, { "time": 152037, "beat": "3" }, { "time": 152341, "beat": "3" }, { "time": 152656, "beat": "1" }, { "time": 153008, "beat": "1" }, { "time": 153365, "beat": "1" }, { "time": 153723, "beat": "1" }, { "time": 154048, "beat": "2" }, { "time": 154405, "beat": "1" }, { "time": 154752, "beat": "1" }, { "time": 155109, "beat": "1" }, { "time": 155429, "beat": "1" }, { "time": 155813, "beat": "1" }, { "time": 156165, "beat": "1" }, { "time": 156533, "beat": "1" }, { "time": 156837, "beat": "1" }, { "time": 157563, "beat": "1" }, { "time": 157867, "beat": "1" }, { "time": 158192, "beat": "2" }, { "time": 158507, "beat": "2" }, { "time": 158816, "beat": "2" }, { "time": 159120, "beat": "1" }, { "time": 159424, "beat": "2" }, { "time": 159739, "beat": "1" }, { "time": 160043, "beat": "1" }, { "time": 160347, "beat": "2" }, { "time": 160667, "beat": "1" }, { "time": 160981, "beat": "2" }, { "time": 161317, "beat": "2" }, { "time": 161627, "beat": "1" }, { "time": 161936, "beat": "1" }, { "time": 162261, "beat": "2" }, { "time": 162677, "beat": "1" }, { "time": 163061, "beat": "1" }, { "time": 163435, "beat": "1" }, { "time": 163749, "beat": "3" }, { "time": 164053, "beat": "3" }, { "time": 164379, "beat": "3" }, { "time": 164683, "beat": "2" }, { "time": 165003, "beat": "3" }, { "time": 165328, "beat": "2" }, { "time": 165632, "beat": "1" }, { "time": 165936, "beat": "3" }, { "time": 166240, "beat": "3" }, { "time": 166544, "beat": "3" }, { "time": 166859, "beat": "3" }, { "time": 167173, "beat": "3" }, { "time": 167477, "beat": "3" }, { "time": 167808, "beat": "2" }, { "time": 168171, "beat": "2" }, { "time": 168987, "beat": "1" }] }]; var isDebug = false; var globalSpeed = 20; var currentRotationAngle = 0; var fullLog = []; var fpsText; var lastTick; var frameCount; var debugText; var worldManager; var backgroundManager; var gateManager; var targetManager; var ball; var runner; var speakerManager; var noteSparks; var scoreLabel; var progressBar; var orbManager; var minGateDetectionScale = 0.4; var maxGateDetectionScale = 0.6; var minOrbDetectionScale = 0.3; var maxOrbDetectionScale = 0.8; var borderLimitAngle = Math.PI * 0.08; var gateLimitAngle = Math.PI * 0.2; var gateUniqueId = 0; var songStarted = false; var leftAngle = -Math.PI * 0.5 + gateLimitAngle; var centerAngle = -Math.PI * 0.5 + Math.PI / 2; var rightAngle = -Math.PI * 0.5 + Math.PI - gateLimitAngle; function getNextGateId() { return gateUniqueId++; } var lastHitSoundTime = 0; var hitSoundCooldown = 100; var skipBeatDelay = 900; var lastBeatTime = 0; var lastGateHitTime = 0; var gatePenaltyValue = -2; if (isDebug) { songListV3 = [{ "name": "Words Fly Fast", "duration": 5000, // Real 157240, "songBeats": [{ "time": 651, "beat": "1" }, { "time": 1256, "beat": "1" }, { "time": 1800, "beat": "1" }, { "time": 2364, "beat": "1" }, { "time": 2828, "beat": "1" }, { "time": 3324, "beat": "1" }, { "time": 3708, "beat": "1" }, { "time": 4192, "beat": "2" }, { "time": 4804, "beat": "2" }] }, { "name": "Freedom", "duration": 5000, // Real 157240, "songBeats": [{ "time": 651, "beat": "1" }, { "time": 1256, "beat": "1" }, { "time": 1800, "beat": "1" }, { "time": 2364, "beat": "1" }, { "time": 2828, "beat": "1" }, { "time": 3324, "beat": "1" }, { "time": 3708, "beat": "1" }, { "time": 4192, "beat": "2" }, { "time": 4804, "beat": "2" }] }, { "name": "Stranger in the Storm", "duration": 5000, // Real 157240, "songBeats": [{ "time": 651, "beat": "1" }, { "time": 1256, "beat": "1" }, { "time": 1800, "beat": "1" }, { "time": 2364, "beat": "1" }, { "time": 2828, "beat": "1" }, { "time": 3324, "beat": "1" }, { "time": 3708, "beat": "1" }, { "time": 4192, "beat": "2" }, { "time": 4804, "beat": "2" }] }]; speakersBeat = [{ "name": "Words Fly Fast", "songBeats": [{ "time": 128, "beat": "1" }, { "time": 443, "beat": "1" }, { "time": 747, "beat": "1" }, { "time": 1232, "beat": "1" }, { "time": 1579, "beat": "1" }, { "time": 1893, "beat": "1" }, { "time": 2224, "beat": "1" }, { "time": 2549, "beat": "1" }, { "time": 2853, "beat": "1" }, { "time": 3269, "beat": "1" }, { "time": 3712, "beat": "1" }, { "time": 4037, "beat": "1" }, { "time": 4352, "beat": "1" }, { "time": 4661, "beat": "1" }] }, { "name": "The song number 2", "songBeats": [{ "time": 128, "beat": "1" }, { "time": 443, "beat": "1" }, { "time": 747, "beat": "1" }, { "time": 1232, "beat": "1" }, { "time": 1579, "beat": "1" }, { "time": 1893, "beat": "1" }, { "time": 2224, "beat": "1" }, { "time": 2549, "beat": "1" }, { "time": 2853, "beat": "1" }, { "time": 3269, "beat": "1" }, { "time": 3712, "beat": "1" }, { "time": 4037, "beat": "1" }, { "time": 4352, "beat": "1" }, { "time": 4661, "beat": "1" }] }, { "name": "The Song number 3", "songBeats": [{ "time": 128, "beat": "1" }, { "time": 443, "beat": "1" }, { "time": 747, "beat": "1" }, { "time": 1232, "beat": "1" }, { "time": 1579, "beat": "1" }, { "time": 1893, "beat": "1" }, { "time": 2224, "beat": "1" }, { "time": 2549, "beat": "1" }, { "time": 2853, "beat": "1" }, { "time": 3269, "beat": "1" }, { "time": 3712, "beat": "1" }, { "time": 4037, "beat": "1" }, { "time": 4352, "beat": "1" }, { "time": 4661, "beat": "1" }] }]; } function playHitSound() { var now = Date.now(); if (now - lastHitSoundTime >= hitSoundCooldown) { LK.getSound('hit').play(); lastHitSoundTime = now; } } function gameInitialize() { worldManager = new WorldManager(); game.addChild(worldManager); backgroundManager = new BackgroundManager(); game.addChild(backgroundManager); gateManager = new GateManager(); game.addChild(gateManager); speakerManager = new SpeakerManager(); game.addChild(speakerManager); noteSparks = new NoteSparks(); game.addChild(noteSparks); orbManager = new OrbManager(); game.addChild(orbManager); ball = new Ball(); ball.x = 1024; ball.y = 2000; ball.alpha = isDebug ? 1 : 0; game.addChild(ball); runner = new Runner(); runner.x = 1024; runner.y = 2000; runner.alpha = 1; // Ensure runner is visible game.addChild(runner); // Add score display scoreLabel = new ScoreLabel(); scoreLabel.y = 80; scoreLabel.visible = false; LK.gui.top.addChild(scoreLabel); // Add progress bar progressBar = new ProgressBar(); progressBar.x = 0; progressBar.y = 10; progressBar.visible = false; game.addChild(progressBar); // Update score display function game.updateScore = function () { scoreLabel.updateScore(LK.getScore()); }; if (!songStarted) { var startButton = new StartButton(); game.addChild(startButton); } if (isDebug) { var debugMarker = LK.getAsset('debugMarker', { anchorX: 0.5, anchorY: 0.5, x: 2048 * 0.5, y: 2732 / 2 }); game.addChild(debugMarker); fpsText = new Text2('FPS: 0', { size: 50, fill: 0xFFFFFF }); fpsText.anchor.set(1, 1); LK.gui.bottomRight.addChild(fpsText); lastTick = Date.now(); frameCount = 0; debugText = new Text2('Debug Info', { size: 50, fill: 0xFFFFFF }); debugText.anchor.set(0.5, 0); LK.gui.top.addChild(debugText); var soundTestButton = new Container(); var buttonBg = LK.getAsset('line', { anchorX: 0.5, anchorY: 0.5, scaleX: 50, scaleY: 15, tint: 0x333333 }); soundTestButton.addChild(buttonBg); var buttonText = new Text2('SOUND TEST', { size: 40, fill: 0xFFFFFF }); buttonText.anchor.set(0.5, 0.5); soundTestButton.addChild(buttonText); soundTestButton.x = -100; soundTestButton.y = 50; LK.gui.topRight.addChild(soundTestButton); soundTestButton.down = function () { for (var i = 0; i <= 14; i++) { (function (index) { LK.setTimeout(function () { LK.getSound('key' + index).play(); }, index * 600); })(i); } }; } } game.update = function () { // Update progress bar if (progressBar && progressBar.update) { progressBar.update(); } if (isDebug) { var now = Date.now(); frameCount++; if (now - lastTick >= 1000) { fpsText.setText('FPS: ' + frameCount); frameCount = 0; lastTick = now; } } }; var snapPositions = { left: 0, center: 1, right: 2 }; var currentSnapPosition = snapPositions.center; var lastMouseZone = 1; function updateSnapPosition(snapPos) { currentSnapPosition = snapPos; var targetAngle = centerAngle; if (snapPos === snapPositions.left) { targetAngle = leftAngle; } else if (snapPos === snapPositions.center) { targetAngle = centerAngle; } else if (snapPos === snapPositions.right) { targetAngle = rightAngle; } var radiusX = 924; var radiusY = 634; runner.x = centerX + radiusX * Math.cos(targetAngle + Math.PI * 0.5); runner.y = centerY + radiusY * Math.sin(targetAngle + Math.PI * 0.5); var rotationMap = { 0: -0.5, 1: 0, 2: 0.5 }; currentRotationAngle = rotationMap[snapPos] * Math.PI * 0.5; } function animateToSnapPosition(snapPos, jump) { var needsIntermediateStep = false; if (currentSnapPosition === snapPositions.left && snapPos === snapPositions.right || currentSnapPosition === snapPositions.right && snapPos === snapPositions.left) { needsIntermediateStep = true; } if (needsIntermediateStep && !jump) { var radiusX = 924; var radiusY = 634; var centerPosX = centerX + radiusX * Math.cos(centerAngle + Math.PI * 0.5); var centerPosY = centerY + radiusY * Math.sin(centerAngle + Math.PI * 0.5); tween(runner, { x: centerPosX, y: centerPosY }, { duration: 100, easing: tween.easeInOut, onFinish: function onFinish() { performSnapAnimation(snapPos, jump); } }); currentRotationAngle = 0; } else { performSnapAnimation(snapPos, jump); } } function performSnapAnimation(snapPos, jump) { currentSnapPosition = snapPos; var targetAngle = centerAngle; if (snapPos === snapPositions.left) { targetAngle = rightAngle; } else if (snapPos === snapPositions.center) { targetAngle = centerAngle; } else if (snapPos === snapPositions.right) { targetAngle = leftAngle; } var radiusX = 924; var radiusY = 634; var targetX = centerX + radiusX * Math.cos(targetAngle + Math.PI * 0.5); var targetY = centerY + radiusY * Math.sin(targetAngle + Math.PI * 0.5); var rotationMap = { 0: -0.5, 1: 0, 2: 0.5 }; var targetRotation = rotationMap[snapPos] * Math.PI * 0.5; if (jump) { tween(runner, { y: 1200 }, { duration: 200, easing: tween.easeOut, onFinish: function onFinish() { tween(runner, { x: targetX, y: targetY }, { duration: 200, easing: tween.easeIn }); } }); } else { tween(runner, { x: targetX, y: targetY }, { duration: 300, easing: tween.easeInOut }); } currentRotationAngle = targetRotation; } game.down = function (x, y, obj) { if (!songStarted) { return; } var screenWidth = 2048; var thirdWidth = screenWidth / 3; var tapZone; if (x < thirdWidth) { tapZone = 0; } else if (x < thirdWidth * 2) { tapZone = 1; } else { tapZone = 2; } if (tapZone === 0) { animateToSnapPosition(snapPositions.left); } else if (tapZone === 1) { animateToSnapPosition(snapPositions.center); } else { animateToSnapPosition(snapPositions.right); } lastMouseZone = tapZone; }; game.move = function (x, y, obj) { if (!songStarted) { return; } var screenWidth = 2048; var thirdWidth = screenWidth / 3; var currentZone; if (x < thirdWidth) { currentZone = 0; } else if (x < thirdWidth * 2) { currentZone = 1; } else { currentZone = 2; } if (currentZone !== lastMouseZone) { if (currentZone === 0) { animateToSnapPosition(snapPositions.left); } else if (currentZone === 1) { animateToSnapPosition(snapPositions.center); } else { animateToSnapPosition(snapPositions.right); } lastMouseZone = currentZone; } }; game.up = function (x, y, obj) {}; function showMenu() { // Reset runner to initial position and ensure visibility if (runner) { runner.x = 1024; runner.y = 2000; runner.alpha = 1; runner.scaleX = 1; runner.scaleY = 1; runner.isPlayingIdleAnim = false; runner.isReturningToInitial = false; // Hide all idle frames for (var i = 0; i < runner.idleFrameAssets.length; i++) { runner.idleFrameAssets[i].alpha = 0; } // Show first running frame for (var i = 0; i < runner.frameAssets.length; i++) { runner.frameAssets[i].alpha = i === 0 ? 1 : 0; } } // Create menu container var menuContainer = new Container(); menuContainer.x = 1024; menuContainer.y = 1366; game.addChild(menuContainer); // Menu tile positions and track names - arranged in vertical list with increased spacing var menuData = [{ x: 0, y: -700, text: songListV3[0] ? songListV3[0].name : "Track 01" }, { x: 0, y: 0, text: songListV3[1] ? songListV3[1].name : "Track 02" }, { x: 0, y: 700, text: songListV3[2] ? songListV3[2].name : "Track 03" }]; // Create menu tiles for (var i = 0; i < menuData.length; i++) { var tile = menuContainer.addChild(LK.getAsset('menuTile', { anchorX: 0.5, anchorY: 0.5, x: menuData[i].x, y: menuData[i].y, alpha: 0, scaleX: 0.85, scaleY: 0.58 })); // Add text to tile var trackText = new Text2(menuData[i].text, { size: 120, fill: 0xFFFFFF, dropShadow: true, dropShadowColor: 0x000000, dropShadowBlur: 4, dropShadowAngle: Math.PI / 4, dropShadowDistance: 5 }); trackText.anchor.set(0.5, 0.5); trackText.x = menuData[i].x; trackText.y = menuData[i].y; menuContainer.addChild(trackText); // Animate tiles in with staggered timing and add touch handlers (function (menuTile, menuText, delay, trackIndex) { LK.setTimeout(function () { tween(menuTile, { alpha: 1, scaleX: 0.85, scaleY: 0.58 }, { duration: 800, easing: tween.easeOut }); tween(menuText, { alpha: 1 }, { duration: 800, easing: tween.easeOut }); }, delay); // Add touch handler to menu tile menuTile.down = function () { // Load the selected track's song data if (gateManager && songListV3[trackIndex]) { gateManager.currentSong = songListV3[trackIndex]; gateManager.resetSong(); } if (speakerManager && speakersBeat[trackIndex]) { speakerManager.speakerSongData = speakersBeat[trackIndex]; speakerManager.currentBeatIndex = 0; } // Start the corresponding music track var musicTrack = songTracks[trackIndex]; if (musicTrack) { songStarted = true; LK.playMusic(musicTrack); // Update timing for managers if (gateManager) { gateManager.songStartTime = Date.now(); } if (speakerManager) { speakerManager.songStartTime = Date.now(); } // Show score and progress bar if (scoreLabel) { scoreLabel.visible = true; } if (progressBar) { progressBar.visible = true; progressBar.startProgressAnimation(); } // Fade out and destroy menu tween(menuContainer, { alpha: 0 }, { duration: 500, easing: tween.easeOut, onFinish: function onFinish() { menuContainer.destroy(); } }); } }; })(tile, trackText, i * 200, i); } } gameInitialize(); ;
===================================================================
--- original.js
+++ change.js
@@ -2390,8 +2390,1891 @@
}, {
"time": 154518,
"beat": "2"
}]
+}, {
+ "name": "Freedom",
+ "duration": 153600,
+ "songBeats": [{
+ "time": 3218,
+ "beat": "1"
+ }, {
+ "time": 3522,
+ "beat": "1"
+ }, {
+ "time": 4358,
+ "beat": "2"
+ }, {
+ "time": 4661,
+ "beat": "2"
+ }, {
+ "time": 5378,
+ "beat": "1"
+ }, {
+ "time": 5682,
+ "beat": "1"
+ }, {
+ "time": 5980,
+ "beat": "1"
+ }, {
+ "time": 6557,
+ "beat": "2"
+ }, {
+ "time": 6862,
+ "beat": "2"
+ }, {
+ "time": 7166,
+ "beat": "2"
+ }, {
+ "time": 7670,
+ "beat": "1"
+ }, {
+ "time": 7974,
+ "beat": "1"
+ }, {
+ "time": 8271,
+ "beat": "1"
+ }, {
+ "time": 8719,
+ "beat": "2"
+ }, {
+ "time": 9023,
+ "beat": "2"
+ }, {
+ "time": 9322,
+ "beat": "2"
+ }, {
+ "time": 9926,
+ "beat": "0"
+ }, {
+ "time": 10234,
+ "beat": "0"
+ }, {
+ "time": 11037,
+ "beat": "2"
+ }, {
+ "time": 11341,
+ "beat": "2"
+ }, {
+ "time": 11741,
+ "beat": "1"
+ }, {
+ "time": 12044,
+ "beat": "1"
+ }, {
+ "time": 12278,
+ "beat": "2"
+ }, {
+ "time": 12578,
+ "beat": "2"
+ }, {
+ "time": 12842,
+ "beat": "1"
+ }, {
+ "time": 13155,
+ "beat": "1"
+ }, {
+ "time": 13438,
+ "beat": "2"
+ }, {
+ "time": 13744,
+ "beat": "2"
+ }, {
+ "time": 13982,
+ "beat": "1"
+ }, {
+ "time": 14289,
+ "beat": "1"
+ }, {
+ "time": 14569,
+ "beat": "2"
+ }, {
+ "time": 14875,
+ "beat": "2"
+ }, {
+ "time": 15233,
+ "beat": "1"
+ }, {
+ "time": 15544,
+ "beat": "1"
+ }, {
+ "time": 15789,
+ "beat": "2"
+ }, {
+ "time": 16099,
+ "beat": "2"
+ }, {
+ "time": 16340,
+ "beat": "1"
+ }, {
+ "time": 16641,
+ "beat": "1"
+ }, {
+ "time": 16881,
+ "beat": "2"
+ }, {
+ "time": 17186,
+ "beat": "2"
+ }, {
+ "time": 17921,
+ "beat": "1"
+ }, {
+ "time": 18193,
+ "beat": "1"
+ }, {
+ "time": 18447,
+ "beat": "1"
+ }, {
+ "time": 18697,
+ "beat": "1"
+ }, {
+ "time": 19007,
+ "beat": "1"
+ }, {
+ "time": 19738,
+ "beat": "2"
+ }, {
+ "time": 20045,
+ "beat": "2"
+ }, {
+ "time": 20340,
+ "beat": "2"
+ }, {
+ "time": 21321,
+ "beat": "2"
+ }, {
+ "time": 21623,
+ "beat": "2"
+ }, {
+ "time": 21934,
+ "beat": "2"
+ }, {
+ "time": 22223,
+ "beat": "2"
+ }, {
+ "time": 23453,
+ "beat": "2"
+ }, {
+ "time": 23767,
+ "beat": "2"
+ }, {
+ "time": 24057,
+ "beat": "2"
+ }, {
+ "time": 26197,
+ "beat": "1"
+ }, {
+ "time": 26507,
+ "beat": "1"
+ }, {
+ "time": 27085,
+ "beat": "1"
+ }, {
+ "time": 27387,
+ "beat": "1"
+ }, {
+ "time": 27698,
+ "beat": "1"
+ }, {
+ "time": 28473,
+ "beat": "3"
+ }, {
+ "time": 29066,
+ "beat": "3"
+ }, {
+ "time": 29658,
+ "beat": "3"
+ }, {
+ "time": 30197,
+ "beat": "3"
+ }, {
+ "time": 30770,
+ "beat": "3"
+ }, {
+ "time": 31071,
+ "beat": "3"
+ }, {
+ "time": 31285,
+ "beat": "2"
+ }, {
+ "time": 31596,
+ "beat": "2"
+ }, {
+ "time": 32062,
+ "beat": "1"
+ }, {
+ "time": 32367,
+ "beat": "1"
+ }, {
+ "time": 32663,
+ "beat": "1"
+ }, {
+ "time": 33129,
+ "beat": "2"
+ }, {
+ "time": 33430,
+ "beat": "2"
+ }, {
+ "time": 33736,
+ "beat": "2"
+ }, {
+ "time": 34190,
+ "beat": "1"
+ }, {
+ "time": 34491,
+ "beat": "1"
+ }, {
+ "time": 34798,
+ "beat": "1"
+ }, {
+ "time": 35218,
+ "beat": "2"
+ }, {
+ "time": 35520,
+ "beat": "2"
+ }, {
+ "time": 35829,
+ "beat": "2"
+ }, {
+ "time": 36417,
+ "beat": "3"
+ }, {
+ "time": 36731,
+ "beat": "3"
+ }, {
+ "time": 37021,
+ "beat": "3"
+ }, {
+ "time": 37337,
+ "beat": "3"
+ }, {
+ "time": 38194,
+ "beat": "1"
+ }, {
+ "time": 38504,
+ "beat": "1"
+ }, {
+ "time": 39194,
+ "beat": "2"
+ }, {
+ "time": 39509,
+ "beat": "2"
+ }, {
+ "time": 40170,
+ "beat": "1"
+ }, {
+ "time": 40471,
+ "beat": "1"
+ }, {
+ "time": 41241,
+ "beat": "2"
+ }, {
+ "time": 41551,
+ "beat": "2"
+ }, {
+ "time": 42277,
+ "beat": "1"
+ }, {
+ "time": 42583,
+ "beat": "1"
+ }, {
+ "time": 42878,
+ "beat": "1"
+ }, {
+ "time": 43417,
+ "beat": "2"
+ }, {
+ "time": 43731,
+ "beat": "2"
+ }, {
+ "time": 44029,
+ "beat": "2"
+ }, {
+ "time": 45454,
+ "beat": "3"
+ }, {
+ "time": 45917,
+ "beat": "3"
+ }, {
+ "time": 46223,
+ "beat": "3"
+ }, {
+ "time": 46429,
+ "beat": "3"
+ }, {
+ "time": 46735,
+ "beat": "3"
+ }, {
+ "time": 47197,
+ "beat": "2"
+ }, {
+ "time": 47509,
+ "beat": "2"
+ }, {
+ "time": 47803,
+ "beat": "2"
+ }, {
+ "time": 49050,
+ "beat": "1"
+ }, {
+ "time": 49354,
+ "beat": "1"
+ }, {
+ "time": 49660,
+ "beat": "1"
+ }, {
+ "time": 51274,
+ "beat": "2"
+ }, {
+ "time": 51574,
+ "beat": "2"
+ }, {
+ "time": 51885,
+ "beat": "2"
+ }, {
+ "time": 53692,
+ "beat": "1"
+ }, {
+ "time": 53995,
+ "beat": "1"
+ }, {
+ "time": 54293,
+ "beat": "1"
+ }, {
+ "time": 54600,
+ "beat": "1"
+ }, {
+ "time": 54893,
+ "beat": "1"
+ }, {
+ "time": 56858,
+ "beat": "0"
+ }, {
+ "time": 57361,
+ "beat": "0"
+ }, {
+ "time": 57969,
+ "beat": "0"
+ }, {
+ "time": 58489,
+ "beat": "0"
+ }, {
+ "time": 58986,
+ "beat": "2"
+ }, {
+ "time": 59290,
+ "beat": "2"
+ }, {
+ "time": 60113,
+ "beat": "1"
+ }, {
+ "time": 60416,
+ "beat": "1"
+ }, {
+ "time": 61138,
+ "beat": "2"
+ }, {
+ "time": 61438,
+ "beat": "2"
+ }, {
+ "time": 61741,
+ "beat": "2"
+ }, {
+ "time": 62366,
+ "beat": "1"
+ }, {
+ "time": 62675,
+ "beat": "1"
+ }, {
+ "time": 63453,
+ "beat": "2"
+ }, {
+ "time": 63756,
+ "beat": "2"
+ }, {
+ "time": 64141,
+ "beat": "3"
+ }, {
+ "time": 64745,
+ "beat": "3"
+ }, {
+ "time": 65057,
+ "beat": "3"
+ }, {
+ "time": 65833,
+ "beat": "1"
+ }, {
+ "time": 66138,
+ "beat": "1"
+ }, {
+ "time": 66994,
+ "beat": "2"
+ }, {
+ "time": 67298,
+ "beat": "2"
+ }, {
+ "time": 68093,
+ "beat": "1"
+ }, {
+ "time": 68399,
+ "beat": "1"
+ }, {
+ "time": 69121,
+ "beat": "2"
+ }, {
+ "time": 69426,
+ "beat": "2"
+ }, {
+ "time": 70138,
+ "beat": "1"
+ }, {
+ "time": 70439,
+ "beat": "1"
+ }, {
+ "time": 70746,
+ "beat": "1"
+ }, {
+ "time": 71342,
+ "beat": "2"
+ }, {
+ "time": 71653,
+ "beat": "2"
+ }, {
+ "time": 73313,
+ "beat": "3"
+ }, {
+ "time": 73857,
+ "beat": "3"
+ }, {
+ "time": 74174,
+ "beat": "3"
+ }, {
+ "time": 75786,
+ "beat": "1"
+ }, {
+ "time": 76088,
+ "beat": "1"
+ }, {
+ "time": 76396,
+ "beat": "1"
+ }, {
+ "time": 77390,
+ "beat": "2"
+ }, {
+ "time": 77692,
+ "beat": "2"
+ }, {
+ "time": 77998,
+ "beat": "2"
+ }, {
+ "time": 78977,
+ "beat": "1"
+ }, {
+ "time": 79281,
+ "beat": "1"
+ }, {
+ "time": 79590,
+ "beat": "1"
+ }, {
+ "time": 80665,
+ "beat": "2"
+ }, {
+ "time": 80975,
+ "beat": "2"
+ }, {
+ "time": 82473,
+ "beat": "1"
+ }, {
+ "time": 82782,
+ "beat": "1"
+ }, {
+ "time": 83190,
+ "beat": "2"
+ }, {
+ "time": 83499,
+ "beat": "2"
+ }, {
+ "time": 83937,
+ "beat": "3"
+ }, {
+ "time": 85038,
+ "beat": "3"
+ }, {
+ "time": 85341,
+ "beat": "3"
+ }, {
+ "time": 85953,
+ "beat": "1"
+ }, {
+ "time": 86263,
+ "beat": "1"
+ }, {
+ "time": 87086,
+ "beat": "2"
+ }, {
+ "time": 87391,
+ "beat": "2"
+ }, {
+ "time": 88123,
+ "beat": "1"
+ }, {
+ "time": 88424,
+ "beat": "1"
+ }, {
+ "time": 89153,
+ "beat": "2"
+ }, {
+ "time": 89457,
+ "beat": "2"
+ }, {
+ "time": 89766,
+ "beat": "2"
+ }, {
+ "time": 90221,
+ "beat": "1"
+ }, {
+ "time": 90524,
+ "beat": "1"
+ }, {
+ "time": 91150,
+ "beat": "3"
+ }, {
+ "time": 91451,
+ "beat": "3"
+ }, {
+ "time": 91826,
+ "beat": "3"
+ }, {
+ "time": 92136,
+ "beat": "3"
+ }, {
+ "time": 93077,
+ "beat": "1"
+ }, {
+ "time": 93386,
+ "beat": "1"
+ }, {
+ "time": 94166,
+ "beat": "2"
+ }, {
+ "time": 94480,
+ "beat": "2"
+ }, {
+ "time": 95386,
+ "beat": "1"
+ }, {
+ "time": 95686,
+ "beat": "1"
+ }, {
+ "time": 96617,
+ "beat": "2"
+ }, {
+ "time": 96926,
+ "beat": "2"
+ }, {
+ "time": 97798,
+ "beat": "1"
+ }, {
+ "time": 98103,
+ "beat": "1"
+ }, {
+ "time": 98938,
+ "beat": "2"
+ }, {
+ "time": 99246,
+ "beat": "2"
+ }, {
+ "time": 99544,
+ "beat": "2"
+ }, {
+ "time": 100077,
+ "beat": "1"
+ }, {
+ "time": 100382,
+ "beat": "1"
+ }, {
+ "time": 100680,
+ "beat": "1"
+ }, {
+ "time": 101145,
+ "beat": "2"
+ }, {
+ "time": 101447,
+ "beat": "2"
+ }, {
+ "time": 101747,
+ "beat": "2"
+ }, {
+ "time": 102325,
+ "beat": "3"
+ }, {
+ "time": 102628,
+ "beat": "3"
+ }, {
+ "time": 103481,
+ "beat": "3"
+ }, {
+ "time": 103782,
+ "beat": "3"
+ }, {
+ "time": 104854,
+ "beat": "3"
+ }, {
+ "time": 105166,
+ "beat": "3"
+ }, {
+ "time": 106094,
+ "beat": "3"
+ }, {
+ "time": 106401,
+ "beat": "3"
+ }, {
+ "time": 107266,
+ "beat": "3"
+ }, {
+ "time": 107569,
+ "beat": "3"
+ }, {
+ "time": 108506,
+ "beat": "3"
+ }, {
+ "time": 108809,
+ "beat": "3"
+ }, {
+ "time": 110938,
+ "beat": "1"
+ }, {
+ "time": 111241,
+ "beat": "1"
+ }, {
+ "time": 112218,
+ "beat": "2"
+ }, {
+ "time": 112521,
+ "beat": "2"
+ }, {
+ "time": 112823,
+ "beat": "2"
+ }, {
+ "time": 113621,
+ "beat": "1"
+ }, {
+ "time": 113930,
+ "beat": "1"
+ }, {
+ "time": 114881,
+ "beat": "2"
+ }, {
+ "time": 115191,
+ "beat": "2"
+ }, {
+ "time": 115490,
+ "beat": "2"
+ }, {
+ "time": 115989,
+ "beat": "1"
+ }, {
+ "time": 116291,
+ "beat": "1"
+ }, {
+ "time": 116596,
+ "beat": "1"
+ }, {
+ "time": 117138,
+ "beat": "2"
+ }, {
+ "time": 117447,
+ "beat": "2"
+ }, {
+ "time": 117740,
+ "beat": "2"
+ }, {
+ "time": 118830,
+ "beat": "3"
+ }, {
+ "time": 119132,
+ "beat": "3"
+ }, {
+ "time": 119449,
+ "beat": "3"
+ }, {
+ "time": 119756,
+ "beat": "3"
+ }, {
+ "time": 120885,
+ "beat": "1"
+ }, {
+ "time": 121192,
+ "beat": "1"
+ }, {
+ "time": 122073,
+ "beat": "2"
+ }, {
+ "time": 122374,
+ "beat": "2"
+ }, {
+ "time": 123157,
+ "beat": "1"
+ }, {
+ "time": 123460,
+ "beat": "1"
+ }, {
+ "time": 124402,
+ "beat": "2"
+ }, {
+ "time": 124708,
+ "beat": "2"
+ }, {
+ "time": 125533,
+ "beat": "1"
+ }, {
+ "time": 125834,
+ "beat": "1"
+ }, {
+ "time": 126806,
+ "beat": "2"
+ }, {
+ "time": 127113,
+ "beat": "2"
+ }, {
+ "time": 128186,
+ "beat": "3"
+ }, {
+ "time": 128491,
+ "beat": "3"
+ }, {
+ "time": 128953,
+ "beat": "3"
+ }, {
+ "time": 129255,
+ "beat": "3"
+ }, {
+ "time": 129941,
+ "beat": "1"
+ }, {
+ "time": 130242,
+ "beat": "1"
+ }, {
+ "time": 131093,
+ "beat": "2"
+ }, {
+ "time": 131395,
+ "beat": "2"
+ }, {
+ "time": 131702,
+ "beat": "2"
+ }, {
+ "time": 132305,
+ "beat": "1"
+ }, {
+ "time": 132609,
+ "beat": "1"
+ }, {
+ "time": 133401,
+ "beat": "2"
+ }, {
+ "time": 133706,
+ "beat": "2"
+ }, {
+ "time": 134002,
+ "beat": "2"
+ }, {
+ "time": 134550,
+ "beat": "1"
+ }, {
+ "time": 134856,
+ "beat": "1"
+ }, {
+ "time": 135593,
+ "beat": "2"
+ }, {
+ "time": 135896,
+ "beat": "2"
+ }, {
+ "time": 136206,
+ "beat": "2"
+ }, {
+ "time": 137238,
+ "beat": "3"
+ }, {
+ "time": 137538,
+ "beat": "3"
+ }, {
+ "time": 137881,
+ "beat": "3"
+ }, {
+ "time": 138183,
+ "beat": "3"
+ }, {
+ "time": 138497,
+ "beat": "3"
+ }, {
+ "time": 138802,
+ "beat": "3"
+ }, {
+ "time": 141045,
+ "beat": "1"
+ }, {
+ "time": 141351,
+ "beat": "1"
+ }, {
+ "time": 143062,
+ "beat": "2"
+ }, {
+ "time": 143367,
+ "beat": "2"
+ }, {
+ "time": 144529,
+ "beat": "1"
+ }, {
+ "time": 144833,
+ "beat": "1"
+ }, {
+ "time": 146029,
+ "beat": "2"
+ }, {
+ "time": 146339,
+ "beat": "2"
+ }, {
+ "time": 147346,
+ "beat": "1"
+ }, {
+ "time": 147652,
+ "beat": "1"
+ }, {
+ "time": 147947,
+ "beat": "1"
+ }, {
+ "time": 149938,
+ "beat": "3"
+ }, {
+ "time": 150240,
+ "beat": "3"
+ }, {
+ "time": 150539,
+ "beat": "3"
+ }, {
+ "time": 150849,
+ "beat": "3"
+ }]
+}, {
+ "name": "Stranger in the Storm",
+ "duration": 170760,
+ "songBeats": [{
+ "time": 582,
+ "beat": "0"
+ }, {
+ "time": 1286,
+ "beat": "0"
+ }, {
+ "time": 2053,
+ "beat": "0"
+ }, {
+ "time": 2769,
+ "beat": "0"
+ }, {
+ "time": 3093,
+ "beat": "0"
+ }, {
+ "time": 3465,
+ "beat": "0"
+ }, {
+ "time": 4194,
+ "beat": "0"
+ }, {
+ "time": 4929,
+ "beat": "0"
+ }, {
+ "time": 5501,
+ "beat": "0"
+ }, {
+ "time": 6141,
+ "beat": "1"
+ }, {
+ "time": 6845,
+ "beat": "2"
+ }, {
+ "time": 7462,
+ "beat": "1"
+ }, {
+ "time": 8149,
+ "beat": "2"
+ }, {
+ "time": 8456,
+ "beat": "2"
+ }, {
+ "time": 8954,
+ "beat": "1"
+ }, {
+ "time": 9662,
+ "beat": "2"
+ }, {
+ "time": 10285,
+ "beat": "1"
+ }, {
+ "time": 10921,
+ "beat": "2"
+ }, {
+ "time": 11235,
+ "beat": "2"
+ }, {
+ "time": 11577,
+ "beat": "1"
+ }, {
+ "time": 12373,
+ "beat": "2"
+ }, {
+ "time": 13098,
+ "beat": "1"
+ }, {
+ "time": 13398,
+ "beat": "1"
+ }, {
+ "time": 13737,
+ "beat": "2"
+ }, {
+ "time": 14050,
+ "beat": "2"
+ }, {
+ "time": 14521,
+ "beat": "1"
+ }, {
+ "time": 14837,
+ "beat": "1"
+ }, {
+ "time": 15269,
+ "beat": "2"
+ }, {
+ "time": 15593,
+ "beat": "2"
+ }, {
+ "time": 15925,
+ "beat": "1"
+ }, {
+ "time": 16248,
+ "beat": "1"
+ }, {
+ "time": 16945,
+ "beat": "3"
+ }, {
+ "time": 17254,
+ "beat": "3"
+ }, {
+ "time": 17682,
+ "beat": "3"
+ }, {
+ "time": 17996,
+ "beat": "3"
+ }, {
+ "time": 18422,
+ "beat": "3"
+ }, {
+ "time": 18734,
+ "beat": "3"
+ }, {
+ "time": 19213,
+ "beat": "3"
+ }, {
+ "time": 19515,
+ "beat": "3"
+ }, {
+ "time": 20414,
+ "beat": "1"
+ }, {
+ "time": 21101,
+ "beat": "2"
+ }, {
+ "time": 21412,
+ "beat": "2"
+ }, {
+ "time": 21765,
+ "beat": "1"
+ }, {
+ "time": 22402,
+ "beat": "2"
+ }, {
+ "time": 22702,
+ "beat": "2"
+ }, {
+ "time": 23321,
+ "beat": "3"
+ }, {
+ "time": 24065,
+ "beat": "3"
+ }, {
+ "time": 24366,
+ "beat": "3"
+ }, {
+ "time": 24814,
+ "beat": "3"
+ }, {
+ "time": 25123,
+ "beat": "3"
+ }, {
+ "time": 25589,
+ "beat": "3"
+ }, {
+ "time": 25899,
+ "beat": "3"
+ }, {
+ "time": 26265,
+ "beat": "1"
+ }, {
+ "time": 26901,
+ "beat": "2"
+ }, {
+ "time": 27207,
+ "beat": "2"
+ }, {
+ "time": 27585,
+ "beat": "1"
+ }, {
+ "time": 28285,
+ "beat": "2"
+ }, {
+ "time": 29001,
+ "beat": "1"
+ }, {
+ "time": 29606,
+ "beat": "2"
+ }, {
+ "time": 29908,
+ "beat": "2"
+ }, {
+ "time": 30310,
+ "beat": "1"
+ }, {
+ "time": 30621,
+ "beat": "1"
+ }, {
+ "time": 31057,
+ "beat": "2"
+ }, {
+ "time": 31366,
+ "beat": "2"
+ }, {
+ "time": 31825,
+ "beat": "1"
+ }, {
+ "time": 32141,
+ "beat": "1"
+ }, {
+ "time": 32541,
+ "beat": "2"
+ }, {
+ "time": 32850,
+ "beat": "2"
+ }, {
+ "time": 33197,
+ "beat": "1"
+ }, {
+ "time": 33499,
+ "beat": "1"
+ }, {
+ "time": 33941,
+ "beat": "2"
+ }, {
+ "time": 34248,
+ "beat": "2"
+ }, {
+ "time": 34537,
+ "beat": "1"
+ }, {
+ "time": 34850,
+ "beat": "1"
+ }, {
+ "time": 35201,
+ "beat": "2"
+ }, {
+ "time": 35525,
+ "beat": "2"
+ }, {
+ "time": 35881,
+ "beat": "1"
+ }, {
+ "time": 36194,
+ "beat": "1"
+ }, {
+ "time": 36526,
+ "beat": "2"
+ }, {
+ "time": 36839,
+ "beat": "2"
+ }, {
+ "time": 37282,
+ "beat": "1"
+ }, {
+ "time": 37905,
+ "beat": "2"
+ }, {
+ "time": 38207,
+ "beat": "2"
+ }, {
+ "time": 38645,
+ "beat": "1"
+ }, {
+ "time": 38949,
+ "beat": "1"
+ }, {
+ "time": 39301,
+ "beat": "2"
+ }, {
+ "time": 39602,
+ "beat": "2"
+ }, {
+ "time": 40157,
+ "beat": "3"
+ }, {
+ "time": 40965,
+ "beat": "3"
+ }, {
+ "time": 41721,
+ "beat": "3"
+ }, {
+ "time": 42031,
+ "beat": "3"
+ }, {
+ "time": 42466,
+ "beat": "3"
+ }, {
+ "time": 42790,
+ "beat": "3"
+ }, {
+ "time": 43749,
+ "beat": "1"
+ }, {
+ "time": 44057,
+ "beat": "1"
+ }, {
+ "time": 44533,
+ "beat": "2"
+ }, {
+ "time": 45149,
+ "beat": "1"
+ }, {
+ "time": 45933,
+ "beat": "2"
+ }, {
+ "time": 46247,
+ "beat": "2"
+ }, {
+ "time": 46673,
+ "beat": "1"
+ }, {
+ "time": 47317,
+ "beat": "2"
+ }, {
+ "time": 47631,
+ "beat": "2"
+ }, {
+ "time": 47973,
+ "beat": "1"
+ }, {
+ "time": 49917,
+ "beat": "3"
+ }, {
+ "time": 50621,
+ "beat": "3"
+ }, {
+ "time": 51517,
+ "beat": "1"
+ }, {
+ "time": 52313,
+ "beat": "2"
+ }, {
+ "time": 52630,
+ "beat": "2"
+ }, {
+ "time": 53401,
+ "beat": "1"
+ }, {
+ "time": 53713,
+ "beat": "1"
+ }, {
+ "time": 54382,
+ "beat": "2"
+ }, {
+ "time": 54693,
+ "beat": "2"
+ }, {
+ "time": 55390,
+ "beat": "1"
+ }, {
+ "time": 55693,
+ "beat": "1"
+ }, {
+ "time": 56277,
+ "beat": "2"
+ }, {
+ "time": 56581,
+ "beat": "2"
+ }, {
+ "time": 57186,
+ "beat": "1"
+ }, {
+ "time": 57509,
+ "beat": "1"
+ }, {
+ "time": 58186,
+ "beat": "2"
+ }, {
+ "time": 58488,
+ "beat": "2"
+ }, {
+ "time": 59070,
+ "beat": "1"
+ }, {
+ "time": 59374,
+ "beat": "1"
+ }, {
+ "time": 59990,
+ "beat": "2"
+ }, {
+ "time": 60299,
+ "beat": "2"
+ }, {
+ "time": 60826,
+ "beat": "1"
+ }, {
+ "time": 61135,
+ "beat": "1"
+ }, {
+ "time": 61646,
+ "beat": "2"
+ }, {
+ "time": 61975,
+ "beat": "2"
+ }, {
+ "time": 62774,
+ "beat": "3"
+ }, {
+ "time": 63501,
+ "beat": "3"
+ }, {
+ "time": 64277,
+ "beat": "3"
+ }, {
+ "time": 64584,
+ "beat": "3"
+ }, {
+ "time": 65173,
+ "beat": "2"
+ }, {
+ "time": 65489,
+ "beat": "2"
+ }, {
+ "time": 66053,
+ "beat": "2"
+ }, {
+ "time": 66769,
+ "beat": "2"
+ }, {
+ "time": 67089,
+ "beat": "2"
+ }, {
+ "time": 67513,
+ "beat": "2"
+ }, {
+ "time": 67827,
+ "beat": "2"
+ }, {
+ "time": 68150,
+ "beat": "1"
+ }, {
+ "time": 68452,
+ "beat": "1"
+ }, {
+ "time": 68949,
+ "beat": "1"
+ }, {
+ "time": 69693,
+ "beat": "1"
+ }, {
+ "time": 70701,
+ "beat": "0"
+ }, {
+ "time": 71410,
+ "beat": "0"
+ }, {
+ "time": 72094,
+ "beat": "0"
+ }, {
+ "time": 72397,
+ "beat": "0"
+ }, {
+ "time": 72809,
+ "beat": "0"
+ }, {
+ "time": 73442,
+ "beat": "0"
+ }, {
+ "time": 74093,
+ "beat": "1"
+ }, {
+ "time": 74805,
+ "beat": "2"
+ }, {
+ "time": 75542,
+ "beat": "1"
+ }, {
+ "time": 76321,
+ "beat": "2"
+ }, {
+ "time": 76638,
+ "beat": "2"
+ }, {
+ "time": 77037,
+ "beat": "1"
+ }, {
+ "time": 77342,
+ "beat": "1"
+ }, {
+ "time": 77745,
+ "beat": "2"
+ }, {
+ "time": 78061,
+ "beat": "2"
+ }, {
+ "time": 78442,
+ "beat": "1"
+ }, {
+ "time": 79126,
+ "beat": "2"
+ }, {
+ "time": 79437,
+ "beat": "2"
+ }, {
+ "time": 79773,
+ "beat": "1"
+ }, {
+ "time": 80088,
+ "beat": "1"
+ }, {
+ "time": 80458,
+ "beat": "2"
+ }, {
+ "time": 80773,
+ "beat": "2"
+ }, {
+ "time": 81213,
+ "beat": "1"
+ }, {
+ "time": 81962,
+ "beat": "3"
+ }, {
+ "time": 82689,
+ "beat": "3"
+ }, {
+ "time": 83453,
+ "beat": "3"
+ }, {
+ "time": 84209,
+ "beat": "3"
+ }, {
+ "time": 84510,
+ "beat": "3"
+ }, {
+ "time": 84927,
+ "beat": "3"
+ }, {
+ "time": 85230,
+ "beat": "3"
+ }, {
+ "time": 85630,
+ "beat": "3"
+ }, {
+ "time": 85953,
+ "beat": "3"
+ }, {
+ "time": 87922,
+ "beat": "1"
+ }, {
+ "time": 88629,
+ "beat": "2"
+ }, {
+ "time": 88942,
+ "beat": "2"
+ }, {
+ "time": 89345,
+ "beat": "1"
+ }, {
+ "time": 90061,
+ "beat": "2"
+ }, {
+ "time": 90371,
+ "beat": "2"
+ }, {
+ "time": 90869,
+ "beat": "1"
+ }, {
+ "time": 91473,
+ "beat": "2"
+ }, {
+ "time": 91786,
+ "beat": "2"
+ }, {
+ "time": 92142,
+ "beat": "1"
+ }, {
+ "time": 92452,
+ "beat": "1"
+ }, {
+ "time": 92924,
+ "beat": "2"
+ }, {
+ "time": 93239,
+ "beat": "2"
+ }, {
+ "time": 93853,
+ "beat": "3"
+ }, {
+ "time": 94661,
+ "beat": "3"
+ }, {
+ "time": 95389,
+ "beat": "3"
+ }, {
+ "time": 96185,
+ "beat": "3"
+ }, {
+ "time": 96493,
+ "beat": "3"
+ }, {
+ "time": 97161,
+ "beat": "1"
+ }, {
+ "time": 97853,
+ "beat": "2"
+ }, {
+ "time": 98166,
+ "beat": "2"
+ }, {
+ "time": 98545,
+ "beat": "1"
+ }, {
+ "time": 99273,
+ "beat": "2"
+ }, {
+ "time": 100098,
+ "beat": "1"
+ }, {
+ "time": 100401,
+ "beat": "1"
+ }, {
+ "time": 100805,
+ "beat": "2"
+ }, {
+ "time": 101130,
+ "beat": "2"
+ }, {
+ "time": 101513,
+ "beat": "1"
+ }, {
+ "time": 104422,
+ "beat": "3"
+ }, {
+ "time": 104723,
+ "beat": "3"
+ }, {
+ "time": 105210,
+ "beat": "3"
+ }, {
+ "time": 105519,
+ "beat": "3"
+ }, {
+ "time": 105953,
+ "beat": "3"
+ }, {
+ "time": 106261,
+ "beat": "3"
+ }, {
+ "time": 106714,
+ "beat": "3"
+ }, {
+ "time": 107030,
+ "beat": "3"
+ }, {
+ "time": 107397,
+ "beat": "1"
+ }, {
+ "time": 107701,
+ "beat": "1"
+ }, {
+ "time": 108065,
+ "beat": "2"
+ }, {
+ "time": 108401,
+ "beat": "2"
+ }, {
+ "time": 108709,
+ "beat": "1"
+ }, {
+ "time": 109011,
+ "beat": "1"
+ }, {
+ "time": 109373,
+ "beat": "2"
+ }, {
+ "time": 109707,
+ "beat": "2"
+ }, {
+ "time": 110225,
+ "beat": "1"
+ }, {
+ "time": 110538,
+ "beat": "1"
+ }, {
+ "time": 110901,
+ "beat": "2"
+ }, {
+ "time": 111224,
+ "beat": "2"
+ }, {
+ "time": 111690,
+ "beat": "1"
+ }, {
+ "time": 112325,
+ "beat": "2"
+ }, {
+ "time": 112632,
+ "beat": "2"
+ }, {
+ "time": 113041,
+ "beat": "1"
+ }, {
+ "time": 113375,
+ "beat": "1"
+ }, {
+ "time": 113770,
+ "beat": "2"
+ }, {
+ "time": 114076,
+ "beat": "2"
+ }, {
+ "time": 114453,
+ "beat": "1"
+ }, {
+ "time": 114767,
+ "beat": "1"
+ }, {
+ "time": 115143,
+ "beat": "2"
+ }, {
+ "time": 115452,
+ "beat": "2"
+ }, {
+ "time": 115865,
+ "beat": "3"
+ }, {
+ "time": 116594,
+ "beat": "3"
+ }, {
+ "time": 117298,
+ "beat": "3"
+ }, {
+ "time": 117603,
+ "beat": "3"
+ }, {
+ "time": 118013,
+ "beat": "3"
+ }, {
+ "time": 118761,
+ "beat": "3"
+ }, {
+ "time": 119070,
+ "beat": "3"
+ }, {
+ "time": 119402,
+ "beat": "3"
+ }, {
+ "time": 119706,
+ "beat": "3"
+ }, {
+ "time": 120148,
+ "beat": "3"
+ }, {
+ "time": 120450,
+ "beat": "3"
+ }, {
+ "time": 120813,
+ "beat": "3"
+ }, {
+ "time": 121134,
+ "beat": "3"
+ }, {
+ "time": 121530,
+ "beat": "1"
+ }, {
+ "time": 122370,
+ "beat": "1"
+ }, {
+ "time": 123073,
+ "beat": "1"
+ }, {
+ "time": 123396,
+ "beat": "1"
+ }, {
+ "time": 123742,
+ "beat": "1"
+ }, {
+ "time": 124046,
+ "beat": "1"
+ }, {
+ "time": 124446,
+ "beat": "2"
+ }, {
+ "time": 124774,
+ "beat": "2"
+ }, {
+ "time": 125221,
+ "beat": "2"
+ }, {
+ "time": 125538,
+ "beat": "2"
+ }, {
+ "time": 125869,
+ "beat": "2"
+ }, {
+ "time": 126183,
+ "beat": "2"
+ }, {
+ "time": 126878,
+ "beat": "1"
+ }, {
+ "time": 127713,
+ "beat": "2"
+ }, {
+ "time": 128449,
+ "beat": "1"
+ }, {
+ "time": 129137,
+ "beat": "2"
+ }, {
+ "time": 129444,
+ "beat": "2"
+ }, {
+ "time": 129793,
+ "beat": "1"
+ }, {
+ "time": 130497,
+ "beat": "2"
+ }, {
+ "time": 130809,
+ "beat": "2"
+ }, {
+ "time": 131133,
+ "beat": "1"
+ }, {
+ "time": 131709,
+ "beat": "2"
+ }, {
+ "time": 132030,
+ "beat": "2"
+ }, {
+ "time": 132345,
+ "beat": "1"
+ }, {
+ "time": 133038,
+ "beat": "2"
+ }, {
+ "time": 133348,
+ "beat": "2"
+ }, {
+ "time": 133713,
+ "beat": "1"
+ }, {
+ "time": 134014,
+ "beat": "1"
+ }, {
+ "time": 134450,
+ "beat": "2"
+ }, {
+ "time": 135437,
+ "beat": "3"
+ }, {
+ "time": 136273,
+ "beat": "3"
+ }, {
+ "time": 136961,
+ "beat": "3"
+ }, {
+ "time": 137718,
+ "beat": "3"
+ }, {
+ "time": 138393,
+ "beat": "3"
+ }, {
+ "time": 138957,
+ "beat": "1"
+ }, {
+ "time": 139642,
+ "beat": "2"
+ }, {
+ "time": 140422,
+ "beat": "1"
+ }, {
+ "time": 141077,
+ "beat": "2"
+ }, {
+ "time": 141937,
+ "beat": "1"
+ }, {
+ "time": 142626,
+ "beat": "2"
+ }, {
+ "time": 142937,
+ "beat": "2"
+ }, {
+ "time": 143305,
+ "beat": "1"
+ }, {
+ "time": 143889,
+ "beat": "2"
+ }, {
+ "time": 144202,
+ "beat": "2"
+ }, {
+ "time": 144559,
+ "beat": "1"
+ }, {
+ "time": 145253,
+ "beat": "2"
+ }, {
+ "time": 145564,
+ "beat": "2"
+ }, {
+ "time": 145928,
+ "beat": "1"
+ }, {
+ "time": 146246,
+ "beat": "1"
+ }, {
+ "time": 146667,
+ "beat": "2"
+ }, {
+ "time": 147369,
+ "beat": "1"
+ }, {
+ "time": 147670,
+ "beat": "1"
+ }, {
+ "time": 148018,
+ "beat": "2"
+ }, {
+ "time": 148754,
+ "beat": "1"
+ }, {
+ "time": 149074,
+ "beat": "1"
+ }, {
+ "time": 149369,
+ "beat": "2"
+ }, {
+ "time": 150053,
+ "beat": "1"
+ }, {
+ "time": 150375,
+ "beat": "1"
+ }, {
+ "time": 150761,
+ "beat": "2"
+ }, {
+ "time": 151477,
+ "beat": "1"
+ }, {
+ "time": 151784,
+ "beat": "1"
+ }, {
+ "time": 152202,
+ "beat": "2"
+ }, {
+ "time": 152512,
+ "beat": "2"
+ }, {
+ "time": 152937,
+ "beat": "1"
+ }, {
+ "time": 153665,
+ "beat": "3"
+ }, {
+ "time": 154593,
+ "beat": "3"
+ }, {
+ "time": 155325,
+ "beat": "3"
+ }, {
+ "time": 156097,
+ "beat": "3"
+ }, {
+ "time": 156833,
+ "beat": "3"
+ }, {
+ "time": 158457,
+ "beat": "1"
+ }, {
+ "time": 159133,
+ "beat": "2"
+ }, {
+ "time": 159769,
+ "beat": "1"
+ }, {
+ "time": 160405,
+ "beat": "2"
+ }, {
+ "time": 161086,
+ "beat": "1"
+ }, {
+ "time": 161741,
+ "beat": "2"
+ }, {
+ "time": 162492,
+ "beat": "1"
+ }, {
+ "time": 163141,
+ "beat": "2"
+ }, {
+ "time": 163467,
+ "beat": "2"
+ }, {
+ "time": 163983,
+ "beat": "0"
+ }, {
+ "time": 164578,
+ "beat": "0"
+ }, {
+ "time": 164890,
+ "beat": "0"
+ }, {
+ "time": 165253,
+ "beat": "0"
+ }, {
+ "time": 165905,
+ "beat": "1"
+ }, {
+ "time": 166614,
+ "beat": "2"
+ }, {
+ "time": 166946,
+ "beat": "2"
+ }, {
+ "time": 167349,
+ "beat": "0"
+ }, {
+ "time": 168077,
+ "beat": "0"
+ }, {
+ "time": 168793,
+ "beat": "1"
+ }, {
+ "time": 169107,
+ "beat": "1"
+ }, {
+ "time": 169497,
+ "beat": "2"
+ }, {
+ "time": 169810,
+ "beat": "2"
+ }]
}];
var speakersBeat = [{
"name": "Words Fly Fast",
"songBeats": [{
@@ -3822,10 +5705,2908 @@
}, {
"time": 154576,
"beat": "1"
}]
+}, {
+ "name": "Freedom",
+ "songBeats": [{
+ "time": 0,
+ "beat": "3"
+ }, {
+ "time": 315,
+ "beat": "3"
+ }, {
+ "time": 619,
+ "beat": "1"
+ }, {
+ "time": 928,
+ "beat": "1"
+ }, {
+ "time": 1355,
+ "beat": "1"
+ }, {
+ "time": 1739,
+ "beat": "1"
+ }, {
+ "time": 2176,
+ "beat": "1"
+ }, {
+ "time": 2539,
+ "beat": "1"
+ }, {
+ "time": 2848,
+ "beat": "1"
+ }, {
+ "time": 3173,
+ "beat": "2"
+ }, {
+ "time": 3488,
+ "beat": "1"
+ }, {
+ "time": 4037,
+ "beat": "1"
+ }, {
+ "time": 4480,
+ "beat": "1"
+ }, {
+ "time": 4837,
+ "beat": "1"
+ }, {
+ "time": 5163,
+ "beat": "1"
+ }, {
+ "time": 5520,
+ "beat": "2"
+ }, {
+ "time": 5899,
+ "beat": "1"
+ }, {
+ "time": 6341,
+ "beat": "1"
+ }, {
+ "time": 6704,
+ "beat": "1"
+ }, {
+ "time": 7045,
+ "beat": "2"
+ }, {
+ "time": 7365,
+ "beat": "1"
+ }, {
+ "time": 7696,
+ "beat": "1"
+ }, {
+ "time": 8080,
+ "beat": "1"
+ }, {
+ "time": 8405,
+ "beat": "1"
+ }, {
+ "time": 8709,
+ "beat": "1"
+ }, {
+ "time": 9109,
+ "beat": "1"
+ }, {
+ "time": 9483,
+ "beat": "1"
+ }, {
+ "time": 9819,
+ "beat": "1"
+ }, {
+ "time": 10128,
+ "beat": "2"
+ }, {
+ "time": 10437,
+ "beat": "2"
+ }, {
+ "time": 10747,
+ "beat": "3"
+ }, {
+ "time": 11072,
+ "beat": "2"
+ }, {
+ "time": 11387,
+ "beat": "2"
+ }, {
+ "time": 11691,
+ "beat": "3"
+ }, {
+ "time": 12005,
+ "beat": "3"
+ }, {
+ "time": 12352,
+ "beat": "2"
+ }, {
+ "time": 12656,
+ "beat": "1"
+ }, {
+ "time": 12976,
+ "beat": "2"
+ }, {
+ "time": 13296,
+ "beat": "1"
+ }, {
+ "time": 13600,
+ "beat": "3"
+ }, {
+ "time": 13904,
+ "beat": "3"
+ }, {
+ "time": 14208,
+ "beat": "2"
+ }, {
+ "time": 14528,
+ "beat": "1"
+ }, {
+ "time": 14832,
+ "beat": "2"
+ }, {
+ "time": 15147,
+ "beat": "3"
+ }, {
+ "time": 15451,
+ "beat": "2"
+ }, {
+ "time": 15755,
+ "beat": "3"
+ }, {
+ "time": 16059,
+ "beat": "3"
+ }, {
+ "time": 16363,
+ "beat": "3"
+ }, {
+ "time": 16667,
+ "beat": "2"
+ }, {
+ "time": 16981,
+ "beat": "2"
+ }, {
+ "time": 17296,
+ "beat": "1"
+ }, {
+ "time": 17600,
+ "beat": "1"
+ }, {
+ "time": 17947,
+ "beat": "2"
+ }, {
+ "time": 18256,
+ "beat": "2"
+ }, {
+ "time": 18603,
+ "beat": "3"
+ }, {
+ "time": 18949,
+ "beat": "2"
+ }, {
+ "time": 19275,
+ "beat": "2"
+ }, {
+ "time": 19589,
+ "beat": "3"
+ }, {
+ "time": 19893,
+ "beat": "2"
+ }, {
+ "time": 20213,
+ "beat": "1"
+ }, {
+ "time": 20768,
+ "beat": "1"
+ }, {
+ "time": 21083,
+ "beat": "1"
+ }, {
+ "time": 21440,
+ "beat": "1"
+ }, {
+ "time": 21765,
+ "beat": "1"
+ }, {
+ "time": 22085,
+ "beat": "1"
+ }, {
+ "time": 22512,
+ "beat": "1"
+ }, {
+ "time": 22827,
+ "beat": "1"
+ }, {
+ "time": 23189,
+ "beat": "1"
+ }, {
+ "time": 23499,
+ "beat": "1"
+ }, {
+ "time": 23803,
+ "beat": "1"
+ }, {
+ "time": 24149,
+ "beat": "1"
+ }, {
+ "time": 24480,
+ "beat": "1"
+ }, {
+ "time": 24843,
+ "beat": "1"
+ }, {
+ "time": 25269,
+ "beat": "1"
+ }, {
+ "time": 25627,
+ "beat": "1"
+ }, {
+ "time": 25968,
+ "beat": "1"
+ }, {
+ "time": 26293,
+ "beat": "1"
+ }, {
+ "time": 26597,
+ "beat": "1"
+ }, {
+ "time": 26987,
+ "beat": "1"
+ }, {
+ "time": 27360,
+ "beat": "1"
+ }, {
+ "time": 27776,
+ "beat": "1"
+ }, {
+ "time": 28128,
+ "beat": "3"
+ }, {
+ "time": 28501,
+ "beat": "2"
+ }, {
+ "time": 28848,
+ "beat": "1"
+ }, {
+ "time": 29152,
+ "beat": "2"
+ }, {
+ "time": 29467,
+ "beat": "2"
+ }, {
+ "time": 29776,
+ "beat": "1"
+ }, {
+ "time": 30085,
+ "beat": "2"
+ }, {
+ "time": 30400,
+ "beat": "3"
+ }, {
+ "time": 30715,
+ "beat": "3"
+ }, {
+ "time": 31029,
+ "beat": "1"
+ }, {
+ "time": 31392,
+ "beat": "3"
+ }, {
+ "time": 31717,
+ "beat": "1"
+ }, {
+ "time": 32048,
+ "beat": "1"
+ }, {
+ "time": 32368,
+ "beat": "1"
+ }, {
+ "time": 32741,
+ "beat": "2"
+ }, {
+ "time": 33045,
+ "beat": "3"
+ }, {
+ "time": 33467,
+ "beat": "1"
+ }, {
+ "time": 33771,
+ "beat": "2"
+ }, {
+ "time": 34091,
+ "beat": "3"
+ }, {
+ "time": 34411,
+ "beat": "2"
+ }, {
+ "time": 34731,
+ "beat": "1"
+ }, {
+ "time": 35051,
+ "beat": "3"
+ }, {
+ "time": 35387,
+ "beat": "3"
+ }, {
+ "time": 35771,
+ "beat": "1"
+ }, {
+ "time": 36181,
+ "beat": "1"
+ }, {
+ "time": 36491,
+ "beat": "3"
+ }, {
+ "time": 36805,
+ "beat": "2"
+ }, {
+ "time": 37120,
+ "beat": "2"
+ }, {
+ "time": 37445,
+ "beat": "2"
+ }, {
+ "time": 37755,
+ "beat": "3"
+ }, {
+ "time": 38080,
+ "beat": "1"
+ }, {
+ "time": 38384,
+ "beat": "2"
+ }, {
+ "time": 38704,
+ "beat": "2"
+ }, {
+ "time": 39019,
+ "beat": "3"
+ }, {
+ "time": 39344,
+ "beat": "2"
+ }, {
+ "time": 39653,
+ "beat": "2"
+ }, {
+ "time": 39963,
+ "beat": "3"
+ }, {
+ "time": 40325,
+ "beat": "1"
+ }, {
+ "time": 40629,
+ "beat": "2"
+ }, {
+ "time": 40949,
+ "beat": "1"
+ }, {
+ "time": 41253,
+ "beat": "1"
+ }, {
+ "time": 41579,
+ "beat": "2"
+ }, {
+ "time": 41952,
+ "beat": "1"
+ }, {
+ "time": 42261,
+ "beat": "2"
+ }, {
+ "time": 42571,
+ "beat": "2"
+ }, {
+ "time": 42875,
+ "beat": "3"
+ }, {
+ "time": 43269,
+ "beat": "1"
+ }, {
+ "time": 43595,
+ "beat": "3"
+ }, {
+ "time": 43915,
+ "beat": "2"
+ }, {
+ "time": 44224,
+ "beat": "3"
+ }, {
+ "time": 44565,
+ "beat": "2"
+ }, {
+ "time": 44880,
+ "beat": "3"
+ }, {
+ "time": 45189,
+ "beat": "2"
+ }, {
+ "time": 45515,
+ "beat": "2"
+ }, {
+ "time": 45840,
+ "beat": "1"
+ }, {
+ "time": 46293,
+ "beat": "1"
+ }, {
+ "time": 46597,
+ "beat": "3"
+ }, {
+ "time": 46923,
+ "beat": "3"
+ }, {
+ "time": 47227,
+ "beat": "3"
+ }, {
+ "time": 47541,
+ "beat": "2"
+ }, {
+ "time": 47861,
+ "beat": "3"
+ }, {
+ "time": 48165,
+ "beat": "2"
+ }, {
+ "time": 48469,
+ "beat": "2"
+ }, {
+ "time": 48773,
+ "beat": "2"
+ }, {
+ "time": 49083,
+ "beat": "2"
+ }, {
+ "time": 49387,
+ "beat": "2"
+ }, {
+ "time": 49701,
+ "beat": "3"
+ }, {
+ "time": 50005,
+ "beat": "3"
+ }, {
+ "time": 50315,
+ "beat": "2"
+ }, {
+ "time": 50624,
+ "beat": "3"
+ }, {
+ "time": 50997,
+ "beat": "3"
+ }, {
+ "time": 51301,
+ "beat": "2"
+ }, {
+ "time": 51611,
+ "beat": "2"
+ }, {
+ "time": 51957,
+ "beat": "3"
+ }, {
+ "time": 52267,
+ "beat": "2"
+ }, {
+ "time": 52576,
+ "beat": "3"
+ }, {
+ "time": 52880,
+ "beat": "3"
+ }, {
+ "time": 53205,
+ "beat": "2"
+ }, {
+ "time": 53520,
+ "beat": "3"
+ }, {
+ "time": 53835,
+ "beat": "3"
+ }, {
+ "time": 54139,
+ "beat": "3"
+ }, {
+ "time": 54443,
+ "beat": "3"
+ }, {
+ "time": 54752,
+ "beat": "2"
+ }, {
+ "time": 55083,
+ "beat": "1"
+ }, {
+ "time": 55424,
+ "beat": "1"
+ }, {
+ "time": 56085,
+ "beat": "1"
+ }, {
+ "time": 56400,
+ "beat": "2"
+ }, {
+ "time": 56715,
+ "beat": "3"
+ }, {
+ "time": 57093,
+ "beat": "1"
+ }, {
+ "time": 57403,
+ "beat": "1"
+ }, {
+ "time": 57728,
+ "beat": "2"
+ }, {
+ "time": 58032,
+ "beat": "2"
+ }, {
+ "time": 58336,
+ "beat": "2"
+ }, {
+ "time": 58640,
+ "beat": "3"
+ }, {
+ "time": 58944,
+ "beat": "1"
+ }, {
+ "time": 59264,
+ "beat": "3"
+ }, {
+ "time": 59579,
+ "beat": "3"
+ }, {
+ "time": 59883,
+ "beat": "3"
+ }, {
+ "time": 60208,
+ "beat": "2"
+ }, {
+ "time": 60523,
+ "beat": "2"
+ }, {
+ "time": 60837,
+ "beat": "2"
+ }, {
+ "time": 61141,
+ "beat": "1"
+ }, {
+ "time": 61451,
+ "beat": "2"
+ }, {
+ "time": 61765,
+ "beat": "2"
+ }, {
+ "time": 62085,
+ "beat": "3"
+ }, {
+ "time": 62395,
+ "beat": "2"
+ }, {
+ "time": 62704,
+ "beat": "3"
+ }, {
+ "time": 63024,
+ "beat": "2"
+ }, {
+ "time": 63344,
+ "beat": "2"
+ }, {
+ "time": 63653,
+ "beat": "2"
+ }, {
+ "time": 63957,
+ "beat": "2"
+ }, {
+ "time": 64283,
+ "beat": "2"
+ }, {
+ "time": 64608,
+ "beat": "2"
+ }, {
+ "time": 64912,
+ "beat": "3"
+ }, {
+ "time": 65253,
+ "beat": "2"
+ }, {
+ "time": 65573,
+ "beat": "2"
+ }, {
+ "time": 65904,
+ "beat": "2"
+ }, {
+ "time": 66213,
+ "beat": "2"
+ }, {
+ "time": 66533,
+ "beat": "3"
+ }, {
+ "time": 66869,
+ "beat": "1"
+ }, {
+ "time": 67173,
+ "beat": "2"
+ }, {
+ "time": 67477,
+ "beat": "2"
+ }, {
+ "time": 67787,
+ "beat": "2"
+ }, {
+ "time": 68117,
+ "beat": "2"
+ }, {
+ "time": 68437,
+ "beat": "3"
+ }, {
+ "time": 68747,
+ "beat": "2"
+ }, {
+ "time": 69067,
+ "beat": "2"
+ }, {
+ "time": 69371,
+ "beat": "3"
+ }, {
+ "time": 69675,
+ "beat": "3"
+ }, {
+ "time": 70000,
+ "beat": "3"
+ }, {
+ "time": 70389,
+ "beat": "1"
+ }, {
+ "time": 70704,
+ "beat": "2"
+ }, {
+ "time": 71013,
+ "beat": "3"
+ }, {
+ "time": 71344,
+ "beat": "2"
+ }, {
+ "time": 71653,
+ "beat": "1"
+ }, {
+ "time": 71963,
+ "beat": "1"
+ }, {
+ "time": 72272,
+ "beat": "3"
+ }, {
+ "time": 72592,
+ "beat": "2"
+ }, {
+ "time": 72896,
+ "beat": "1"
+ }, {
+ "time": 73205,
+ "beat": "3"
+ }, {
+ "time": 73563,
+ "beat": "1"
+ }, {
+ "time": 73877,
+ "beat": "2"
+ }, {
+ "time": 74181,
+ "beat": "3"
+ }, {
+ "time": 74528,
+ "beat": "3"
+ }, {
+ "time": 75019,
+ "beat": "1"
+ }, {
+ "time": 75328,
+ "beat": "1"
+ }, {
+ "time": 76011,
+ "beat": "1"
+ }, {
+ "time": 76336,
+ "beat": "1"
+ }, {
+ "time": 76651,
+ "beat": "1"
+ }, {
+ "time": 77008,
+ "beat": "1"
+ }, {
+ "time": 77429,
+ "beat": "1"
+ }, {
+ "time": 77872,
+ "beat": "1"
+ }, {
+ "time": 78293,
+ "beat": "1"
+ }, {
+ "time": 78624,
+ "beat": "1"
+ }, {
+ "time": 78933,
+ "beat": "1"
+ }, {
+ "time": 79237,
+ "beat": "1"
+ }, {
+ "time": 79616,
+ "beat": "1"
+ }, {
+ "time": 80064,
+ "beat": "1"
+ }, {
+ "time": 80459,
+ "beat": "1"
+ }, {
+ "time": 80779,
+ "beat": "1"
+ }, {
+ "time": 81125,
+ "beat": "1"
+ }, {
+ "time": 81429,
+ "beat": "1"
+ }, {
+ "time": 81733,
+ "beat": "3"
+ }, {
+ "time": 82069,
+ "beat": "1"
+ }, {
+ "time": 82373,
+ "beat": "2"
+ }, {
+ "time": 82715,
+ "beat": "2"
+ }, {
+ "time": 83051,
+ "beat": "1"
+ }, {
+ "time": 83371,
+ "beat": "3"
+ }, {
+ "time": 83723,
+ "beat": "1"
+ }, {
+ "time": 84032,
+ "beat": "3"
+ }, {
+ "time": 84357,
+ "beat": "3"
+ }, {
+ "time": 84667,
+ "beat": "3"
+ }, {
+ "time": 84971,
+ "beat": "3"
+ }, {
+ "time": 85291,
+ "beat": "3"
+ }, {
+ "time": 85605,
+ "beat": "2"
+ }, {
+ "time": 85915,
+ "beat": "2"
+ }, {
+ "time": 86229,
+ "beat": "3"
+ }, {
+ "time": 86539,
+ "beat": "3"
+ }, {
+ "time": 86864,
+ "beat": "3"
+ }, {
+ "time": 87179,
+ "beat": "2"
+ }, {
+ "time": 87488,
+ "beat": "2"
+ }, {
+ "time": 87797,
+ "beat": "2"
+ }, {
+ "time": 88107,
+ "beat": "2"
+ }, {
+ "time": 88411,
+ "beat": "3"
+ }, {
+ "time": 88731,
+ "beat": "2"
+ }, {
+ "time": 89072,
+ "beat": "2"
+ }, {
+ "time": 89387,
+ "beat": "2"
+ }, {
+ "time": 89696,
+ "beat": "3"
+ }, {
+ "time": 90005,
+ "beat": "3"
+ }, {
+ "time": 90309,
+ "beat": "3"
+ }, {
+ "time": 90619,
+ "beat": "3"
+ }, {
+ "time": 90933,
+ "beat": "2"
+ }, {
+ "time": 91253,
+ "beat": "2"
+ }, {
+ "time": 91557,
+ "beat": "2"
+ }, {
+ "time": 91931,
+ "beat": "3"
+ }, {
+ "time": 92363,
+ "beat": "2"
+ }, {
+ "time": 92741,
+ "beat": "1"
+ }, {
+ "time": 93045,
+ "beat": "3"
+ }, {
+ "time": 93472,
+ "beat": "1"
+ }, {
+ "time": 93797,
+ "beat": "3"
+ }, {
+ "time": 94112,
+ "beat": "3"
+ }, {
+ "time": 94421,
+ "beat": "3"
+ }, {
+ "time": 94752,
+ "beat": "2"
+ }, {
+ "time": 95056,
+ "beat": "2"
+ }, {
+ "time": 95392,
+ "beat": "3"
+ }, {
+ "time": 95760,
+ "beat": "1"
+ }, {
+ "time": 96069,
+ "beat": "3"
+ }, {
+ "time": 96395,
+ "beat": "2"
+ }, {
+ "time": 96715,
+ "beat": "2"
+ }, {
+ "time": 97035,
+ "beat": "2"
+ }, {
+ "time": 97344,
+ "beat": "2"
+ }, {
+ "time": 97648,
+ "beat": "2"
+ }, {
+ "time": 98048,
+ "beat": "1"
+ }, {
+ "time": 98352,
+ "beat": "2"
+ }, {
+ "time": 98656,
+ "beat": "1"
+ }, {
+ "time": 98965,
+ "beat": "2"
+ }, {
+ "time": 99269,
+ "beat": "2"
+ }, {
+ "time": 99579,
+ "beat": "3"
+ }, {
+ "time": 99893,
+ "beat": "2"
+ }, {
+ "time": 100208,
+ "beat": "3"
+ }, {
+ "time": 100512,
+ "beat": "3"
+ }, {
+ "time": 100821,
+ "beat": "3"
+ }, {
+ "time": 101131,
+ "beat": "3"
+ }, {
+ "time": 101445,
+ "beat": "3"
+ }, {
+ "time": 101749,
+ "beat": "3"
+ }, {
+ "time": 102117,
+ "beat": "2"
+ }, {
+ "time": 102421,
+ "beat": "3"
+ }, {
+ "time": 102731,
+ "beat": "3"
+ }, {
+ "time": 103045,
+ "beat": "2"
+ }, {
+ "time": 103365,
+ "beat": "3"
+ }, {
+ "time": 103669,
+ "beat": "1"
+ }, {
+ "time": 103973,
+ "beat": "2"
+ }, {
+ "time": 104309,
+ "beat": "2"
+ }, {
+ "time": 104635,
+ "beat": "2"
+ }, {
+ "time": 104960,
+ "beat": "1"
+ }, {
+ "time": 105285,
+ "beat": "1"
+ }, {
+ "time": 105589,
+ "beat": "2"
+ }, {
+ "time": 105893,
+ "beat": "1"
+ }, {
+ "time": 106240,
+ "beat": "1"
+ }, {
+ "time": 106587,
+ "beat": "1"
+ }, {
+ "time": 106891,
+ "beat": "3"
+ }, {
+ "time": 107200,
+ "beat": "2"
+ }, {
+ "time": 107504,
+ "beat": "3"
+ }, {
+ "time": 107829,
+ "beat": "2"
+ }, {
+ "time": 108144,
+ "beat": "3"
+ }, {
+ "time": 108453,
+ "beat": "2"
+ }, {
+ "time": 108848,
+ "beat": "2"
+ }, {
+ "time": 109157,
+ "beat": "1"
+ }, {
+ "time": 109493,
+ "beat": "1"
+ }, {
+ "time": 109808,
+ "beat": "3"
+ }, {
+ "time": 110123,
+ "beat": "1"
+ }, {
+ "time": 110432,
+ "beat": "1"
+ }, {
+ "time": 110741,
+ "beat": "1"
+ }, {
+ "time": 111056,
+ "beat": "1"
+ }, {
+ "time": 111403,
+ "beat": "1"
+ }, {
+ "time": 111776,
+ "beat": "1"
+ }, {
+ "time": 112128,
+ "beat": "3"
+ }, {
+ "time": 112432,
+ "beat": "3"
+ }, {
+ "time": 112757,
+ "beat": "2"
+ }, {
+ "time": 113061,
+ "beat": "3"
+ }, {
+ "time": 113365,
+ "beat": "3"
+ }, {
+ "time": 113675,
+ "beat": "2"
+ }, {
+ "time": 114005,
+ "beat": "3"
+ }, {
+ "time": 114309,
+ "beat": "2"
+ }, {
+ "time": 114613,
+ "beat": "3"
+ }, {
+ "time": 114917,
+ "beat": "2"
+ }, {
+ "time": 115227,
+ "beat": "3"
+ }, {
+ "time": 115536,
+ "beat": "3"
+ }, {
+ "time": 115845,
+ "beat": "3"
+ }, {
+ "time": 116187,
+ "beat": "2"
+ }, {
+ "time": 116539,
+ "beat": "2"
+ }, {
+ "time": 116848,
+ "beat": "3"
+ }, {
+ "time": 117157,
+ "beat": "3"
+ }, {
+ "time": 117477,
+ "beat": "2"
+ }, {
+ "time": 117781,
+ "beat": "3"
+ }, {
+ "time": 118091,
+ "beat": "2"
+ }, {
+ "time": 118416,
+ "beat": "2"
+ }, {
+ "time": 118731,
+ "beat": "3"
+ }, {
+ "time": 119045,
+ "beat": "3"
+ }, {
+ "time": 119365,
+ "beat": "3"
+ }, {
+ "time": 119739,
+ "beat": "1"
+ }, {
+ "time": 120080,
+ "beat": "1"
+ }, {
+ "time": 120432,
+ "beat": "1"
+ }, {
+ "time": 120736,
+ "beat": "3"
+ }, {
+ "time": 121040,
+ "beat": "2"
+ }, {
+ "time": 121392,
+ "beat": "3"
+ }, {
+ "time": 121707,
+ "beat": "2"
+ }, {
+ "time": 122011,
+ "beat": "3"
+ }, {
+ "time": 122331,
+ "beat": "2"
+ }, {
+ "time": 122661,
+ "beat": "2"
+ }, {
+ "time": 122997,
+ "beat": "3"
+ }, {
+ "time": 123301,
+ "beat": "3"
+ }, {
+ "time": 123605,
+ "beat": "3"
+ }, {
+ "time": 123941,
+ "beat": "3"
+ }, {
+ "time": 124256,
+ "beat": "3"
+ }, {
+ "time": 124576,
+ "beat": "2"
+ }, {
+ "time": 124880,
+ "beat": "2"
+ }, {
+ "time": 125200,
+ "beat": "3"
+ }, {
+ "time": 125525,
+ "beat": "3"
+ }, {
+ "time": 125840,
+ "beat": "2"
+ }, {
+ "time": 126155,
+ "beat": "3"
+ }, {
+ "time": 126469,
+ "beat": "2"
+ }, {
+ "time": 126779,
+ "beat": "2"
+ }, {
+ "time": 127104,
+ "beat": "3"
+ }, {
+ "time": 127413,
+ "beat": "2"
+ }, {
+ "time": 127723,
+ "beat": "3"
+ }, {
+ "time": 128027,
+ "beat": "3"
+ }, {
+ "time": 128341,
+ "beat": "3"
+ }, {
+ "time": 128651,
+ "beat": "3"
+ }, {
+ "time": 128960,
+ "beat": "3"
+ }, {
+ "time": 129280,
+ "beat": "3"
+ }, {
+ "time": 129595,
+ "beat": "3"
+ }, {
+ "time": 129909,
+ "beat": "3"
+ }, {
+ "time": 130229,
+ "beat": "3"
+ }, {
+ "time": 130533,
+ "beat": "3"
+ }, {
+ "time": 130843,
+ "beat": "2"
+ }, {
+ "time": 131211,
+ "beat": "1"
+ }, {
+ "time": 131531,
+ "beat": "2"
+ }, {
+ "time": 131845,
+ "beat": "1"
+ }, {
+ "time": 132155,
+ "beat": "3"
+ }, {
+ "time": 132480,
+ "beat": "2"
+ }, {
+ "time": 132784,
+ "beat": "3"
+ }, {
+ "time": 133099,
+ "beat": "3"
+ }, {
+ "time": 133413,
+ "beat": "3"
+ }, {
+ "time": 133744,
+ "beat": "3"
+ }, {
+ "time": 134048,
+ "beat": "2"
+ }, {
+ "time": 134352,
+ "beat": "3"
+ }, {
+ "time": 134672,
+ "beat": "3"
+ }, {
+ "time": 134987,
+ "beat": "2"
+ }, {
+ "time": 135333,
+ "beat": "3"
+ }, {
+ "time": 135637,
+ "beat": "3"
+ }, {
+ "time": 135947,
+ "beat": "3"
+ }, {
+ "time": 136261,
+ "beat": "3"
+ }, {
+ "time": 136571,
+ "beat": "3"
+ }, {
+ "time": 136885,
+ "beat": "3"
+ }, {
+ "time": 137195,
+ "beat": "3"
+ }, {
+ "time": 137504,
+ "beat": "3"
+ }, {
+ "time": 137819,
+ "beat": "3"
+ }, {
+ "time": 138123,
+ "beat": "3"
+ }, {
+ "time": 138432,
+ "beat": "3"
+ }, {
+ "time": 140544,
+ "beat": "2"
+ }, {
+ "time": 140853,
+ "beat": "2"
+ }, {
+ "time": 141163,
+ "beat": "3"
+ }, {
+ "time": 141483,
+ "beat": "1"
+ }, {
+ "time": 141845,
+ "beat": "1"
+ }, {
+ "time": 142160,
+ "beat": "1"
+ }, {
+ "time": 142512,
+ "beat": "1"
+ }, {
+ "time": 142816,
+ "beat": "2"
+ }, {
+ "time": 143141,
+ "beat": "1"
+ }, {
+ "time": 143488,
+ "beat": "1"
+ }, {
+ "time": 143888,
+ "beat": "1"
+ }, {
+ "time": 144325,
+ "beat": "1"
+ }, {
+ "time": 144645,
+ "beat": "1"
+ }, {
+ "time": 144971,
+ "beat": "1"
+ }, {
+ "time": 145280,
+ "beat": "2"
+ }, {
+ "time": 145595,
+ "beat": "1"
+ }, {
+ "time": 145899,
+ "beat": "1"
+ }, {
+ "time": 146203,
+ "beat": "2"
+ }, {
+ "time": 146608,
+ "beat": "1"
+ }, {
+ "time": 146933,
+ "beat": "1"
+ }, {
+ "time": 147264,
+ "beat": "1"
+ }, {
+ "time": 147568,
+ "beat": "1"
+ }, {
+ "time": 147883,
+ "beat": "1"
+ }, {
+ "time": 148192,
+ "beat": "1"
+ }, {
+ "time": 148501,
+ "beat": "1"
+ }, {
+ "time": 148805,
+ "beat": "1"
+ }, {
+ "time": 149109,
+ "beat": "1"
+ }, {
+ "time": 149419,
+ "beat": "1"
+ }, {
+ "time": 149728,
+ "beat": "1"
+ }, {
+ "time": 150160,
+ "beat": "1"
+ }, {
+ "time": 150464,
+ "beat": "2"
+ }]
+}, {
+ "name": "Stranger in the Storm",
+ "songBeats": [{
+ "time": 165,
+ "beat": "1"
+ }, {
+ "time": 469,
+ "beat": "1"
+ }, {
+ "time": 869,
+ "beat": "1"
+ }, {
+ "time": 1221,
+ "beat": "1"
+ }, {
+ "time": 1541,
+ "beat": "1"
+ }, {
+ "time": 1941,
+ "beat": "1"
+ }, {
+ "time": 2288,
+ "beat": "1"
+ }, {
+ "time": 2635,
+ "beat": "1"
+ }, {
+ "time": 2987,
+ "beat": "2"
+ }, {
+ "time": 3339,
+ "beat": "2"
+ }, {
+ "time": 3691,
+ "beat": "1"
+ }, {
+ "time": 4043,
+ "beat": "1"
+ }, {
+ "time": 4395,
+ "beat": "1"
+ }, {
+ "time": 4752,
+ "beat": "1"
+ }, {
+ "time": 5104,
+ "beat": "2"
+ }, {
+ "time": 5627,
+ "beat": "1"
+ }, {
+ "time": 5931,
+ "beat": "2"
+ }, {
+ "time": 6240,
+ "beat": "1"
+ }, {
+ "time": 6544,
+ "beat": "2"
+ }, {
+ "time": 6869,
+ "beat": "1"
+ }, {
+ "time": 7221,
+ "beat": "1"
+ }, {
+ "time": 7573,
+ "beat": "1"
+ }, {
+ "time": 7931,
+ "beat": "1"
+ }, {
+ "time": 8272,
+ "beat": "1"
+ }, {
+ "time": 8635,
+ "beat": "1"
+ }, {
+ "time": 8944,
+ "beat": "1"
+ }, {
+ "time": 9253,
+ "beat": "3"
+ }, {
+ "time": 9637,
+ "beat": "1"
+ }, {
+ "time": 9941,
+ "beat": "3"
+ }, {
+ "time": 10245,
+ "beat": "3"
+ }, {
+ "time": 10555,
+ "beat": "3"
+ }, {
+ "time": 10875,
+ "beat": "3"
+ }, {
+ "time": 11179,
+ "beat": "2"
+ }, {
+ "time": 11488,
+ "beat": "1"
+ }, {
+ "time": 11803,
+ "beat": "1"
+ }, {
+ "time": 12107,
+ "beat": "3"
+ }, {
+ "time": 12416,
+ "beat": "2"
+ }, {
+ "time": 12720,
+ "beat": "3"
+ }, {
+ "time": 13024,
+ "beat": "1"
+ }, {
+ "time": 13344,
+ "beat": "3"
+ }, {
+ "time": 13648,
+ "beat": "2"
+ }, {
+ "time": 13952,
+ "beat": "2"
+ }, {
+ "time": 14277,
+ "beat": "1"
+ }, {
+ "time": 14635,
+ "beat": "1"
+ }, {
+ "time": 14987,
+ "beat": "1"
+ }, {
+ "time": 15296,
+ "beat": "1"
+ }, {
+ "time": 15605,
+ "beat": "3"
+ }, {
+ "time": 16112,
+ "beat": "1"
+ }, {
+ "time": 16741,
+ "beat": "1"
+ }, {
+ "time": 17045,
+ "beat": "3"
+ }, {
+ "time": 17413,
+ "beat": "1"
+ }, {
+ "time": 17723,
+ "beat": "3"
+ }, {
+ "time": 18165,
+ "beat": "1"
+ }, {
+ "time": 18507,
+ "beat": "1"
+ }, {
+ "time": 18827,
+ "beat": "1"
+ }, {
+ "time": 19157,
+ "beat": "3"
+ }, {
+ "time": 19483,
+ "beat": "2"
+ }, {
+ "time": 19787,
+ "beat": "3"
+ }, {
+ "time": 20101,
+ "beat": "3"
+ }, {
+ "time": 20416,
+ "beat": "3"
+ }, {
+ "time": 20720,
+ "beat": "2"
+ }, {
+ "time": 21035,
+ "beat": "3"
+ }, {
+ "time": 21344,
+ "beat": "2"
+ }, {
+ "time": 21691,
+ "beat": "1"
+ }, {
+ "time": 22032,
+ "beat": "1"
+ }, {
+ "time": 22357,
+ "beat": "1"
+ }, {
+ "time": 22683,
+ "beat": "3"
+ }, {
+ "time": 23061,
+ "beat": "1"
+ }, {
+ "time": 23371,
+ "beat": "3"
+ }, {
+ "time": 23675,
+ "beat": "3"
+ }, {
+ "time": 23984,
+ "beat": "2"
+ }, {
+ "time": 24288,
+ "beat": "2"
+ }, {
+ "time": 24592,
+ "beat": "3"
+ }, {
+ "time": 24896,
+ "beat": "2"
+ }, {
+ "time": 25205,
+ "beat": "1"
+ }, {
+ "time": 25509,
+ "beat": "3"
+ }, {
+ "time": 25856,
+ "beat": "1"
+ }, {
+ "time": 26160,
+ "beat": "3"
+ }, {
+ "time": 26480,
+ "beat": "3"
+ }, {
+ "time": 26789,
+ "beat": "3"
+ }, {
+ "time": 27200,
+ "beat": "1"
+ }, {
+ "time": 27696,
+ "beat": "1"
+ }, {
+ "time": 28005,
+ "beat": "1"
+ }, {
+ "time": 28331,
+ "beat": "3"
+ }, {
+ "time": 28661,
+ "beat": "2"
+ }, {
+ "time": 28987,
+ "beat": "3"
+ }, {
+ "time": 29307,
+ "beat": "3"
+ }, {
+ "time": 29632,
+ "beat": "3"
+ }, {
+ "time": 29947,
+ "beat": "2"
+ }, {
+ "time": 30251,
+ "beat": "2"
+ }, {
+ "time": 30555,
+ "beat": "2"
+ }, {
+ "time": 30864,
+ "beat": "1"
+ }, {
+ "time": 31195,
+ "beat": "3"
+ }, {
+ "time": 31504,
+ "beat": "2"
+ }, {
+ "time": 31808,
+ "beat": "3"
+ }, {
+ "time": 32112,
+ "beat": "3"
+ }, {
+ "time": 32416,
+ "beat": "3"
+ }, {
+ "time": 32720,
+ "beat": "3"
+ }, {
+ "time": 33035,
+ "beat": "3"
+ }, {
+ "time": 33339,
+ "beat": "2"
+ }, {
+ "time": 33653,
+ "beat": "2"
+ }, {
+ "time": 33957,
+ "beat": "3"
+ }, {
+ "time": 34261,
+ "beat": "3"
+ }, {
+ "time": 34571,
+ "beat": "2"
+ }, {
+ "time": 34891,
+ "beat": "1"
+ }, {
+ "time": 35195,
+ "beat": "2"
+ }, {
+ "time": 35504,
+ "beat": "2"
+ }, {
+ "time": 35829,
+ "beat": "2"
+ }, {
+ "time": 36155,
+ "beat": "2"
+ }, {
+ "time": 36469,
+ "beat": "1"
+ }, {
+ "time": 36773,
+ "beat": "3"
+ }, {
+ "time": 37077,
+ "beat": "3"
+ }, {
+ "time": 37387,
+ "beat": "3"
+ }, {
+ "time": 37701,
+ "beat": "3"
+ }, {
+ "time": 38011,
+ "beat": "3"
+ }, {
+ "time": 38336,
+ "beat": "3"
+ }, {
+ "time": 38640,
+ "beat": "3"
+ }, {
+ "time": 38981,
+ "beat": "1"
+ }, {
+ "time": 39296,
+ "beat": "2"
+ }, {
+ "time": 39605,
+ "beat": "3"
+ }, {
+ "time": 39909,
+ "beat": "3"
+ }, {
+ "time": 40213,
+ "beat": "2"
+ }, {
+ "time": 40528,
+ "beat": "2"
+ }, {
+ "time": 40848,
+ "beat": "2"
+ }, {
+ "time": 41163,
+ "beat": "2"
+ }, {
+ "time": 41477,
+ "beat": "2"
+ }, {
+ "time": 41781,
+ "beat": "2"
+ }, {
+ "time": 42165,
+ "beat": "2"
+ }, {
+ "time": 42501,
+ "beat": "2"
+ }, {
+ "time": 42821,
+ "beat": "2"
+ }, {
+ "time": 43125,
+ "beat": "3"
+ }, {
+ "time": 43440,
+ "beat": "3"
+ }, {
+ "time": 43744,
+ "beat": "3"
+ }, {
+ "time": 44059,
+ "beat": "2"
+ }, {
+ "time": 44363,
+ "beat": "3"
+ }, {
+ "time": 44683,
+ "beat": "2"
+ }, {
+ "time": 44987,
+ "beat": "3"
+ }, {
+ "time": 45328,
+ "beat": "3"
+ }, {
+ "time": 45643,
+ "beat": "2"
+ }, {
+ "time": 45957,
+ "beat": "3"
+ }, {
+ "time": 46267,
+ "beat": "3"
+ }, {
+ "time": 46576,
+ "beat": "3"
+ }, {
+ "time": 46885,
+ "beat": "3"
+ }, {
+ "time": 47221,
+ "beat": "3"
+ }, {
+ "time": 47525,
+ "beat": "3"
+ }, {
+ "time": 47829,
+ "beat": "3"
+ }, {
+ "time": 48267,
+ "beat": "1"
+ }, {
+ "time": 48683,
+ "beat": "1"
+ }, {
+ "time": 48987,
+ "beat": "1"
+ }, {
+ "time": 49419,
+ "beat": "1"
+ }, {
+ "time": 49781,
+ "beat": "1"
+ }, {
+ "time": 50107,
+ "beat": "1"
+ }, {
+ "time": 50811,
+ "beat": "2"
+ }, {
+ "time": 51120,
+ "beat": "1"
+ }, {
+ "time": 51424,
+ "beat": "2"
+ }, {
+ "time": 51744,
+ "beat": "1"
+ }, {
+ "time": 52053,
+ "beat": "1"
+ }, {
+ "time": 52400,
+ "beat": "1"
+ }, {
+ "time": 52752,
+ "beat": "1"
+ }, {
+ "time": 53067,
+ "beat": "1"
+ }, {
+ "time": 53392,
+ "beat": "1"
+ }, {
+ "time": 53797,
+ "beat": "1"
+ }, {
+ "time": 54165,
+ "beat": "2"
+ }, {
+ "time": 54528,
+ "beat": "1"
+ }, {
+ "time": 54869,
+ "beat": "1"
+ }, {
+ "time": 55184,
+ "beat": "1"
+ }, {
+ "time": 55573,
+ "beat": "1"
+ }, {
+ "time": 55931,
+ "beat": "1"
+ }, {
+ "time": 56283,
+ "beat": "1"
+ }, {
+ "time": 56635,
+ "beat": "1"
+ }, {
+ "time": 56981,
+ "beat": "1"
+ }, {
+ "time": 57344,
+ "beat": "1"
+ }, {
+ "time": 57669,
+ "beat": "1"
+ }, {
+ "time": 58053,
+ "beat": "1"
+ }, {
+ "time": 58416,
+ "beat": "1"
+ }, {
+ "time": 58768,
+ "beat": "1"
+ }, {
+ "time": 59104,
+ "beat": "1"
+ }, {
+ "time": 59456,
+ "beat": "1"
+ }, {
+ "time": 59808,
+ "beat": "1"
+ }, {
+ "time": 60160,
+ "beat": "1"
+ }, {
+ "time": 60512,
+ "beat": "1"
+ }, {
+ "time": 60869,
+ "beat": "2"
+ }, {
+ "time": 61211,
+ "beat": "1"
+ }, {
+ "time": 61579,
+ "beat": "1"
+ }, {
+ "time": 61925,
+ "beat": "1"
+ }, {
+ "time": 62283,
+ "beat": "1"
+ }, {
+ "time": 62592,
+ "beat": "2"
+ }, {
+ "time": 62912,
+ "beat": "3"
+ }, {
+ "time": 63307,
+ "beat": "1"
+ }, {
+ "time": 63627,
+ "beat": "3"
+ }, {
+ "time": 63984,
+ "beat": "1"
+ }, {
+ "time": 64288,
+ "beat": "3"
+ }, {
+ "time": 64592,
+ "beat": "3"
+ }, {
+ "time": 64901,
+ "beat": "1"
+ }, {
+ "time": 65216,
+ "beat": "3"
+ }, {
+ "time": 65525,
+ "beat": "3"
+ }, {
+ "time": 65835,
+ "beat": "3"
+ }, {
+ "time": 66139,
+ "beat": "3"
+ }, {
+ "time": 66448,
+ "beat": "3"
+ }, {
+ "time": 66757,
+ "beat": "3"
+ }, {
+ "time": 67067,
+ "beat": "3"
+ }, {
+ "time": 67371,
+ "beat": "3"
+ }, {
+ "time": 67675,
+ "beat": "3"
+ }, {
+ "time": 67984,
+ "beat": "3"
+ }, {
+ "time": 68293,
+ "beat": "3"
+ }, {
+ "time": 68624,
+ "beat": "2"
+ }, {
+ "time": 68939,
+ "beat": "2"
+ }, {
+ "time": 69243,
+ "beat": "3"
+ }, {
+ "time": 69557,
+ "beat": "1"
+ }, {
+ "time": 69867,
+ "beat": "1"
+ }, {
+ "time": 70219,
+ "beat": "1"
+ }, {
+ "time": 70571,
+ "beat": "1"
+ }, {
+ "time": 70885,
+ "beat": "2"
+ }, {
+ "time": 71195,
+ "beat": "2"
+ }, {
+ "time": 71499,
+ "beat": "1"
+ }, {
+ "time": 71813,
+ "beat": "2"
+ }, {
+ "time": 72149,
+ "beat": "1"
+ }, {
+ "time": 72464,
+ "beat": "1"
+ }, {
+ "time": 72773,
+ "beat": "3"
+ }, {
+ "time": 73083,
+ "beat": "3"
+ }, {
+ "time": 73397,
+ "beat": "2"
+ }, {
+ "time": 73707,
+ "beat": "3"
+ }, {
+ "time": 74016,
+ "beat": "3"
+ }, {
+ "time": 74325,
+ "beat": "3"
+ }, {
+ "time": 74635,
+ "beat": "3"
+ }, {
+ "time": 74981,
+ "beat": "2"
+ }, {
+ "time": 75291,
+ "beat": "3"
+ }, {
+ "time": 75605,
+ "beat": "3"
+ }, {
+ "time": 75915,
+ "beat": "3"
+ }, {
+ "time": 76245,
+ "beat": "3"
+ }, {
+ "time": 76549,
+ "beat": "2"
+ }, {
+ "time": 76864,
+ "beat": "2"
+ }, {
+ "time": 77179,
+ "beat": "2"
+ }, {
+ "time": 77488,
+ "beat": "2"
+ }, {
+ "time": 77808,
+ "beat": "2"
+ }, {
+ "time": 78123,
+ "beat": "2"
+ }, {
+ "time": 78448,
+ "beat": "3"
+ }, {
+ "time": 78784,
+ "beat": "2"
+ }, {
+ "time": 79093,
+ "beat": "3"
+ }, {
+ "time": 79403,
+ "beat": "3"
+ }, {
+ "time": 79712,
+ "beat": "3"
+ }, {
+ "time": 80016,
+ "beat": "3"
+ }, {
+ "time": 80331,
+ "beat": "3"
+ }, {
+ "time": 80635,
+ "beat": "1"
+ }, {
+ "time": 81264,
+ "beat": "1"
+ }, {
+ "time": 81605,
+ "beat": "1"
+ }, {
+ "time": 81909,
+ "beat": "2"
+ }, {
+ "time": 82219,
+ "beat": "2"
+ }, {
+ "time": 82533,
+ "beat": "1"
+ }, {
+ "time": 82848,
+ "beat": "2"
+ }, {
+ "time": 83173,
+ "beat": "2"
+ }, {
+ "time": 83488,
+ "beat": "2"
+ }, {
+ "time": 83803,
+ "beat": "2"
+ }, {
+ "time": 84139,
+ "beat": "2"
+ }, {
+ "time": 84443,
+ "beat": "2"
+ }, {
+ "time": 84752,
+ "beat": "3"
+ }, {
+ "time": 85061,
+ "beat": "2"
+ }, {
+ "time": 85371,
+ "beat": "2"
+ }, {
+ "time": 85680,
+ "beat": "2"
+ }, {
+ "time": 85984,
+ "beat": "2"
+ }, {
+ "time": 86299,
+ "beat": "2"
+ }, {
+ "time": 86608,
+ "beat": "2"
+ }, {
+ "time": 86917,
+ "beat": "2"
+ }, {
+ "time": 87227,
+ "beat": "2"
+ }, {
+ "time": 87536,
+ "beat": "2"
+ }, {
+ "time": 87840,
+ "beat": "2"
+ }, {
+ "time": 88165,
+ "beat": "2"
+ }, {
+ "time": 88507,
+ "beat": "2"
+ }, {
+ "time": 88821,
+ "beat": "2"
+ }, {
+ "time": 89152,
+ "beat": "2"
+ }, {
+ "time": 89461,
+ "beat": "2"
+ }, {
+ "time": 89861,
+ "beat": "2"
+ }, {
+ "time": 90187,
+ "beat": "2"
+ }, {
+ "time": 90496,
+ "beat": "3"
+ }, {
+ "time": 90805,
+ "beat": "2"
+ }, {
+ "time": 91109,
+ "beat": "2"
+ }, {
+ "time": 91419,
+ "beat": "2"
+ }, {
+ "time": 91728,
+ "beat": "2"
+ }, {
+ "time": 92032,
+ "beat": "3"
+ }, {
+ "time": 92347,
+ "beat": "3"
+ }, {
+ "time": 92656,
+ "beat": "3"
+ }, {
+ "time": 93024,
+ "beat": "3"
+ }, {
+ "time": 93339,
+ "beat": "2"
+ }, {
+ "time": 93653,
+ "beat": "2"
+ }, {
+ "time": 93957,
+ "beat": "2"
+ }, {
+ "time": 94277,
+ "beat": "2"
+ }, {
+ "time": 94608,
+ "beat": "3"
+ }, {
+ "time": 94917,
+ "beat": "1"
+ }, {
+ "time": 95237,
+ "beat": "2"
+ }, {
+ "time": 95568,
+ "beat": "2"
+ }, {
+ "time": 95883,
+ "beat": "2"
+ }, {
+ "time": 96187,
+ "beat": "3"
+ }, {
+ "time": 96496,
+ "beat": "2"
+ }, {
+ "time": 96816,
+ "beat": "2"
+ }, {
+ "time": 97131,
+ "beat": "3"
+ }, {
+ "time": 97435,
+ "beat": "2"
+ }, {
+ "time": 97749,
+ "beat": "2"
+ }, {
+ "time": 98053,
+ "beat": "2"
+ }, {
+ "time": 98368,
+ "beat": "3"
+ }, {
+ "time": 98683,
+ "beat": "2"
+ }, {
+ "time": 98987,
+ "beat": "2"
+ }, {
+ "time": 99301,
+ "beat": "2"
+ }, {
+ "time": 99611,
+ "beat": "3"
+ }, {
+ "time": 99925,
+ "beat": "3"
+ }, {
+ "time": 100235,
+ "beat": "3"
+ }, {
+ "time": 100544,
+ "beat": "1"
+ }, {
+ "time": 100859,
+ "beat": "2"
+ }, {
+ "time": 101163,
+ "beat": "2"
+ }, {
+ "time": 101472,
+ "beat": "2"
+ }, {
+ "time": 101909,
+ "beat": "1"
+ }, {
+ "time": 102341,
+ "beat": "1"
+ }, {
+ "time": 102736,
+ "beat": "1"
+ }, {
+ "time": 103056,
+ "beat": "1"
+ }, {
+ "time": 103429,
+ "beat": "1"
+ }, {
+ "time": 103755,
+ "beat": "1"
+ }, {
+ "time": 104080,
+ "beat": "1"
+ }, {
+ "time": 104453,
+ "beat": "2"
+ }, {
+ "time": 104773,
+ "beat": "3"
+ }, {
+ "time": 105083,
+ "beat": "2"
+ }, {
+ "time": 105413,
+ "beat": "3"
+ }, {
+ "time": 105723,
+ "beat": "2"
+ }, {
+ "time": 106037,
+ "beat": "1"
+ }, {
+ "time": 106347,
+ "beat": "2"
+ }, {
+ "time": 106661,
+ "beat": "3"
+ }, {
+ "time": 106976,
+ "beat": "3"
+ }, {
+ "time": 107280,
+ "beat": "3"
+ }, {
+ "time": 107589,
+ "beat": "3"
+ }, {
+ "time": 107893,
+ "beat": "3"
+ }, {
+ "time": 108203,
+ "beat": "3"
+ }, {
+ "time": 108512,
+ "beat": "3"
+ }, {
+ "time": 108848,
+ "beat": "3"
+ }, {
+ "time": 109152,
+ "beat": "3"
+ }, {
+ "time": 109467,
+ "beat": "3"
+ }, {
+ "time": 109803,
+ "beat": "3"
+ }, {
+ "time": 110107,
+ "beat": "3"
+ }, {
+ "time": 110421,
+ "beat": "2"
+ }, {
+ "time": 110741,
+ "beat": "2"
+ }, {
+ "time": 111045,
+ "beat": "2"
+ }, {
+ "time": 111365,
+ "beat": "2"
+ }, {
+ "time": 111675,
+ "beat": "2"
+ }, {
+ "time": 111984,
+ "beat": "1"
+ }, {
+ "time": 112299,
+ "beat": "3"
+ }, {
+ "time": 112608,
+ "beat": "3"
+ }, {
+ "time": 112928,
+ "beat": "3"
+ }, {
+ "time": 113237,
+ "beat": "3"
+ }, {
+ "time": 113557,
+ "beat": "3"
+ }, {
+ "time": 113877,
+ "beat": "3"
+ }, {
+ "time": 114187,
+ "beat": "3"
+ }, {
+ "time": 114512,
+ "beat": "1"
+ }, {
+ "time": 114832,
+ "beat": "1"
+ }, {
+ "time": 115179,
+ "beat": "1"
+ }, {
+ "time": 115541,
+ "beat": "1"
+ }, {
+ "time": 115941,
+ "beat": "1"
+ }, {
+ "time": 116267,
+ "beat": "1"
+ }, {
+ "time": 116651,
+ "beat": "1"
+ }, {
+ "time": 117013,
+ "beat": "1"
+ }, {
+ "time": 117515,
+ "beat": "2"
+ }, {
+ "time": 117867,
+ "beat": "1"
+ }, {
+ "time": 118208,
+ "beat": "1"
+ }, {
+ "time": 118539,
+ "beat": "1"
+ }, {
+ "time": 118928,
+ "beat": "2"
+ }, {
+ "time": 119280,
+ "beat": "2"
+ }, {
+ "time": 119632,
+ "beat": "2"
+ }, {
+ "time": 119947,
+ "beat": "1"
+ }, {
+ "time": 120336,
+ "beat": "1"
+ }, {
+ "time": 120693,
+ "beat": "2"
+ }, {
+ "time": 121045,
+ "beat": "2"
+ }, {
+ "time": 121397,
+ "beat": "2"
+ }, {
+ "time": 121749,
+ "beat": "2"
+ }, {
+ "time": 122069,
+ "beat": "1"
+ }, {
+ "time": 122395,
+ "beat": "1"
+ }, {
+ "time": 122811,
+ "beat": "1"
+ }, {
+ "time": 123115,
+ "beat": "1"
+ }, {
+ "time": 123515,
+ "beat": "2"
+ }, {
+ "time": 123867,
+ "beat": "2"
+ }, {
+ "time": 124192,
+ "beat": "2"
+ }, {
+ "time": 124576,
+ "beat": "2"
+ }, {
+ "time": 124933,
+ "beat": "3"
+ }, {
+ "time": 125280,
+ "beat": "1"
+ }, {
+ "time": 125637,
+ "beat": "2"
+ }, {
+ "time": 125989,
+ "beat": "3"
+ }, {
+ "time": 126341,
+ "beat": "2"
+ }, {
+ "time": 126661,
+ "beat": "1"
+ }, {
+ "time": 127013,
+ "beat": "2"
+ }, {
+ "time": 127323,
+ "beat": "2"
+ }, {
+ "time": 127637,
+ "beat": "2"
+ }, {
+ "time": 127941,
+ "beat": "2"
+ }, {
+ "time": 128267,
+ "beat": "2"
+ }, {
+ "time": 128571,
+ "beat": "2"
+ }, {
+ "time": 128875,
+ "beat": "3"
+ }, {
+ "time": 129227,
+ "beat": "3"
+ }, {
+ "time": 129531,
+ "beat": "3"
+ }, {
+ "time": 129840,
+ "beat": "2"
+ }, {
+ "time": 130187,
+ "beat": "2"
+ }, {
+ "time": 130496,
+ "beat": "2"
+ }, {
+ "time": 130805,
+ "beat": "3"
+ }, {
+ "time": 131125,
+ "beat": "2"
+ }, {
+ "time": 131440,
+ "beat": "1"
+ }, {
+ "time": 131760,
+ "beat": "2"
+ }, {
+ "time": 132069,
+ "beat": "3"
+ }, {
+ "time": 132379,
+ "beat": "3"
+ }, {
+ "time": 132688,
+ "beat": "3"
+ }, {
+ "time": 133003,
+ "beat": "3"
+ }, {
+ "time": 133323,
+ "beat": "2"
+ }, {
+ "time": 133627,
+ "beat": "2"
+ }, {
+ "time": 133952,
+ "beat": "3"
+ }, {
+ "time": 134368,
+ "beat": "3"
+ }, {
+ "time": 134672,
+ "beat": "3"
+ }, {
+ "time": 134981,
+ "beat": "2"
+ }, {
+ "time": 135339,
+ "beat": "1"
+ }, {
+ "time": 135648,
+ "beat": "1"
+ }, {
+ "time": 135963,
+ "beat": "1"
+ }, {
+ "time": 136283,
+ "beat": "1"
+ }, {
+ "time": 136587,
+ "beat": "1"
+ }, {
+ "time": 136960,
+ "beat": "2"
+ }, {
+ "time": 137312,
+ "beat": "1"
+ }, {
+ "time": 137627,
+ "beat": "1"
+ }, {
+ "time": 137936,
+ "beat": "1"
+ }, {
+ "time": 138240,
+ "beat": "2"
+ }, {
+ "time": 138549,
+ "beat": "2"
+ }, {
+ "time": 138859,
+ "beat": "1"
+ }, {
+ "time": 139168,
+ "beat": "2"
+ }, {
+ "time": 139483,
+ "beat": "1"
+ }, {
+ "time": 139936,
+ "beat": "1"
+ }, {
+ "time": 140299,
+ "beat": "1"
+ }, {
+ "time": 140800,
+ "beat": "1"
+ }, {
+ "time": 141163,
+ "beat": "2"
+ }, {
+ "time": 141483,
+ "beat": "2"
+ }, {
+ "time": 141787,
+ "beat": "3"
+ }, {
+ "time": 142091,
+ "beat": "2"
+ }, {
+ "time": 142395,
+ "beat": "1"
+ }, {
+ "time": 142731,
+ "beat": "1"
+ }, {
+ "time": 143035,
+ "beat": "2"
+ }, {
+ "time": 143349,
+ "beat": "3"
+ }, {
+ "time": 143653,
+ "beat": "3"
+ }, {
+ "time": 143957,
+ "beat": "3"
+ }, {
+ "time": 144267,
+ "beat": "3"
+ }, {
+ "time": 144581,
+ "beat": "3"
+ }, {
+ "time": 144885,
+ "beat": "3"
+ }, {
+ "time": 145189,
+ "beat": "3"
+ }, {
+ "time": 145493,
+ "beat": "3"
+ }, {
+ "time": 145797,
+ "beat": "3"
+ }, {
+ "time": 146112,
+ "beat": "3"
+ }, {
+ "time": 146427,
+ "beat": "3"
+ }, {
+ "time": 146789,
+ "beat": "3"
+ }, {
+ "time": 147099,
+ "beat": "3"
+ }, {
+ "time": 147408,
+ "beat": "3"
+ }, {
+ "time": 147712,
+ "beat": "2"
+ }, {
+ "time": 148027,
+ "beat": "2"
+ }, {
+ "time": 148331,
+ "beat": "3"
+ }, {
+ "time": 148645,
+ "beat": "3"
+ }, {
+ "time": 148955,
+ "beat": "3"
+ }, {
+ "time": 149264,
+ "beat": "3"
+ }, {
+ "time": 149579,
+ "beat": "2"
+ }, {
+ "time": 149888,
+ "beat": "3"
+ }, {
+ "time": 150192,
+ "beat": "3"
+ }, {
+ "time": 150507,
+ "beat": "2"
+ }, {
+ "time": 150811,
+ "beat": "2"
+ }, {
+ "time": 151115,
+ "beat": "3"
+ }, {
+ "time": 151419,
+ "beat": "3"
+ }, {
+ "time": 151728,
+ "beat": "3"
+ }, {
+ "time": 152037,
+ "beat": "3"
+ }, {
+ "time": 152341,
+ "beat": "3"
+ }, {
+ "time": 152656,
+ "beat": "1"
+ }, {
+ "time": 153008,
+ "beat": "1"
+ }, {
+ "time": 153365,
+ "beat": "1"
+ }, {
+ "time": 153723,
+ "beat": "1"
+ }, {
+ "time": 154048,
+ "beat": "2"
+ }, {
+ "time": 154405,
+ "beat": "1"
+ }, {
+ "time": 154752,
+ "beat": "1"
+ }, {
+ "time": 155109,
+ "beat": "1"
+ }, {
+ "time": 155429,
+ "beat": "1"
+ }, {
+ "time": 155813,
+ "beat": "1"
+ }, {
+ "time": 156165,
+ "beat": "1"
+ }, {
+ "time": 156533,
+ "beat": "1"
+ }, {
+ "time": 156837,
+ "beat": "1"
+ }, {
+ "time": 157563,
+ "beat": "1"
+ }, {
+ "time": 157867,
+ "beat": "1"
+ }, {
+ "time": 158192,
+ "beat": "2"
+ }, {
+ "time": 158507,
+ "beat": "2"
+ }, {
+ "time": 158816,
+ "beat": "2"
+ }, {
+ "time": 159120,
+ "beat": "1"
+ }, {
+ "time": 159424,
+ "beat": "2"
+ }, {
+ "time": 159739,
+ "beat": "1"
+ }, {
+ "time": 160043,
+ "beat": "1"
+ }, {
+ "time": 160347,
+ "beat": "2"
+ }, {
+ "time": 160667,
+ "beat": "1"
+ }, {
+ "time": 160981,
+ "beat": "2"
+ }, {
+ "time": 161317,
+ "beat": "2"
+ }, {
+ "time": 161627,
+ "beat": "1"
+ }, {
+ "time": 161936,
+ "beat": "1"
+ }, {
+ "time": 162261,
+ "beat": "2"
+ }, {
+ "time": 162677,
+ "beat": "1"
+ }, {
+ "time": 163061,
+ "beat": "1"
+ }, {
+ "time": 163435,
+ "beat": "1"
+ }, {
+ "time": 163749,
+ "beat": "3"
+ }, {
+ "time": 164053,
+ "beat": "3"
+ }, {
+ "time": 164379,
+ "beat": "3"
+ }, {
+ "time": 164683,
+ "beat": "2"
+ }, {
+ "time": 165003,
+ "beat": "3"
+ }, {
+ "time": 165328,
+ "beat": "2"
+ }, {
+ "time": 165632,
+ "beat": "1"
+ }, {
+ "time": 165936,
+ "beat": "3"
+ }, {
+ "time": 166240,
+ "beat": "3"
+ }, {
+ "time": 166544,
+ "beat": "3"
+ }, {
+ "time": 166859,
+ "beat": "3"
+ }, {
+ "time": 167173,
+ "beat": "3"
+ }, {
+ "time": 167477,
+ "beat": "3"
+ }, {
+ "time": 167808,
+ "beat": "2"
+ }, {
+ "time": 168171,
+ "beat": "2"
+ }, {
+ "time": 168987,
+ "beat": "1"
+ }]
}];
-var isDebug = true;
+var isDebug = false;
var globalSpeed = 20;
var currentRotationAngle = 0;
var fullLog = [];
var fpsText;
remove background
remove background
Futuristic speaker in the shape of a white orb. Face view
white video camera icon
landscape of a furturistic world by night
a white music note
white sparkles emiting from the center. back background
clean red-violet beam from above
button in the shape of a protorealistic holographic futuristc Rectangle . Front view.
above the clouds by a bright night, no visible moon Photorealistic
White Clef de sol
A 20 nodes straight metalic lock chain. High definition. In-Game asset. 2d. High contrast. No shadows
a closed metalic padlock. No visible key hole.
white menu icon
in white