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
User prompt
Now implement menu logic by loading data and starting corresponding track on menu tile press; use songTracks object for songData to Music track correspondance.
Code edit (1 edits merged)
Please save this source code
User prompt
use songListV3 names for the Menu Tiles text
Code edit (2 edits merged)
Please save this source code
User prompt
increase their width to 1480, and add dropShadox to their texts
User prompt
augment tiles vertical spacing and increase their width to 1024
User prompt
Reorganize menu tiles into a horizontally centered list layout
User prompt
organise menu tiles as a list centered horizonatally
User prompt
after teleport anim and, call a new funtion showMenu(); in showMenu display 3 menuTile assets with a text "Track 01" ,02 and 03;
Code edit (1 edits merged)
Please save this source code
User prompt
in ConfettiAnim, alon with note and note 2, add classical simple colored rectangle confettis (use line asset)
Code edit (1 edits merged)
Please save this source code
User prompt
play cheers sound along with confettis
User prompt
create a confettiAnim class; use note and note2 assets with futuristic blue tint that fall from above top of screen; call it when runner returned to initial position āŖš” Consider importing and using the following plugins: @upit/tween.v1
User prompt
adapt runner to show rotateAnim before idleAnim; only call idleAnim after rotateAnim end
Code edit (3 edits merged)
Please save this source code
User prompt
in Runner add a rotationAnim function, show the frames runnerRotation_01, runnerRotation_02, runnerRotation_03; call it at IdleAnim start
Code edit (3 edits merged)
Please save this source code
User prompt
in teleportAnim, play beamEnter on beam appearance and beamTeleport before runner move up
Code edit (1 edits merged)
Please save this source code
User prompt
in teleportAnim, after beam appearance, animate move the runner to y -800 in 2 sec āŖš” Consider importing and using the following plugins: @upit/tween.v1
/****
* 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