Interactive demo
TroveTracks Demo
The working tool, loaded with a fictional station's library. Browse by rotation folder, upload a track and place it, review the tag matches, and clear the duplicate and explicit queues.
This is a sandbox
The station, the library, the staff accounts, and the tracks are all invented. The demo has no connection to any real music library, automation system, or TroveTracks installation, and no audio is streamed. Your changes stay in this browser tab, are never sent to or stored on our server, and are gone the moment you reload the page.
🎵
Logged in as demo (admin)What do these folders mean?
A song's folder controls how often it plays on air — not its genre or decade.
- CURRENT new music
- CORE the biggest, most familiar hits
- REGULAR familiar hits, the backbone of the station
- SECONDARY real songs, less familiar, played less often
- OCCASIONAL novelty/instrumental, played rarely on purpose
- HOLD-REVIEW not on air — don't add music here
- ARCHIVE set-aside files, not deleted, not on air
- EXPLICIT auto-flagged explicit content, not on air
- OTHER not sure where it goes? Put it here, not on air
Edit Tags
Picking a match below embeds its cover art automatically when you save.
Review Tags
Files MusicBrainz confidently recognized, where the file's own Title/Artist/Album/Year info is missing something. Everything is pre-checked — uncheck anything that doesn't actually match. Nothing is written until you press Apply.
This never touches Genre, even when it's blank. Genre has its own tool, since it replaces whatever is already there rather than only filling blanks.
Possible Duplicates
Exact recording matches are separated from alternate versions, which are usually worth keeping. Nothing is moved automatically.
Explicit Content
Screening runs in two stages: a scan of the title and lyrics, then a transcription of the audio itself to confirm. Anything confirmed is moved to EXPLICIT and is not on air. Clearing a false positive puts the file back.
Activity Log
Every login, upload, tag change, archive, move, rename, and admin action, across all users.
My Activity
Your own recent actions. A move or archive can be undone from here within the undo window.
Users
Admins manage accounts and can permanently delete files. Regular users can browse, upload, archive, and move. These accounts are fictional.
Admin Home
The background jobs that keep the library in order. On a real installation each one runs as a sweep over the whole library and can be left to finish on its own.
Lyric Search
Find a song when all anyone remembers is a line from it. Try lantern, rain, or train.
Help
New here? Start with this. TroveTracks is the station's digital music library — every song RadioDJ can play lives here as a file. Each file has hidden info saved inside it, called its tags: title, artist, album, genre, and so on. That's the info both this app and RadioDJ actually read to know what a song is.
Getting around is simple: the Home page shows your folders, click one to see the songs inside, tap ▶ Play to listen, and use the search box at the top to find something by name.
Behind the scenes, this app also checks every song against MusicBrainz — a free, public database that has accurate info for almost every song ever released. It uses that to catch missing or wrong info in your files and suggest fixes. This happens on its own; you don't have to do anything for it to run.
Jump to
- Where does a song go?
- Browsing & searching
- Lyric Search
- Playing & downloading
- Uploading new music
- Editing tags
- Archive, Move & Rename
- Undo & My Activity
- The explicit-content check
- Managing users
- Pop-up announcements
- MusicBrainz tools
- Site-wide Activity Log
- The explicit-content system (full detail)
- Good-to-know quirks
Where does a song go?
The top-level folders control how often a song plays on air in RadioDJ. A song's folder is based on how well-known it is and how often it should play — not its genre or decade. A broad, cross-genre station is that way on purpose, so a rock song, a pop song, and an R&B song can all sit in the same folder if they're all equally familiar.
Quick decision guide: Is it brand new? → CURRENT. Otherwise, ask how well-known it is to a casual listener — instantly recognizable → CORE, familiar but not iconic → REGULAR, real but a deep cut → SECONDARY, novelty/instrumental/rare treat → OCCASIONAL. Not sure, or not meant for rotation at all? → OTHER, don't guess.
Browsing & searching
The Home page lists every top-level folder, then every file in the current folder, alphabetically. On the Home page the on-air folders come first and the non-rotation ones (HOLD-REVIEW, ARCHIVE, EXPLICIT, OTHER) are dimmed, so on-air versus not is obvious at a glance. Folder names display in all caps for consistency — the real names on disk are unchanged.
The search box matches filenames, plus title/artist/album for any file already matched against MusicBrainz — it doesn't search lyrics. Searching also checks the Archive folder, but not the Explicit folder. Folder navigation loads without a full page reload, so a song keeps playing while you browse.
Lyric Search
Finds a song by a word or phrase actually sung in it — useful when you need a specific line for a bumper or promo and don't remember the title or artist. Coverage is partial by design: it only searches songs whose real lyrics have already been fetched and cached as part of the explicit-content check.
Playing & downloading
Tap ▶ Play on any song to start it in the player bar. Tap the progress bar to seek. The player keeps playing as you navigate to other folders or search results. ⇩ Download saves the file to your device instead of playing it.
Uploading new music
WAV or FLAC only. MP3 is rejected outright — it's lossy and doesn't meet the quality standard. Any WAV you upload is converted to FLAC right after upload; if that conversion fails, your original WAV is kept, never lost.
Name your file Song Title - Artist, with exactly one dash separating the two. If your filename doesn't match that pattern — or does, but has title and artist backwards — you'll get a suggested rename you can edit before applying.
Once processing is done, up to two things appear above the file list, always in this order: first a filename fix if one is needed, then the rotation-folder prompt. The rotation prompt runs an AI judgment automatically and shows its reasoning plus a highlighted suggested folder — it's still your call, and one click either confirms it or picks something else.
Editing tags
Open a file's menu and choose 🎵 Tags to edit its Title, Artist, Album, Year, Genre, and Track number. Genre is never auto-filled here — type it yourself, or use the separate Fix Genre Tags tool. 🔍 Look up online searches MusicBrainz and shows up to three candidates with album, year, track and length; a length that looks well off from your file is flagged in red.
Archive, Move & Rename
Archive sets a file aside into the Archive folder — still on disk, still findable, just out of the way. Use it instead of deleting something you're not sure about. Move sends a file to a different top-level folder; moving something out of Archive counts as restoring it. Rename changes the filename, keeping the extension, and is blocked if that name already exists in the folder.
All three are reversible. Delete is different: admin-only and permanent, with no undo. Admins also get a bulk-move bar inside a folder, where "Select all on this page" covers only the songs on the page you're looking at, not the whole folder.
Undo & My Activity
Archive, Move and Rename can all be undone — from the confirmation message, from the ↩ Undo button that stays on that file's menu, or from your own My Activity page. You can only undo your own actions, and only within the undo window; after that the button disappears and the action is permanent.
Uploads can't be undone — there's no previous location to move an upload back to. If you uploaded something by mistake, ask an admin to delete it.
The explicit-content check
Every upload is checked for explicit language twice: first from the song's real lyrics or catalog data right when you upload, then a few minutes later from a real listen to the actual audio itself, since filenames and tags can be wrong.
The quick first check only gives you a heads-up note. The audio check that follows is the one that acts: if it confirms explicit content, the file is moved into the Explicit folder and a one-time alert banner tells you which file and why. Think a flag is wrong? An admin can review it and move the file back with Undo like any other move.
Managing users
The Users page lists every account with Disable/Enable, Make admin/Make regular user, Reset password and Delete controls, plus a form to add a new user (username 3–30 characters, letters, numbers and . _ - only; password at least 8 characters).
- You can't disable, delete, or change the role of your own account.
- You can't delete or demote the last active admin account — note this only counts active admins, so a disabled admin doesn't count toward that protection.
- There's no equivalent block on disabling the last admin, only self-disable is blocked — be careful not to lock everyone out.
Pop-up announcements
Set a message on the Admin page and tick "Show this announcement" to display it as a one-time pop-up to everyone. Untick it, or clear the text, to stop showing anything.
MusicBrainz tools
The big picture, if all of this is new: a lot of the hidden info saved inside a library's files is missing or wrong — especially Genre. These tools fix that using MusicBrainz as the source of truth for what a song's real info should be.
Before any tool can help a song, that song first has to be identified — matched to the correct MusicBrainz entry by title and artist. That matching runs on its own every night, at roughly one file a second, which is MusicBrainz's own rate limit; there's also a manual "Scan now" button on the Admin page if you don't want to wait. Nothing below does anything for a song until it's been matched this way.
Once songs are matched, a sensible order for a first pass through the whole library:
- Fill in missing basic info (title, artist, album, year, track #) → Review & fill missing tags
- Add missing album art → Find & fill missing cover art
- Clean up messy filenames → Fix filenames
- Fix the Genre field → Fix Genre Tags
- Only after that, if you want files organised into folders by genre → Sort by Genre (do this last — it sorts by whatever Genre tag is currently on the file, so Genre needs to already be fixed)
Worth knowing up front: two of these (Fix filenames, Sort by Genre) rename or move the file itself, which can confuse RadioDJ — it tracks songs by file location, so a rename or move looks to it like the old song vanished and a new, uncategorised one showed up. The rest only edit the hidden info inside the file, so RadioDJ never notices.
Review & fill missing tags — files MusicBrainz confidently recognised where the file's own Title/Artist/Album/Year/Track is missing something, 15 at a time, each pre-checked so you can uncheck anything wrong before applying. Never overwrites a field that already has a value — and never touches Genre at all, blank or not. "Run the whole backlog now" applies everything in one background pass with no per-song review: faster, but blind.
Find & fill missing cover art — the same idea for artwork, 24 at a time, previewed before you approve.
Fix filenames — finds every file whose name doesn't look like "Song Title - Artist", including ones that are backwards, if they have a confirmed match to check the order against. A backwards name with no match yet can't be detected this way, since both orders have exactly one dash and look identical by shape alone. Suggestions prefer a confirmed match, then the file's own tags, then a guess from an "Artist - Track# - Title" shape.
Fix Genre Tags — not a duplicate of Review & fill missing tags: that one only fills blank fields and never touches Genre. This one is Genre-only and replaces the value even when there is one, because the genre already embedded in a file can't be trusted — they're frequently a decade string ("1980s"), a messy multi-genre combo, or just plain wrong. Two separate steps: fetching genres is read-only and just caches an answer per song, and nothing is written to a file until you approve a batch or run an unattended pass.
Sort by Genre — moves files into a top-level folder named after their own Genre tag. It reads only the file's embedded tag, so it's only as good as that tag: run Fix Genre Tags first. Same RadioDJ consideration as renaming, but at a larger scale, so it's worth timing deliberately rather than running blind.
Possible Duplicates — groups files that matched the exact same recording, plus a second "matched differently" group for the same title and artist matched to a different recording, which could be a live version, a reissue, or a genuine mismatch. Archive is excluded from both groups; the Explicit folder is not.
Site-wide Activity Log
Every action by every user, with a dropdown to filter to one username and checkboxes to bulk-undo several entries at once, within the same undo window as everywhere else. Entries past the retention period are deleted automatically in the background, and a "Clear now" box prunes anything older than a number of days you choose.
The explicit-content system (full detail)
This runs in two independent stages.
1. Text check (lyrics-based). For a given title and artist, the app first tries to fetch the song's real lyrics and scans the actual words for profanity, matching on word boundaries against two severity tiers so it won't false-positive on things like "assassin". If lyrics can't be found it falls back to the song's explicit flag in a catalog database — a broader, less specific signal, so those results are shown as lower confidence. Results are cached per song, so a re-upload under a different filename never re-checks.
2. Audio transcription (uploads only). Right after an upload, a background job runs real local speech-to-text on the actual audio — not the filename or tags, since those can be wrong or missing — to confirm or override the text check. It runs one file at a time, for new uploads only; it's far too CPU-intensive for a full-library sweep.
Only stage 2 acts on a new upload: if it confirms explicit content the file is moved to the Explicit folder, and the uploader and all admins are alerted either way. Stage 1 alone never moves anything — it only shows the uploader an early heads-up.
Good-to-know quirks
- The Archive and Explicit folders are still visible and clickable from the Home page like any other folder — they're just excluded from the per-song Move-to list, the folder-scan picker, and library file counts. Archive is offered in the admin bulk-move bar, since that bar has no separate Archive button; Explicit still isn't, because files get there through the automated check rather than by hand.
- Undo only exists for Archive, Move, Rename, and auto-quarantine actions. Uploads, tag edits, and deletes can never be undone through this system.
Disabled in the demo — this sandbox has no files to act on.
The player is simulated — the demo ships no audio. On a real installation the file streams from the station's own machine, with seek support, and keeps playing as you move between folders.
