wire 20 StepMania songs into song picker with real metadata
Unify Song type to include id, chartUrl, audioUrl alongside display fields. Replace 8 placeholder songs with all 20 real StepMania songs (artist, BPM, duration from SSC/audio files). Get Lucky is first. songIndex.ts now re-exports from the canonical song-data source. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>main
parent
a2695423e6
commit
1eb568c38b
|
|
@ -2,75 +2,243 @@ import type { Song } from './types'
|
|||
|
||||
export const SONGS: Song[] = [
|
||||
{
|
||||
title: 'Neon Runner',
|
||||
artist: 'Pulse Reactor',
|
||||
bpm: 175,
|
||||
difficulty: 4,
|
||||
duration: '3:10',
|
||||
genre: 'Electro',
|
||||
id: 'get-lucky',
|
||||
title: 'Get Lucky',
|
||||
artist: 'Daft Punk',
|
||||
bpm: 116,
|
||||
difficulty: 3,
|
||||
duration: '2:28',
|
||||
genre: 'Disco',
|
||||
color: '#D4A017',
|
||||
chartUrl: '/songs/get-lucky/chart.ssc',
|
||||
audioUrl: '/songs/get-lucky/audio.ogg',
|
||||
},
|
||||
{
|
||||
id: 'axion',
|
||||
title: 'Axion',
|
||||
artist: 'Reso',
|
||||
bpm: 140,
|
||||
difficulty: 3,
|
||||
duration: '2:14',
|
||||
genre: 'Drum & Bass',
|
||||
color: '#D94A0A',
|
||||
chartUrl: '/songs/axion/chart.ssc',
|
||||
audioUrl: '/songs/axion/audio.ogg',
|
||||
},
|
||||
{
|
||||
title: 'Burning Step',
|
||||
artist: 'Luna Flux',
|
||||
bpm: 168,
|
||||
difficulty: 3,
|
||||
duration: '2:54',
|
||||
genre: 'Dance Pop',
|
||||
id: 'blue',
|
||||
title: 'Blue',
|
||||
artist: 'Au5 & Fractal',
|
||||
bpm: 175,
|
||||
difficulty: 5,
|
||||
duration: '2:28',
|
||||
genre: 'Dubstep',
|
||||
color: '#2A51C7',
|
||||
chartUrl: '/songs/blue/chart.ssc',
|
||||
audioUrl: '/songs/blue/audio.ogg',
|
||||
},
|
||||
{
|
||||
title: 'Solar Break',
|
||||
artist: 'System Vibe',
|
||||
bpm: 182,
|
||||
id: 'caelumize',
|
||||
title: 'Caelumize',
|
||||
artist: 'void',
|
||||
bpm: 175,
|
||||
difficulty: 5,
|
||||
duration: '3:26',
|
||||
genre: 'Hard Dance',
|
||||
color: '#EF6C14',
|
||||
duration: '1:57',
|
||||
genre: 'Artcore',
|
||||
color: '#9B59B6',
|
||||
chartUrl: '/songs/caelumize/chart.ssc',
|
||||
audioUrl: '/songs/caelumize/audio.ogg',
|
||||
},
|
||||
{
|
||||
title: 'Arc Flash',
|
||||
artist: 'NOVA//CTRL',
|
||||
bpm: 160,
|
||||
difficulty: 2,
|
||||
duration: '2:41',
|
||||
genre: 'Synthwave',
|
||||
color: '#3C9B5E',
|
||||
},
|
||||
{
|
||||
title: 'Heatline',
|
||||
artist: 'Mira K',
|
||||
bpm: 190,
|
||||
id: 'drift',
|
||||
title: 'Drift',
|
||||
artist: 'Metrik',
|
||||
bpm: 174,
|
||||
difficulty: 5,
|
||||
duration: '2:30',
|
||||
genre: 'Techno',
|
||||
color: '#C7313A',
|
||||
duration: '2:20',
|
||||
genre: 'Drum & Bass',
|
||||
color: '#27AE60',
|
||||
chartUrl: '/songs/drift/chart.ssc',
|
||||
audioUrl: '/songs/drift/audio.ogg',
|
||||
},
|
||||
{
|
||||
title: 'Volt Parade',
|
||||
artist: 'Skyline Unit',
|
||||
bpm: 148,
|
||||
difficulty: 2,
|
||||
duration: '3:03',
|
||||
genre: 'Nu Disco',
|
||||
color: '#0E9A9A',
|
||||
},
|
||||
{
|
||||
title: 'Firecode',
|
||||
artist: 'Cipher Girls',
|
||||
bpm: 172,
|
||||
id: 'fang-banger',
|
||||
title: 'Fang Banger',
|
||||
artist: 'Bro Safari & Space Laces',
|
||||
bpm: 140,
|
||||
difficulty: 4,
|
||||
duration: '3:14',
|
||||
genre: 'Club',
|
||||
color: '#A641D2',
|
||||
duration: '2:27',
|
||||
genre: 'Bass',
|
||||
color: '#C0392B',
|
||||
chartUrl: '/songs/fang-banger/chart.ssc',
|
||||
audioUrl: '/songs/fang-banger/audio.ogg',
|
||||
},
|
||||
{
|
||||
title: 'Street Impact',
|
||||
artist: 'Delta Move',
|
||||
bpm: 156,
|
||||
id: 'future-music',
|
||||
title: 'Future MUSiC',
|
||||
artist: 'Ym1024 feat. lamie*',
|
||||
bpm: 132,
|
||||
difficulty: 3,
|
||||
duration: '2:58',
|
||||
genre: 'Breakbeat',
|
||||
color: '#A88516',
|
||||
duration: '2:14',
|
||||
genre: 'J-Core',
|
||||
color: '#1ABC9C',
|
||||
chartUrl: '/songs/future-music/chart.ssc',
|
||||
audioUrl: '/songs/future-music/audio.ogg',
|
||||
},
|
||||
{
|
||||
id: 'g-symphonicore',
|
||||
title: 'G-SYMPHONiCORE',
|
||||
artist: 'Jugem-T',
|
||||
bpm: 212,
|
||||
difficulty: 5,
|
||||
duration: '2:21',
|
||||
genre: 'Speedcore',
|
||||
color: '#E67E22',
|
||||
chartUrl: '/songs/g-symphonicore/chart.ssc',
|
||||
audioUrl: '/songs/g-symphonicore/audio.ogg',
|
||||
},
|
||||
{
|
||||
id: 'heartbeats',
|
||||
title: 'HeartBeats',
|
||||
artist: '獣音ロウ.Revo',
|
||||
bpm: 128,
|
||||
difficulty: 4,
|
||||
duration: '2:49',
|
||||
genre: 'Happy Hardcore',
|
||||
color: '#E84393',
|
||||
chartUrl: '/songs/heartbeats/chart.ssc',
|
||||
audioUrl: '/songs/heartbeats/audio.ogg',
|
||||
},
|
||||
{
|
||||
id: 'jump-ya-body',
|
||||
title: 'Jump Ya Body',
|
||||
artist: 'Kill The Noise feat. Mercedes',
|
||||
bpm: 140,
|
||||
difficulty: 3,
|
||||
duration: '2:10',
|
||||
genre: 'Bass',
|
||||
color: '#8D6E63',
|
||||
chartUrl: '/songs/jump-ya-body/chart.ssc',
|
||||
audioUrl: '/songs/jump-ya-body/audio.ogg',
|
||||
},
|
||||
{
|
||||
id: 'kokeshi-neko-medley',
|
||||
title: 'Kokeshi Neko Medley',
|
||||
artist: 'Ino',
|
||||
bpm: 216,
|
||||
difficulty: 5,
|
||||
duration: '2:43',
|
||||
genre: 'J-Core',
|
||||
color: '#AD1457',
|
||||
chartUrl: '/songs/kokeshi-neko-medley/chart.ssc',
|
||||
audioUrl: '/songs/kokeshi-neko-medley/audio.ogg',
|
||||
},
|
||||
{
|
||||
id: 'lightspeed-remix',
|
||||
title: 'Lightspeed (Remix)',
|
||||
artist: 'Kill The Noise & Datsik',
|
||||
bpm: 108,
|
||||
difficulty: 4,
|
||||
duration: '2:23',
|
||||
genre: 'Dubstep',
|
||||
color: '#5C6BC0',
|
||||
chartUrl: '/songs/lightspeed-remix/chart.ssc',
|
||||
audioUrl: '/songs/lightspeed-remix/audio.ogg',
|
||||
},
|
||||
{
|
||||
id: 'mess',
|
||||
title: 'Mess',
|
||||
artist: 'Anamanaguchi',
|
||||
bpm: 112,
|
||||
difficulty: 4,
|
||||
duration: '2:14',
|
||||
genre: 'Chiptune',
|
||||
color: '#00B894',
|
||||
chartUrl: '/songs/mess/chart.ssc',
|
||||
audioUrl: '/songs/mess/audio.ogg',
|
||||
},
|
||||
{
|
||||
id: 'monkey-business',
|
||||
title: 'Monkey Business',
|
||||
artist: 'kors k',
|
||||
bpm: 160,
|
||||
difficulty: 4,
|
||||
duration: '1:58',
|
||||
genre: 'Happy Hardcore',
|
||||
color: '#F4A300',
|
||||
chartUrl: '/songs/monkey-business/chart.ssc',
|
||||
audioUrl: '/songs/monkey-business/audio.ogg',
|
||||
},
|
||||
{
|
||||
id: 'neurobazaar',
|
||||
title: 'Neurobazaar',
|
||||
artist: 'zircon',
|
||||
bpm: 130,
|
||||
difficulty: 4,
|
||||
duration: '2:16',
|
||||
genre: 'Electronica',
|
||||
color: '#0984E3',
|
||||
chartUrl: '/songs/neurobazaar/chart.ssc',
|
||||
audioUrl: '/songs/neurobazaar/audio.ogg',
|
||||
},
|
||||
{
|
||||
id: 'peacock',
|
||||
title: 'Peacock',
|
||||
artist: '7 Minutes Dead',
|
||||
bpm: 120,
|
||||
difficulty: 4,
|
||||
duration: '2:29',
|
||||
genre: 'Electro',
|
||||
color: '#00ACC1',
|
||||
chartUrl: '/songs/peacock/chart.ssc',
|
||||
audioUrl: '/songs/peacock/audio.ogg',
|
||||
},
|
||||
{
|
||||
id: 'plasticity',
|
||||
title: 'Plasticity',
|
||||
artist: 'Minor Rain',
|
||||
bpm: 168,
|
||||
difficulty: 5,
|
||||
duration: '2:25',
|
||||
genre: 'Artcore',
|
||||
color: '#7B1FA2',
|
||||
chartUrl: '/songs/plasticity/chart.ssc',
|
||||
audioUrl: '/songs/plasticity/audio.ogg',
|
||||
},
|
||||
{
|
||||
id: 'souten',
|
||||
title: 'Souten (Key-Kai mix)',
|
||||
artist: 'Meine Meinung',
|
||||
bpm: 182,
|
||||
difficulty: 4,
|
||||
duration: '2:05',
|
||||
genre: 'Trance',
|
||||
color: '#0277BD',
|
||||
chartUrl: '/songs/souten-sta-s-key-kai-mix/chart.ssc',
|
||||
audioUrl: '/songs/souten-sta-s-key-kai-mix/audio.ogg',
|
||||
},
|
||||
{
|
||||
id: 'the-edge',
|
||||
title: 'The Edge',
|
||||
artist: 'KOAN Sound',
|
||||
bpm: 140,
|
||||
difficulty: 3,
|
||||
duration: '2:28',
|
||||
genre: 'Electro',
|
||||
color: '#607D8B',
|
||||
chartUrl: '/songs/the-edge/chart.ssc',
|
||||
audioUrl: '/songs/the-edge/audio.ogg',
|
||||
},
|
||||
{
|
||||
id: 'trap',
|
||||
title: 'Trap',
|
||||
artist: 'Bluescreens',
|
||||
bpm: 174,
|
||||
difficulty: 4,
|
||||
duration: '2:01',
|
||||
genre: 'Drum & Bass',
|
||||
color: '#D32F2F',
|
||||
chartUrl: '/songs/trap/chart.ssc',
|
||||
audioUrl: '/songs/trap/audio.ogg',
|
||||
},
|
||||
]
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
export type Song = {
|
||||
id: string
|
||||
title: string
|
||||
artist: string
|
||||
bpm: number
|
||||
|
|
@ -6,4 +7,6 @@ export type Song = {
|
|||
duration: string
|
||||
genre: string
|
||||
color: string
|
||||
chartUrl: string
|
||||
audioUrl: string
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,29 +1,2 @@
|
|||
export interface SongEntry {
|
||||
id: string
|
||||
title: string
|
||||
chartUrl: string
|
||||
audioUrl: string
|
||||
}
|
||||
|
||||
export const SONGS: SongEntry[] = [
|
||||
{ id: 'axion', title: 'Axion', chartUrl: '/songs/axion/chart.ssc', audioUrl: '/songs/axion/audio.ogg' },
|
||||
{ id: 'blue', title: 'Blue', chartUrl: '/songs/blue/chart.ssc', audioUrl: '/songs/blue/audio.ogg' },
|
||||
{ id: 'caelumize', title: 'Caelumize', chartUrl: '/songs/caelumize/chart.ssc', audioUrl: '/songs/caelumize/audio.ogg' },
|
||||
{ id: 'drift', title: 'Drift', chartUrl: '/songs/drift/chart.ssc', audioUrl: '/songs/drift/audio.ogg' },
|
||||
{ id: 'fang-banger', title: 'Fang Banger', chartUrl: '/songs/fang-banger/chart.ssc', audioUrl: '/songs/fang-banger/audio.ogg' },
|
||||
{ id: 'future-music', title: 'Future MUSiC', chartUrl: '/songs/future-music/chart.ssc', audioUrl: '/songs/future-music/audio.ogg' },
|
||||
{ id: 'get-lucky', title: 'Get Lucky', chartUrl: '/songs/get-lucky/chart.ssc', audioUrl: '/songs/get-lucky/audio.ogg' },
|
||||
{ id: 'g-symphonicore', title: 'G-SYMPHONiCORE', chartUrl: '/songs/g-symphonicore/chart.ssc', audioUrl: '/songs/g-symphonicore/audio.ogg' },
|
||||
{ id: 'heartbeats', title: 'HeartBeats', chartUrl: '/songs/heartbeats/chart.ssc', audioUrl: '/songs/heartbeats/audio.ogg' },
|
||||
{ id: 'jump-ya-body', title: 'Jump Ya Body', chartUrl: '/songs/jump-ya-body/chart.ssc', audioUrl: '/songs/jump-ya-body/audio.ogg' },
|
||||
{ id: 'kokeshi-neko-medley', title: 'Kokeshi Neko Medley', chartUrl: '/songs/kokeshi-neko-medley/chart.ssc', audioUrl: '/songs/kokeshi-neko-medley/audio.ogg' },
|
||||
{ id: 'lightspeed-remix', title: 'Lightspeed (Remix)', chartUrl: '/songs/lightspeed-remix/chart.ssc', audioUrl: '/songs/lightspeed-remix/audio.ogg' },
|
||||
{ id: 'mess', title: 'Mess', chartUrl: '/songs/mess/chart.ssc', audioUrl: '/songs/mess/audio.ogg' },
|
||||
{ id: 'monkey-business', title: 'Monkey Business', chartUrl: '/songs/monkey-business/chart.ssc', audioUrl: '/songs/monkey-business/audio.ogg' },
|
||||
{ id: 'neurobazaar', title: 'Neurobazaar', chartUrl: '/songs/neurobazaar/chart.ssc', audioUrl: '/songs/neurobazaar/audio.ogg' },
|
||||
{ id: 'peacock', title: 'Peacock', chartUrl: '/songs/peacock/chart.ssc', audioUrl: '/songs/peacock/audio.ogg' },
|
||||
{ id: 'plasticity', title: 'Plasticity', chartUrl: '/songs/plasticity/chart.ssc', audioUrl: '/songs/plasticity/audio.ogg' },
|
||||
{ id: 'souten', title: 'Souten (Key-Kai mix)', chartUrl: '/songs/souten-sta-s-key-kai-mix/chart.ssc', audioUrl: '/songs/souten-sta-s-key-kai-mix/audio.ogg' },
|
||||
{ id: 'the-edge', title: 'The Edge', chartUrl: '/songs/the-edge/chart.ssc', audioUrl: '/songs/the-edge/audio.ogg' },
|
||||
{ id: 'trap', title: 'Trap', chartUrl: '/songs/trap/chart.ssc', audioUrl: '/songs/trap/audio.ogg' },
|
||||
]
|
||||
export { SONGS } from '../features/song-select/song-data'
|
||||
export type { Song } from '../features/song-select/types'
|
||||
|
|
|
|||
Loading…
Reference in New Issue