Currently I'm using Jellyfin (since I already use it for other stuff), but it isn't ideal. No option to download entire albums easily, and if the server is offline then I can't even use the music downloaded to my phone.
I use PlexAmp with Plex and Deezloader (now deemix!) that directly downloads into the Plex Folders so it instantly gets tagged and picked up ready for listening.
I had a multi-hour session with musicBrainz Picard to fix the tags, but now I dont have to manually fix anything. I even got Pokemon OSTs running sorted by Editions
I have the same exact setup running on my server, and it's great. I also like having my entire library downloaded on some devices (some of which are more storage constrained), so I also have deemix setup to automatically transcode the flac files to opus and put it into a folder that is synced with a cloud storage.
Yeah I love the useability of PlexAmp combined with the "it just works" from deemix that has all the tagging done already
For reference, here is my library "summary" and the work I put in was basically finding duplicates, fixing tags to be Artist feat. Other Artist and stuff like that and that took around 3 hours to get the following script for the Picard Renaming Script part