Hi, I'm Jelly.
25, from Austria. Software engineer, music nerd, and photographer.

Why I built this
I've been self-hosting and teaching myself to code since I was a teen. Into music even longer, hanging around online in indie music forums, and genres were always half the fun of finding new music.
I run Navidrome for my own library, and none of the players I tried felt right. So I started building my own, mostly to scratch that itch.
Called it Canon because a canon is both a body of music and a rule for classifying it. Didn't know yet how literal that second part would get.
One thing led to another
Once I finished the player, I was never happy with how genres were handled, especially if you're no angel about where you get your music. I tried beets, MusicBrainz Picard, tagging everything by hand. None of it went deep enough. Might just be caring too much about metadata.
So I built genre fixing straight into the player. That turned out to be the best part. Auto-DJ radios built from a real genre tree are just better than ones built from a flat tag list.
At some point I looked at what I'd built and realized it was a genuinely good music player. So I cleaned it up and put it out for anyone else running Navidrome. Try it, open an issue, tell me your genre tree is wrong.