Most self-hosted services metadata is only as good as the metadata on your audio files. I think using something like MusicBrainz Picard or beets to tag your media well is required, along with making sure that all files of a given album are in the same folder. (Plex has what seems like strict file naming conventions for music, but really all you need to do is make sure each album has all its files in one folder).
If you're interested in something more automated than having to use a program to tag your media, then I'm not sure what a good option is. Most people that don't use streaming services and have a digital music collection are tech-savy and don't mind going through the extra effort of tagging the media.
So here is my question, or one of them, as someone starting this whole journey: exactly what metadata do you want outside of artist, song title, album title? Because I can see there's a lot to be had. Embedded album covers, subgenre tagging, synchronized lyrics ... hyperlinks to Discogs and MusicBrainz, maybe? Tempo in BPM? Key?
ID3v2.3 or IDv2.4? Can you even do that to FLAC? And where do you get that metadata, using what tools?
I just don't want to be the guy who has to re-rip three thousand CDs because he did his workflow in a lazy or careless manner.
The cool thing about MusicBrainz Picard is that it puts not only an ISRC metadata tag on each file, but also a UUID for the MusicBrainz recording and for the MusicBrainz album id.
The idea here is that if you use something like MusicBrainz, you can actually retag all of your files in bulk if necessary because MusicBrainz Picard knows exactly what release each file belongs to. You can then configure MusicBrainz Picard to tag your files to your liking. It's a really great piece of software.
If you are tagging files manually, I think an ISRC tag is the bare minimum because it can allowed automations like MusicBrainz Picard to easily identify what each file is.
As for what version of ID3 or ID2, I'm not sure. It might depend on the software you use to play the audio files. The reason I personally use MusicBrainz Picard is because its MusicBrainz specific metadata is read directly by Plex, so even if the other metadata on the file is bad for some reason, Plex will match the MusicBrainz tagging with the correct release. I mean, Plex uses MusicBrainz internally for its metadata, so it's a safe bet for my purposes.
> ID3v2.3 or IDv2.4? Can you even do that to FLAC? And where do you get that metadata, using what tools?
I rip my CDs to Ogg Vorbis, so the ID3 question is moot. Yes, FLAC supports plenty of metadata. I use beets[1] for tagging, which uses MusicBrainz as the source of truth.
> exactly what metadata do you want outside of artist, song title, album title?
Album Artist, and sort-orders for albums/artists what I like the most (but not all players use those), then yes album covers are useful. I don't really care about subgeneres, but there is a plugin for beets that will fetch those from last.fm
Besides artist, title, and album, I also make sure to include release year and genre (and I'm not really particular about genre definitions - about 90% of my music falls under "rock," "pop," "jazz," or "soundtrack"). I add album art, too.
I started digitizing my collection 15 years ago, ripping from CDs and cassettes, and have never regretted not adding any more metadata.
If you're interested in something more automated than having to use a program to tag your media, then I'm not sure what a good option is. Most people that don't use streaming services and have a digital music collection are tech-savy and don't mind going through the extra effort of tagging the media.