As part of my commitment to service journalism, here is how I organize my personal music collection and listen to it on all of the high-tech devices that so disastrously permeate my life, including smartphones (with offline playback) and Echo speakers.
I organize my music using the Mac program Swinsian. Swinsian is somewhat like iTunes used to be before it got crudded up with a bunch of extraneous features that have nothing to do with organizing local music files. It has many useful tools for editing and completing track metadata and, most importantly, it is very fast and reliable and does not choke on large music collections. A Windows equivalent would be MediaMonkey.
When I say I use Swinsian to organize my music, that’s really all I use it for. It sorts my music into folders based on criteria I specify (I use the standard iTunes-style Artist/Album folders) and resorts it if I change the metadata.
Swinsian‘s biggest drawback is that it does not support multiple libraries; you can work around this with alternate user accounts or a virtual machine.
This is sort of extraneous but, of course, I keep all my files, music included, backed up to the cloud with Backblaze. Backblaze is $5 per month and it is the best unlimited backup service for most people. It will back up everything on one computer, including external drives, but not network drives.
I use Plex media server to make my music available to myself wherever I go. Plex is its own separate universe; it doesn’t sync up with Swinsian other than periodically scanning the folder structure it creates. I’m not going to tell you how to get Plex set up (it's pretty easy), but to access it outside your local network you’ll need to configure port forwarding on your router to make sure Plex is available externally, if it doesn't happen automatically. You'll need a $5/month Plex Pass account to sync music onto your smartphone for offline listening and to get some other fancy music-related features.
Plex isn’t perfect: Its metadata scanning has a number of bugs (for instance, with older versions of the ID3 format it will insert a bunch of extraneous slashes into your artist name or whatever). Its apps can be unintuitive and weirdly designed, creating playlists is a pain, and there’s no way to actually import normal .m3u playlists. (It can display the contents of an iTunes library, but this is not very useful.)
The other disadvantage of this setup, obviously, is you’ve got to keep your home computer running all the time. However I still find it better than any cloud music service, which often do “scan and match” which often goes wrong, and which have a cap as to the number of tracks you can upload, and which do not stay in sync with your local music collection (for example, if you have edited metadata on some tracks locally, Google Play Music would not reflect this unless you deleted tracks from it and reuploaded them or somehow edited them on the service). (Of the current cloud music services, I think Apple does it best because cloud tracks can more easily stay in sync with changes made locally, but people seem to constantly get confused as to how it works, iTunes bogs down with larger libraries, iCloud Music library has a 100,000 track limit, and I fundamentally don’t like the concept of mixing my own personal music tracks with the tracks available in a streaming service as it just leads to needless complexity.)
Another drawback of this setup compared to the easy days of iTunes + iPods is that with the multifarious ways of listening to music the notion of keeping track of play counts and last-played is no longer really feasible. I used to have smart playlists that were composed just of music I hadn’t listened to in, say, the past three years, but I lost all that historical play data years ago and now no longer bother.
Now that your Plex server is set up correctly you can access your music via various Plex apps and the web. There are apps for Android, iOS, Roku, Apple TV, PlayStation, etc etc, and you can access your Plex collection via the web, as well.
Some of these apps can be used as remote controls for other Plex apps; for example, you can use iOS Plex to control Plex on the Apple TV, but I’ve never found this to be very useful.
Plex also has a peculiar Mac and Windows music-only app called Plexamp. I like the idea but it’s a strange moon man app with its own non-native user interface concepts (no window chrome, annoyingly creates a menu bar icon, etc), so I don’t use it. However I do like its “Plex radio” feature that just plays selections from your music library and I hope it comes to other Plex apps. There is a desktop Plex app, too, that is just a wrapper around the web app, but it's pretty nice for listening to music since you can resize it without screwing up your web browser window size at all, and listen to some premium music features that don't show up in the mobile apps for some reason, such as filtering music by "mood."
The Plex Alexa skill was initially kind of useful for some things. Once a Plex app was running, for example, on an Apple TV you’d be able to say “Alexa, tell Plex to play Herb Alpert's Tijuana Brass” and it would start playing on the Apple TV. It still works this way for video, but audio will now play directly through the Echo.
There are other solutions out there: more music-focused home server setups like Subsonic, Coppertino’s Vox apps and Loop cloud locker service, but none of them have the device support that I’m looking for. So Swinsian + Plex it is.