canon alpha

The Navidrome player that gets genres right

Canon is a desktop player for the music on your own Navidrome server. It reads the genre tags in your files, then fills the gaps from MusicBrainz and Last.fm. The result is a tree of about 3,000 genres and tags.

Free and open source, GPLv3. Alpha software. Expect bugs and crashes.

Reads from
Navidrome library, scrobbles
MusicBrainz releases, genres, IDs
Last.fm tags, similar artists
LRClib synced lyrics
Canon's home screen: recent genres as radio seeds, a rediscover shelf, and recently played albums

Genres that know their parents

A tag list puts Rock and Dance-Punk Revival side by side as equals. Canon links them, then sorts descriptors and scenes pulled from Last.fm and MusicBrainz into the same structure.

LEVEL 1
  • Electronic
  • Hip Hop
  • Jazz
  • Rock
  • Folk
LEVEL 2
  • Art Rock
  • Alternative Rock
  • Hard Rock
  • Psychedelic Rock
LEVEL 3
  • Grunge
  • Indie Rock
  • Britpop
  • Shoegaze
LEVEL 4
  • Garage Rock Revival
  • Midwest Emo
  • Post-Punk Revival
  • Slowcore
LEVEL 5
  • Dance-Punk Revival
  1. LEVEL 1 Rock
  2. LEVEL 2 Alternative Rock
  3. LEVEL 3 Indie Rock
  4. LEVEL 4 Post-Punk Revival
  5. LEVEL 5 Dance-Punk Revival

Descriptors and scenes

Angular, rhythmic, NYC early-2000s. These arrive as tags too, and Canon files them into the same tree.

Radios follow the tree

Start a station on any genre and it expands outward through the tree. Loosen it and you reach Indie Rock long before you reach Jazz.

You can edit it

The genre editor writes to Canon's own database. Fix a mis-filed album without touching the file on your server.

What it fixes

Tag normalization

Every spelling of a genre resolves to one node. Canon resolves file tags, Last.fm tags, and MusicBrainz data into the tree.

  • alt-rock Alternative Rock
  • Indie/RockINDIE ROCK Indie Rock
  • drum n bass Drum and Bass

Title cleanup

Canon strips edition junk from the album title it displays.

  • Kid A (Remastered 2011) Kid A
  • Loveless [Deluxe Edition] Loveless
  • Tago Mago (2011 Remaster) Tago Mago

Everything a player needs

  • Shuffle, repeat, queue
  • Drag to reorder
  • Synced lyrics
  • Artist bios and stats
  • Scrobbling to Navidrome
  • OS media keys, MPRIS
  • Tag issue review
  • MusicBrainz album ID
Canon's now playing view with waveform scrubber and synced lyrics

Before you install

Does it write to my music files?

No. Canon opens your files read-only and keeps everything it changes in its own SQLite database. If you uninstall it, your library is byte-identical to how you left it.

Do I need to change anything on the server?

There's no plugin to install and no config to change. Canon talks to Navidrome over the Subsonic API with your existing username and password.

What happens to the genres I already tagged?

They are the first thing Canon reads, and they win where they are unambiguous. Last.fm and MusicBrainz fill the gaps. Anything Canon cannot resolve confidently lands in the tag issue view, a list you work through when you feel like it.

Can I override the tree?

The genre editor lets you re-file an album or a whole node by hand. Your edits override the automatic result, and the next metadata fetch won't undo them.

How rough is the alpha?

Playback, browsing, radios, and the genre pipeline all work daily. It still crashes sometimes, and the first metadata scan of a large library takes a while. Bugs go in GitHub issues.

Is it free?

GPLv3, source on GitHub. No account, no telemetry.

Install it

$ curl -fsSL https://raw.githubusercontent.com/jellybrigade/Canon-Music/main/install.sh | sh

Linux. On macOS take the .dmg, on Windows the installer.

I built this for my own library and then cleaned it up. More about that on the About page.

Not ready for an alpha? The Discord gets a note when beta ships.

Join Discord