feat: 10 new music tracks (20 total)
2x Drum & Bass (Jungle Protocol 174bpm, Liquid Lightning 172bpm), 2x Lo-fi (Midnight Stack 92bpm, Satoshi's Lullaby 88bpm), 2x Ska Punk (Skanking Satoshi 210bpm, Rudeboy Relay 205bpm), 2x Boss Fight (Final Hashrate 145bpm, Whale Alert 155bpm), 2x Chiptune (8-Bit Blockwar 190bpm, Pixel Proof 185bpm). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
fbaeeb5f93
commit
48cf19b438
+476
-2
@@ -1,6 +1,6 @@
|
||||
// Procedural 8-bit sound system + announcer voice using Web Audio + Kokoro TTS
|
||||
// Falls back to Speech Synthesis if Kokoro model hasn't loaded yet
|
||||
import { initKokoro, isKokoroReady, kokoroSpeak, kokoroSpeakAsync, kokoroStop, setAudioContext } from './tts'
|
||||
import { initKokoro, isKokoroReady, kokoroSpeak, kokoroSpeakAsync, kokoroStop, kokoroPrefetch, setAudioContext } from './tts'
|
||||
|
||||
let ctx: AudioContext | null = null
|
||||
let musicGain: GainNode | null = null
|
||||
@@ -893,6 +893,20 @@ export function speakNarration(text: string): Promise<void> {
|
||||
return speakAsyncWithRate(trimmed, 'sportscaster', 1.2)
|
||||
}
|
||||
|
||||
// === TTS PREFETCH — start generating audio in the background so it's cached when needed ===
|
||||
|
||||
export function prefetchQuestion(text: string) {
|
||||
kokoroPrefetch(smartTruncate(text, 200), 'question_reader')
|
||||
}
|
||||
|
||||
export function prefetchAnswer(botName: string, answer: string) {
|
||||
kokoroPrefetch(smartTruncate(answer, 200), botVoiceKey(botName))
|
||||
}
|
||||
|
||||
export function prefetchNarration(text: string) {
|
||||
kokoroPrefetch(smartTruncate(text, 200), 'sportscaster')
|
||||
}
|
||||
|
||||
// === FANFARES (8-bit melodic announcements) ===
|
||||
|
||||
export function fanfareRound(roundNum: number) {
|
||||
@@ -2733,7 +2747,467 @@ const track10: MusicTrack = {
|
||||
],
|
||||
}
|
||||
|
||||
const ALL_TRACKS = [track1, track2, track3, track4, track5, track6, track7, track8, track9, track10]
|
||||
// --- D&B #1 ---
|
||||
const track11: MusicTrack = {
|
||||
name: 'Jungle Protocol', bpm: 174, synthStyle: 'speed',
|
||||
bass: [
|
||||
110,0,0,110, 0,0,110,0, 131,0,0,131, 0,110,0,0,
|
||||
110,0,0,110, 0,0,165,0, 131,0,0,131, 0,175,0,0,
|
||||
147,0,0,147, 0,0,147,0, 165,0,0,165, 0,147,0,0,
|
||||
110,0,0,110, 0,0,110,165, 131,0,0,131, 0,0,0,0,
|
||||
110,0,110,0, 110,0,110,131, 131,0,131,0, 131,110,0,0,
|
||||
147,0,147,0, 147,0,147,165, 165,0,165,0, 165,147,0,0,
|
||||
175,0,175,0, 175,0,175,196, 196,0,196,0, 196,175,0,0,
|
||||
110,0,110,131, 131,0,165,147, 110,0,131,0, 110,0,0,0,
|
||||
],
|
||||
lead: [
|
||||
440,0,523,0, 659,0,523,440, 0,0,523,659, 784,0,659,523,
|
||||
440,0,523,0, 659,784,659,523, 440,523,440,0, 523,659,784,0,
|
||||
587,0,698,0, 880,0,698,587, 0,0,698,880, 1047,0,880,698,
|
||||
440,523,659,784, 659,523,440,0, 523,440,0,0, 440,0,0,0,
|
||||
880,0,784,659, 523,0,440,523, 659,784,880,784, 659,523,440,0,
|
||||
1047,0,880,784, 659,0,523,659, 784,880,1047,880, 784,659,523,0,
|
||||
698,0,587,0, 698,0,784,880, 1047,880,784,698, 587,0,523,587,
|
||||
659,784,880,1047, 880,784,659,523, 440,523,659,0, 440,0,0,0,
|
||||
],
|
||||
arp: [
|
||||
440,523,659,523, 440,523,659,784, 659,523,440,523, 659,784,659,523,
|
||||
523,659,784,659, 523,659,784,1047, 784,659,523,659, 784,1047,784,659,
|
||||
587,698,880,698, 587,698,880,1047, 880,698,587,698, 880,1047,880,698,
|
||||
440,523,659,523, 440,659,523,440, 523,440,0,440, 523,659,784,0,
|
||||
880,659,440,523, 659,880,659,523, 440,523,659,880, 1047,880,659,523,
|
||||
1047,784,523,659, 784,1047,784,659, 523,659,784,1047, 1319,1047,784,659,
|
||||
698,880,1047,880, 698,880,1047,1397, 1047,880,698,880, 1047,1397,1047,880,
|
||||
659,784,880,659, 523,659,784,523, 440,523,659,440, 440,0,0,0,
|
||||
],
|
||||
chords: [[220,262,330],[262,330,392],[165,196,247],[147,175,220],[220,262,330],[175,220,262],[196,247,294],[220,262,330]],
|
||||
drums: [
|
||||
1,0,3,3, 0,0,2,0, 0,3,1,0, 2,0,3,0,
|
||||
1,0,3,3, 0,0,2,3, 0,3,1,0, 2,3,0,3,
|
||||
1,0,3,3, 0,0,2,0, 0,3,1,0, 2,0,3,0,
|
||||
1,0,3,3, 0,3,2,3, 0,3,1,3, 2,3,4,3,
|
||||
1,3,0,3, 2,0,1,3, 0,3,2,0, 1,3,0,3,
|
||||
2,0,1,3, 0,3,2,3, 1,3,0,3, 2,3,1,3,
|
||||
1,3,2,3, 1,0,2,3, 1,3,2,0, 1,3,2,3,
|
||||
1,0,2,0, 1,0,2,0, 1,1,2,2, 1,2,4,0,
|
||||
],
|
||||
}
|
||||
|
||||
// --- D&B #2 ---
|
||||
const track12: MusicTrack = {
|
||||
name: 'Liquid Lightning', bpm: 172, synthStyle: 'speed',
|
||||
bass: [
|
||||
147,0,0,147, 0,0,147,0, 175,0,0,175, 0,147,0,0,
|
||||
131,0,0,131, 0,0,131,0, 147,0,0,147, 0,131,0,0,
|
||||
110,0,0,110, 0,0,110,0, 131,0,0,131, 0,110,0,0,
|
||||
98,0,0,98, 0,0,98,131, 110,0,0,110, 0,0,0,0,
|
||||
147,0,147,0, 175,0,147,175, 196,0,175,0, 147,175,0,0,
|
||||
131,0,131,0, 147,0,131,147, 165,0,147,0, 131,147,0,0,
|
||||
110,0,110,131, 131,0,147,0, 165,0,147,131, 110,0,131,0,
|
||||
98,0,110,0, 131,0,147,0, 110,0,98,0, 98,0,0,0,
|
||||
],
|
||||
lead: [
|
||||
587,0,698,784, 880,0,784,698, 587,0,698,784, 1047,0,880,784,
|
||||
523,0,587,698, 784,0,698,587, 523,0,587,698, 880,0,784,698,
|
||||
440,0,523,587, 659,0,587,523, 440,523,587,659, 784,659,587,523,
|
||||
392,0,440,523, 587,0,523,440, 392,440,523,587, 523,0,0,0,
|
||||
1175,1047,880,784, 698,587,698,784, 880,1047,1175,1047, 880,784,698,587,
|
||||
1047,880,784,698, 587,523,587,698, 784,880,1047,880, 784,698,587,523,
|
||||
880,784,698,587, 523,440,523,587, 698,784,880,784, 698,587,523,440,
|
||||
784,698,587,523, 440,523,587,698, 587,523,440,0, 392,0,0,0,
|
||||
],
|
||||
arp: [
|
||||
587,698,880,698, 587,698,880,1047, 880,698,587,698, 880,1047,880,698,
|
||||
523,659,784,659, 523,659,784,1047, 784,659,523,659, 784,1047,784,659,
|
||||
440,523,659,523, 440,523,659,880, 659,523,440,523, 659,880,659,523,
|
||||
392,494,587,494, 392,494,587,784, 587,494,392,494, 587,784,587,494,
|
||||
1047,880,698,587, 698,880,1047,880, 698,587,698,880, 1047,1397,1047,880,
|
||||
880,784,587,523, 587,784,880,784, 587,523,587,784, 880,1175,880,784,
|
||||
698,587,440,392, 440,587,698,587, 440,392,440,587, 698,1047,698,587,
|
||||
587,523,392,294, 392,523,587,523, 392,294,392,523, 587,0,0,0,
|
||||
],
|
||||
chords: [[147,175,220],[131,165,196],[110,131,165],[98,123,147],[147,175,220],[131,165,196],[110,131,165],[147,175,220]],
|
||||
drums: [
|
||||
1,0,3,0, 2,0,3,3, 1,3,0,0, 2,0,3,0,
|
||||
1,0,3,0, 2,3,3,0, 0,3,1,3, 2,0,3,3,
|
||||
1,0,3,0, 2,0,3,3, 1,3,0,0, 2,0,3,0,
|
||||
1,3,3,0, 2,0,3,3, 1,3,1,3, 2,3,4,0,
|
||||
1,3,2,0, 0,3,1,0, 2,3,0,3, 1,0,2,3,
|
||||
0,3,1,3, 2,0,0,3, 1,3,2,0, 0,3,1,3,
|
||||
1,0,2,3, 1,3,2,0, 1,0,2,3, 1,3,2,3,
|
||||
1,3,1,3, 2,3,1,3, 2,2,1,1, 2,2,4,0,
|
||||
],
|
||||
}
|
||||
|
||||
// --- Lo-fi #1 ---
|
||||
const track13: MusicTrack = {
|
||||
name: 'Midnight Stack', bpm: 92, synthStyle: 'atmospheric',
|
||||
bass: [
|
||||
82,0,0,0, 0,0,82,0, 0,0,0,0, 82,0,0,0,
|
||||
73,0,0,0, 0,0,73,0, 0,0,0,0, 73,0,0,0,
|
||||
65,0,0,0, 0,0,65,0, 0,0,0,0, 65,0,73,0,
|
||||
87,0,0,0, 0,0,87,0, 0,0,0,0, 82,0,0,0,
|
||||
82,0,0,0, 82,0,0,82, 0,0,0,0, 82,0,0,0,
|
||||
73,0,0,0, 73,0,0,73, 0,0,0,0, 73,0,0,0,
|
||||
65,0,0,0, 65,0,0,65, 0,0,0,65, 73,0,82,0,
|
||||
87,0,0,0, 87,0,0,87, 0,0,0,0, 82,0,0,0,
|
||||
],
|
||||
lead: [
|
||||
330,0,0,392, 0,0,330,0, 0,294,0,0, 330,0,392,0,
|
||||
294,0,0,330, 0,0,294,0, 0,262,0,0, 294,0,330,0,
|
||||
262,0,0,330, 0,0,392,0, 0,330,0,0, 262,0,294,0,
|
||||
349,0,0,330, 0,0,294,0, 0,262,0,0, 330,0,0,0,
|
||||
659,0,0,587, 0,0,523,0, 0,494,0,0, 523,0,587,0,
|
||||
587,0,0,523, 0,0,494,0, 0,440,0,0, 494,0,523,0,
|
||||
523,0,0,587, 0,0,659,0, 0,587,0,0, 523,0,494,0,
|
||||
698,0,0,659, 0,0,587,0, 0,523,0,0, 494,0,0,0,
|
||||
],
|
||||
arp: [
|
||||
330,392,494,392, 330,0,0,0, 392,494,587,494, 392,0,0,0,
|
||||
294,349,440,349, 294,0,0,0, 349,440,523,440, 349,0,0,0,
|
||||
262,330,392,330, 262,0,0,0, 330,392,494,392, 330,0,0,0,
|
||||
349,440,523,440, 349,0,0,0, 330,392,494,392, 330,0,0,0,
|
||||
659,494,392,330, 0,0,330,392, 494,659,0,0, 587,494,392,0,
|
||||
587,440,349,294, 0,0,294,349, 440,587,0,0, 523,440,349,0,
|
||||
523,392,330,262, 0,0,262,330, 392,523,0,0, 494,392,330,0,
|
||||
698,523,440,349, 0,0,349,440, 523,698,0,0, 659,523,440,0,
|
||||
],
|
||||
chords: [[165,196,247],[147,175,220],[131,165,196],[175,208,262],[165,196,247],[147,175,220],[131,165,196],[165,196,247]],
|
||||
drums: [
|
||||
1,0,0,0, 0,0,3,0, 2,0,0,0, 0,0,3,0,
|
||||
1,0,0,0, 0,0,3,0, 2,0,0,0, 0,0,0,0,
|
||||
1,0,0,0, 0,0,3,0, 2,0,0,0, 0,0,3,0,
|
||||
1,0,0,0, 0,0,3,0, 2,0,0,0, 0,3,0,0,
|
||||
1,0,3,0, 0,0,3,0, 2,0,0,0, 0,0,3,0,
|
||||
1,0,0,0, 0,0,3,0, 2,0,3,0, 0,0,0,0,
|
||||
1,0,3,0, 0,0,3,0, 2,0,0,0, 0,0,3,0,
|
||||
1,0,0,0, 0,3,3,0, 2,0,0,0, 0,0,0,0,
|
||||
],
|
||||
}
|
||||
|
||||
// --- Lo-fi #2 ---
|
||||
const track14: MusicTrack = {
|
||||
name: "Satoshi's Lullaby", bpm: 88, synthStyle: 'atmospheric',
|
||||
bass: [
|
||||
110,0,0,0, 0,0,0,0, 110,0,0,0, 0,0,110,0,
|
||||
131,0,0,0, 0,0,0,0, 131,0,0,0, 0,0,131,0,
|
||||
98,0,0,0, 0,0,0,0, 98,0,0,0, 0,0,98,0,
|
||||
87,0,0,0, 0,0,0,0, 87,0,0,0, 0,0,0,0,
|
||||
110,0,0,0, 110,0,0,0, 0,0,0,0, 110,0,0,0,
|
||||
131,0,0,0, 131,0,0,0, 0,0,0,0, 131,0,0,0,
|
||||
98,0,0,0, 98,0,0,0, 0,0,0,0, 98,0,110,0,
|
||||
87,0,0,0, 87,0,0,0, 0,0,0,0, 110,0,0,0,
|
||||
],
|
||||
lead: [
|
||||
440,0,0,523, 0,0,0,0, 440,0,0,392, 0,0,0,0,
|
||||
523,0,0,587, 0,0,0,0, 523,0,0,494, 0,0,0,0,
|
||||
392,0,0,440, 0,0,0,0, 392,0,0,349, 0,0,0,0,
|
||||
349,0,0,392, 0,0,0,0, 330,0,0,0, 0,0,0,0,
|
||||
880,0,0,784, 0,0,659,0, 587,0,0,523, 0,0,0,0,
|
||||
1047,0,0,880, 0,0,784,0, 659,0,0,587, 0,0,0,0,
|
||||
784,0,0,659, 0,0,587,0, 523,0,0,440, 0,0,494,0,
|
||||
698,0,0,659, 0,0,587,0, 523,0,0,0, 440,0,0,0,
|
||||
],
|
||||
arp: [
|
||||
220,262,330,262, 220,0,0,0, 262,330,392,330, 262,0,0,0,
|
||||
262,330,392,330, 262,0,0,0, 330,392,494,392, 330,0,0,0,
|
||||
196,247,294,247, 196,0,0,0, 247,294,349,294, 247,0,0,0,
|
||||
175,220,262,220, 175,0,0,0, 220,262,330,262, 220,0,0,0,
|
||||
440,330,262,220, 0,0,262,330, 440,0,0,0, 392,330,262,0,
|
||||
523,392,330,262, 0,0,330,392, 523,0,0,0, 494,392,330,0,
|
||||
392,294,247,196, 0,0,247,294, 392,0,0,0, 349,294,247,0,
|
||||
349,262,220,175, 0,0,220,262, 349,0,0,0, 330,262,220,0,
|
||||
],
|
||||
chords: [[220,262,330],[262,330,392],[196,247,294],[175,220,262],[220,262,330],[262,330,392],[196,247,294],[220,262,330]],
|
||||
drums: [
|
||||
1,0,0,0, 0,0,0,0, 2,0,0,0, 0,0,0,0,
|
||||
1,0,0,0, 0,0,3,0, 2,0,0,0, 0,0,0,0,
|
||||
1,0,0,0, 0,0,0,0, 2,0,0,0, 0,0,0,0,
|
||||
1,0,0,0, 0,0,3,0, 2,0,0,0, 0,0,3,0,
|
||||
1,0,0,0, 0,0,3,0, 2,0,0,0, 0,0,0,0,
|
||||
1,0,0,0, 0,0,0,0, 2,0,0,0, 0,0,3,0,
|
||||
1,0,0,0, 0,0,3,0, 2,0,0,0, 0,0,0,0,
|
||||
1,0,3,0, 0,0,3,0, 2,0,0,0, 0,0,0,0,
|
||||
],
|
||||
}
|
||||
|
||||
// --- Ska Punk #1 ---
|
||||
const track15: MusicTrack = {
|
||||
name: 'Skanking Satoshi', bpm: 210, synthStyle: 'funky',
|
||||
bass: [
|
||||
196,0,196,0, 196,0,196,196, 247,0,247,0, 247,0,247,0,
|
||||
262,0,262,0, 262,0,262,262, 294,0,294,0, 294,0,294,0,
|
||||
196,0,196,0, 196,0,196,196, 175,0,175,0, 175,0,175,0,
|
||||
147,0,147,0, 147,0,147,147, 165,0,165,0, 196,0,0,0,
|
||||
196,0,196,247, 196,0,247,0, 262,0,262,294, 262,0,294,0,
|
||||
294,0,294,330, 294,0,330,0, 262,0,262,294, 262,0,247,0,
|
||||
196,0,196,247, 262,0,294,0, 247,0,247,262, 247,0,196,0,
|
||||
147,0,165,0, 175,0,196,0, 247,0,262,0, 196,0,0,0,
|
||||
],
|
||||
lead: [
|
||||
784,0,784,880, 784,0,659,0, 784,0,880,988, 880,0,784,0,
|
||||
1047,0,1047,1175, 1047,0,880,0, 1047,0,1175,1319, 1175,0,1047,0,
|
||||
784,0,784,880, 784,0,659,0, 698,0,698,784, 698,0,587,0,
|
||||
587,0,587,659, 587,0,523,0, 659,0,784,0, 784,0,0,0,
|
||||
1568,0,1319,1175, 1047,0,880,0, 1175,0,1047,880, 784,0,659,0,
|
||||
1319,0,1175,1047, 880,0,784,0, 1047,0,880,784, 659,0,587,0,
|
||||
784,0,880,1047, 1175,0,1319,0, 1175,0,1047,880, 784,0,659,0,
|
||||
587,659,784,880, 1047,0,880,784, 659,784,880,0, 784,0,0,0,
|
||||
],
|
||||
arp: [
|
||||
0,392,0,392, 0,392,0,392, 0,494,0,494, 0,494,0,494,
|
||||
0,523,0,523, 0,523,0,523, 0,587,0,587, 0,587,0,587,
|
||||
0,392,0,392, 0,392,0,392, 0,349,0,349, 0,349,0,349,
|
||||
0,294,0,294, 0,294,0,294, 0,330,0,330, 0,392,0,0,
|
||||
784,0,659,0, 784,0,880,0, 784,0,659,0, 523,0,659,0,
|
||||
1047,0,880,0, 1047,0,1175,0, 1047,0,880,0, 659,0,880,0,
|
||||
784,0,659,0, 784,0,880,1047, 880,0,784,0, 659,0,523,0,
|
||||
587,0,659,0, 784,0,880,0, 1047,0,880,0, 784,0,0,0,
|
||||
],
|
||||
chords: [[196,247,294],[262,330,392],[196,247,294],[175,220,262],[147,175,220],[165,208,247],[196,247,294],[196,247,294]],
|
||||
drums: [
|
||||
1,0,3,0, 2,0,3,0, 1,0,3,0, 2,0,3,0,
|
||||
1,0,3,0, 2,0,3,0, 1,0,3,0, 2,0,3,0,
|
||||
1,0,3,0, 2,0,3,0, 1,0,3,0, 2,0,3,0,
|
||||
1,0,3,0, 2,0,3,0, 1,0,3,0, 2,3,4,3,
|
||||
1,3,3,3, 2,3,3,3, 1,3,3,3, 2,3,3,3,
|
||||
1,3,3,3, 2,3,3,3, 1,3,3,3, 2,3,3,3,
|
||||
1,3,3,3, 2,3,3,3, 1,3,3,3, 2,3,3,3,
|
||||
1,3,3,3, 2,3,3,3, 1,1,2,2, 1,2,4,0,
|
||||
],
|
||||
}
|
||||
|
||||
// --- Ska Punk #2 ---
|
||||
const track16: MusicTrack = {
|
||||
name: 'Rudeboy Relay', bpm: 205, synthStyle: 'funky',
|
||||
bass: [
|
||||
175,0,175,0, 175,0,175,175, 220,0,220,0, 220,0,220,0,
|
||||
196,0,196,0, 196,0,196,196, 262,0,262,0, 262,0,262,0,
|
||||
175,0,175,0, 175,0,175,175, 233,0,233,0, 233,0,233,0,
|
||||
147,0,147,0, 147,0,147,147, 175,0,175,0, 175,0,0,0,
|
||||
175,0,220,0, 175,0,220,233, 262,0,233,0, 220,0,175,0,
|
||||
196,0,233,0, 196,0,262,0, 233,0,196,0, 175,0,147,0,
|
||||
175,0,220,0, 262,0,233,0, 196,0,175,0, 220,0,262,0,
|
||||
233,0,196,0, 175,0,147,0, 175,0,196,0, 175,0,0,0,
|
||||
],
|
||||
lead: [
|
||||
698,0,698,784, 698,0,587,0, 698,0,784,880, 784,0,698,0,
|
||||
784,0,784,880, 784,0,698,0, 1047,0,880,784, 880,0,784,0,
|
||||
698,0,698,784, 698,0,587,0, 932,0,880,784, 880,0,784,0,
|
||||
587,0,587,698, 587,0,523,0, 587,0,698,0, 698,0,0,0,
|
||||
1397,0,1175,1047, 880,0,784,0, 1047,0,880,784, 698,0,587,0,
|
||||
1568,0,1397,1175, 1047,0,880,0, 1175,0,1047,880, 784,0,698,0,
|
||||
698,0,784,880, 1047,0,1175,0, 1047,0,880,784, 698,0,587,0,
|
||||
523,587,698,784, 880,0,784,698, 587,698,784,0, 698,0,0,0,
|
||||
],
|
||||
arp: [
|
||||
0,349,0,349, 0,349,0,349, 0,440,0,440, 0,440,0,440,
|
||||
0,392,0,392, 0,392,0,392, 0,523,0,523, 0,523,0,523,
|
||||
0,349,0,349, 0,349,0,349, 0,466,0,466, 0,466,0,466,
|
||||
0,294,0,294, 0,294,0,294, 0,349,0,349, 0,349,0,0,
|
||||
698,0,587,0, 698,0,784,0, 698,0,587,0, 523,0,587,0,
|
||||
784,0,698,0, 784,0,880,0, 784,0,698,0, 587,0,698,0,
|
||||
698,0,587,0, 698,0,784,880, 784,0,698,0, 587,0,523,0,
|
||||
523,0,587,0, 698,0,784,0, 880,0,784,0, 698,0,0,0,
|
||||
],
|
||||
chords: [[175,220,262],[196,247,294],[175,220,262],[233,294,349],[147,175,220],[175,220,262],[196,247,294],[175,220,262]],
|
||||
drums: [
|
||||
1,0,3,0, 2,0,3,0, 1,0,3,0, 2,0,3,0,
|
||||
1,0,3,0, 2,0,3,0, 1,0,3,0, 2,0,3,3,
|
||||
1,0,3,0, 2,0,3,0, 1,0,3,0, 2,0,3,0,
|
||||
1,0,3,0, 2,0,3,0, 1,3,3,0, 2,3,4,0,
|
||||
1,3,3,3, 2,3,3,3, 1,3,3,3, 2,3,3,3,
|
||||
1,3,3,3, 2,3,3,3, 1,3,3,3, 2,3,3,3,
|
||||
1,3,3,3, 2,3,3,3, 1,3,3,3, 2,3,3,3,
|
||||
1,3,1,3, 2,3,1,3, 1,1,2,2, 2,2,4,0,
|
||||
],
|
||||
}
|
||||
|
||||
// --- Boss Fight #1 ---
|
||||
const track17: MusicTrack = {
|
||||
name: 'Final Hashrate', bpm: 145, synthStyle: 'boss',
|
||||
bass: [
|
||||
131,0,131,0, 0,0,131,0, 131,0,0,131, 0,0,131,0,
|
||||
123,0,123,0, 0,0,123,0, 123,0,0,123, 0,0,123,0,
|
||||
110,0,110,0, 0,0,110,0, 110,0,0,110, 0,0,131,0,
|
||||
98,0,98,0, 0,0,98,0, 98,0,0,98, 0,0,0,0,
|
||||
131,0,131,131, 0,131,0,131, 131,0,131,0, 131,156,175,196,
|
||||
123,0,123,123, 0,123,0,123, 123,0,123,0, 123,147,165,175,
|
||||
110,0,110,110, 0,110,0,110, 110,0,110,0, 110,131,147,165,
|
||||
98,0,98,110, 110,0,131,0, 131,0,110,98, 131,0,0,0,
|
||||
],
|
||||
lead: [
|
||||
523,0,622,0, 784,0,622,523, 0,0,622,784, 932,0,784,622,
|
||||
494,0,587,0, 740,0,587,494, 0,0,587,740, 880,0,740,587,
|
||||
440,0,523,0, 659,0,523,440, 0,0,523,659, 784,0,659,523,
|
||||
392,0,466,0, 587,0,466,392, 0,0,466,587, 523,0,0,0,
|
||||
1047,0,932,784, 622,0,523,622, 784,932,1047,932, 784,622,523,0,
|
||||
988,0,880,740, 587,0,494,587, 740,880,988,880, 740,587,494,0,
|
||||
880,0,784,659, 523,0,440,523, 659,784,880,784, 659,523,440,0,
|
||||
784,0,740,622, 523,622,740,880, 1047,932,784,622, 523,0,0,0,
|
||||
],
|
||||
arp: [
|
||||
262,311,392,311, 262,311,392,523, 392,311,262,311, 392,523,392,311,
|
||||
247,294,370,294, 247,294,370,494, 370,294,247,294, 370,494,370,294,
|
||||
220,262,330,262, 220,262,330,440, 330,262,220,262, 330,440,330,262,
|
||||
196,233,294,233, 196,233,294,392, 294,233,196,233, 294,392,294,233,
|
||||
523,392,311,262, 311,392,523,622, 523,392,311,262, 392,523,622,784,
|
||||
494,370,294,247, 294,370,494,587, 494,370,294,247, 370,494,587,740,
|
||||
440,330,262,220, 262,330,440,523, 440,330,262,220, 330,440,523,659,
|
||||
392,294,233,196, 233,294,392,466, 392,294,233,196, 262,0,0,0,
|
||||
],
|
||||
chords: [[131,156,196],[123,147,175],[110,131,165],[98,123,147],[131,156,196],[123,147,175],[110,131,165],[131,156,196]],
|
||||
drums: [
|
||||
1,0,0,0, 2,0,0,0, 1,0,3,0, 2,0,3,0,
|
||||
1,0,0,0, 2,0,0,0, 1,0,3,0, 2,0,3,4,
|
||||
1,0,0,0, 2,0,0,0, 1,0,3,0, 2,0,3,0,
|
||||
1,0,3,0, 2,0,3,0, 1,3,1,3, 2,2,4,4,
|
||||
1,0,3,0, 2,0,3,0, 1,0,3,0, 2,0,3,0,
|
||||
1,0,3,0, 2,0,3,4, 1,0,3,0, 2,0,3,0,
|
||||
1,3,1,0, 2,0,3,0, 1,3,1,0, 2,0,3,0,
|
||||
1,3,1,3, 2,3,1,3, 1,1,2,2, 4,4,4,4,
|
||||
],
|
||||
}
|
||||
|
||||
// --- Boss Fight #2 ---
|
||||
const track18: MusicTrack = {
|
||||
name: 'Whale Alert', bpm: 155, synthStyle: 'boss',
|
||||
bass: [
|
||||
117,0,117,0, 0,0,117,0, 117,0,0,117, 0,0,117,0,
|
||||
110,0,110,0, 0,0,110,0, 110,0,0,110, 0,0,110,0,
|
||||
87,0,87,0, 0,0,87,0, 87,0,0,87, 0,0,87,0,
|
||||
98,0,98,0, 0,0,98,0, 98,0,0,98, 0,0,0,0,
|
||||
117,0,117,117, 0,117,0,117, 117,0,117,0, 117,131,147,175,
|
||||
110,0,110,110, 0,110,0,110, 110,0,110,0, 110,123,131,147,
|
||||
87,0,87,87, 0,87,0,87, 87,0,87,0, 87,98,110,117,
|
||||
98,0,98,110, 117,0,131,0, 117,0,98,87, 117,0,0,0,
|
||||
],
|
||||
lead: [
|
||||
466,0,554,0, 698,0,554,466, 0,0,554,698, 880,0,698,554,
|
||||
440,0,523,0, 659,0,523,440, 0,0,523,659, 831,0,659,523,
|
||||
349,0,415,0, 523,0,415,349, 0,0,415,523, 698,0,523,415,
|
||||
392,0,466,0, 587,0,466,392, 0,0,466,587, 466,0,0,0,
|
||||
932,0,880,698, 554,0,466,554, 698,880,932,880, 698,554,466,0,
|
||||
880,0,831,659, 523,0,440,523, 659,831,880,831, 659,523,440,0,
|
||||
698,0,659,523, 415,0,349,415, 523,659,698,659, 523,415,349,0,
|
||||
784,0,698,587, 466,554,698,880, 932,880,698,554, 466,0,0,0,
|
||||
],
|
||||
arp: [
|
||||
233,277,349,277, 233,277,349,466, 349,277,233,277, 349,466,349,277,
|
||||
220,262,330,262, 220,262,330,440, 330,262,220,262, 330,440,330,262,
|
||||
175,208,262,208, 175,208,262,349, 262,208,175,208, 262,349,262,208,
|
||||
196,233,294,233, 196,233,294,392, 294,233,196,233, 294,392,294,233,
|
||||
466,349,277,233, 277,349,466,554, 466,349,277,233, 349,466,554,698,
|
||||
440,330,262,220, 262,330,440,523, 440,330,262,220, 330,440,523,659,
|
||||
349,262,208,175, 208,262,349,415, 349,262,208,175, 262,349,415,523,
|
||||
392,294,233,196, 233,294,392,466, 392,294,233,196, 233,0,0,0,
|
||||
],
|
||||
chords: [[117,139,175],[110,131,165],[87,110,131],[98,117,147],[117,139,175],[110,131,165],[87,110,131],[117,139,175]],
|
||||
drums: [
|
||||
1,0,3,0, 2,0,0,0, 1,0,3,0, 2,0,3,0,
|
||||
1,0,3,0, 2,0,0,0, 1,0,3,0, 2,0,3,4,
|
||||
1,0,3,0, 2,0,0,0, 1,0,3,0, 2,0,3,0,
|
||||
1,0,3,0, 2,3,3,0, 1,3,1,3, 2,2,4,4,
|
||||
1,0,3,0, 1,0,3,0, 2,0,3,0, 1,0,3,0,
|
||||
1,0,3,4, 1,0,3,0, 2,0,3,0, 1,0,3,0,
|
||||
1,3,1,3, 2,0,3,0, 1,3,1,3, 2,0,3,0,
|
||||
1,3,1,3, 2,3,1,3, 1,1,2,2, 4,4,4,4,
|
||||
],
|
||||
}
|
||||
|
||||
// --- Chiptune #1 ---
|
||||
const track19: MusicTrack = {
|
||||
name: '8-Bit Blockwar', bpm: 190, synthStyle: 'bouncy',
|
||||
bass: [
|
||||
165,0,165,0, 165,0,330,0, 165,0,165,0, 247,0,165,0,
|
||||
196,0,196,0, 196,0,392,0, 196,0,196,0, 294,0,196,0,
|
||||
220,0,220,0, 220,0,440,0, 220,0,220,0, 330,0,220,0,
|
||||
147,0,147,0, 147,0,294,0, 147,0,147,0, 220,0,0,0,
|
||||
165,165,0,165, 0,165,330,165, 196,196,0,196, 0,196,392,196,
|
||||
220,220,0,220, 0,220,440,220, 147,147,0,147, 0,147,294,147,
|
||||
165,0,196,0, 220,0,247,0, 262,0,294,0, 330,0,349,0,
|
||||
165,0,247,0, 330,0,247,0, 165,0,247,0, 165,0,0,0,
|
||||
],
|
||||
lead: [
|
||||
659,0,784,0, 988,0,784,659, 784,988,1319,988, 784,0,659,0,
|
||||
784,0,988,0, 1175,0,988,784, 988,1175,1568,1175, 988,0,784,0,
|
||||
880,0,1047,0, 1319,0,1047,880, 1047,1319,1760,1319, 1047,0,880,0,
|
||||
587,0,698,0, 880,0,698,587, 698,880,1175,880, 698,0,0,0,
|
||||
1319,1175,988,784, 659,784,988,1175, 1319,0,1175,988, 784,659,784,988,
|
||||
1568,1319,1175,988, 784,988,1175,1319, 1568,0,1319,1175, 988,784,988,1175,
|
||||
1760,1568,1319,1175, 988,1175,1319,1568, 1760,0,1568,1319, 1175,988,784,0,
|
||||
1175,988,784,659, 784,988,1175,1319, 1568,1319,1175,988, 659,0,0,0,
|
||||
],
|
||||
arp: [
|
||||
330,392,494,659, 494,392,330,392, 494,659,494,392, 330,494,659,330,
|
||||
392,494,587,784, 587,494,392,494, 587,784,587,494, 392,587,784,392,
|
||||
440,523,659,880, 659,523,440,523, 659,880,659,523, 440,659,880,440,
|
||||
294,349,440,587, 440,349,294,349, 440,587,440,349, 294,440,587,0,
|
||||
659,494,330,494, 659,988,659,494, 330,494,659,988, 1319,988,659,494,
|
||||
784,587,392,587, 784,1175,784,587, 392,587,784,1175, 1568,1175,784,587,
|
||||
880,659,440,659, 880,1319,880,659, 440,659,880,1319, 1760,1319,880,659,
|
||||
587,440,294,440, 587,880,587,440, 294,440,587,880, 659,0,0,0,
|
||||
],
|
||||
chords: [[165,208,247],[196,247,294],[220,262,330],[147,175,220],[165,208,247],[196,247,294],[220,262,330],[165,208,247]],
|
||||
drums: [
|
||||
1,0,3,0, 2,0,3,0, 1,0,3,0, 2,0,3,0,
|
||||
1,0,3,0, 2,0,3,0, 1,0,3,0, 2,0,3,3,
|
||||
1,0,3,0, 2,0,3,0, 1,0,3,0, 2,0,3,0,
|
||||
1,0,3,0, 2,0,3,3, 1,0,3,3, 2,3,4,0,
|
||||
1,0,3,3, 2,0,3,3, 1,0,3,3, 2,0,3,3,
|
||||
1,0,3,3, 2,0,3,3, 1,0,3,3, 2,3,4,3,
|
||||
1,3,1,3, 2,3,1,3, 1,3,1,3, 2,3,1,3,
|
||||
1,3,1,3, 2,3,1,3, 1,1,2,2, 1,2,4,0,
|
||||
],
|
||||
}
|
||||
|
||||
// --- Chiptune #2 ---
|
||||
const track20: MusicTrack = {
|
||||
name: 'Pixel Proof', bpm: 185, synthStyle: 'bouncy',
|
||||
bass: [
|
||||
220,0,220,0, 220,0,440,0, 220,0,220,0, 330,0,220,0,
|
||||
196,0,196,0, 196,0,392,0, 196,0,196,0, 294,0,196,0,
|
||||
175,0,175,0, 175,0,349,0, 175,0,175,0, 262,0,175,0,
|
||||
165,0,165,0, 165,0,330,0, 165,0,165,0, 247,0,0,0,
|
||||
220,220,0,220, 0,220,440,220, 196,196,0,196, 0,196,392,196,
|
||||
175,175,0,175, 0,175,349,175, 165,165,0,165, 0,165,330,165,
|
||||
220,0,196,0, 175,0,165,0, 175,0,196,0, 220,0,247,0,
|
||||
220,0,330,0, 440,0,330,0, 220,0,330,0, 220,0,0,0,
|
||||
],
|
||||
lead: [
|
||||
880,0,1047,0, 1319,0,1047,880, 1047,1319,1760,1319, 1047,0,880,0,
|
||||
784,0,932,0, 1175,0,932,784, 932,1175,1568,1175, 932,0,784,0,
|
||||
698,0,880,0, 1047,0,880,698, 880,1047,1397,1047, 880,0,698,0,
|
||||
659,0,784,0, 988,0,784,659, 784,988,1319,988, 784,0,0,0,
|
||||
1760,1568,1319,1047, 880,1047,1319,1568, 1760,0,1568,1319, 1047,880,1047,1319,
|
||||
1568,1397,1175,932, 784,932,1175,1397, 1568,0,1397,1175, 932,784,932,1175,
|
||||
1397,1319,1047,880, 698,880,1047,1319, 1397,0,1319,1047, 880,698,880,0,
|
||||
1319,1175,988,784, 659,784,988,1175, 1319,1175,988,784, 880,0,0,0,
|
||||
],
|
||||
arp: [
|
||||
440,523,659,880, 659,523,440,523, 659,880,659,523, 440,659,880,440,
|
||||
392,494,587,784, 587,494,392,494, 587,784,587,494, 392,587,784,392,
|
||||
349,440,523,698, 523,440,349,440, 523,698,523,440, 349,523,698,349,
|
||||
330,415,494,659, 494,415,330,415, 494,659,494,415, 330,494,659,0,
|
||||
880,659,440,523, 659,880,1319,880, 659,523,659,880, 1319,1760,1319,880,
|
||||
784,587,392,494, 587,784,1175,784, 587,494,587,784, 1175,1568,1175,784,
|
||||
698,523,349,440, 523,698,1047,698, 523,440,523,698, 1047,1397,1047,698,
|
||||
659,494,330,415, 494,659,988,659, 494,415,494,659, 880,0,0,0,
|
||||
],
|
||||
chords: [[220,277,330],[196,247,294],[175,220,262],[165,208,247],[220,277,330],[196,247,294],[175,220,262],[220,277,330]],
|
||||
drums: [
|
||||
1,0,3,0, 2,0,3,0, 1,0,3,0, 2,0,3,0,
|
||||
1,0,3,0, 2,0,3,3, 1,0,3,0, 2,0,3,0,
|
||||
1,0,3,0, 2,0,3,0, 1,0,3,0, 2,0,3,0,
|
||||
1,0,3,0, 2,0,3,3, 1,3,3,0, 2,3,4,0,
|
||||
1,0,3,3, 2,0,3,3, 1,0,3,3, 2,0,3,3,
|
||||
1,0,3,3, 2,0,3,3, 1,3,3,3, 2,3,4,3,
|
||||
1,3,1,3, 2,0,3,3, 1,3,1,3, 2,0,3,3,
|
||||
1,3,1,3, 2,3,1,3, 1,1,2,2, 2,2,4,0,
|
||||
],
|
||||
}
|
||||
|
||||
const ALL_TRACKS = [track1, track2, track3, track4, track5, track6, track7, track8, track9, track10, track11, track12, track13, track14, track15, track16, track17, track18, track19, track20]
|
||||
let activeTrack: MusicTrack = track1
|
||||
let barIndex = 0
|
||||
|
||||
|
||||
Reference in New Issue
Block a user