Jukebox
The Jukebox plays every soundtrack in your library as one collection. It's currently a beta feature, so expect parts of it to change between releases.
Tracks are audio files in a soundtrack/ subfolder of a game's folder, one of the recognised subfolders alongside manual/ and walkthrough/:
roms/snes/chrono trigger/
├─ chrono trigger.sfc
└─ soundtrack/
├─ 01 - Chrono Trigger.flac
├─ 02 - Memories of Green.flac
└─ 03 - Wind Scene.spc
Supported formats are .mp3, .ogg, .oga, .opus, .m4a, .aac, .wav and .flac.
Console sound files also work, and play in the browser through game-music-emu: .spc for the SNES, and .vgm, .vgz and .gym for the Sega Genesis/Mega Drive and other systems VGM covers. They're much smaller than rips (a whole SNES soundtrack as SPC is about 1 MB). Each file holds one song, so multi-song formats such as .nsf and .gbs aren't supported. SPC sets often ship as .rsn files, which are RAR archives, so extract the .spc files into the soundtrack/ folder first.
Scanning reads each file's tags (title, artist, album, genre, year, track number, duration) and grabs the embedded cover if there is one. Drop in a properly tagged rip and it'll display correctly, while untagged files just show their filename.
Console sound files aren't read for tags yet. They show their filename and have no duration in the library, which also leaves them out of Free Radio and Decade Mix. Their length appears once they start playing.
Playback
The player hands the playing track to your operating system through the browser's Media Session API, so media keys, the OS media overlay and phone lock screens show the track and its cover and can play, pause, skip and seek, except while a console sound file plays.
An opt-in "Resume music after reload" user setting saves the queue and position per user and per browser, and picks the last track up where it stopped. If it was playing, it starts again on your first click or key press, since browsers block audio that starts on its own.
Browsing
Tracks can be browsed several ways:
| What it groups by | |
|---|---|
| Album | The album tag |
| Game | The game the tracks belong to, which is the jukebox's album list |
| Platform | The game's platform |
| Artist | The artist tag |
| Genre | The genre tag |
| Game genre | The genre of the game, not of the music |
| Year | The year tag |
Mixes and playlists
Four mixes are generated for you:
- Free Radio, about an hour of tracks picked at random but balanced across albums.
- Decade Mix, grouped by release decade.
- Recently added, the newest tracks in the library.
- Favourites, whatever you've starred.
You can also build your own playlists. Playlists are ordered, and you can rename them and either keep them private or make them available to everyone on the instance.
API
Browsing and the facets above:
| Method | Path | Description |
|---|---|---|
GET |
/music/tracks |
Flat, filterable, paginated track list |
GET |
/music/games, /music/platforms, /music/game-genres |
Library facets over the soundtracks |
GET |
/music/albums, /music/artists, /music/genres, /music/years |
Tag facets, each with counts |
GET |
/music/stats |
Library-wide track count and total duration |
GET |
/music/favorites |
The requester's favourite tracks |
POST |
/music/favorites |
Mark tracks as favourites |
Playlists are under /music/playlists with the usual create, read, update and delete. /{id}/tracks lists, appends and removes, and /{id}/tracks/order reorders.
Related
- Uploads: adding tracks through the web UI