I can understand why streaming services have become so popular: being able to access a large library of familiar and new music that can’t be erased by a faulty hard drive or a wrong button-press is appealing. But, like most techies, I lean towards the “control” side of the convenience-control spectrum in many situations.
For music specifically, I prefer ownership over streaming. I like being able to buy albums from multiple places, store them and back them up wherever I wish, and play them on software I already use, rather than being restricted to specific marketplaces or software clients. (I would also rather rely on my storage and backups than on the unbelievably complex licensing arrangements between streaming services and publishers). For me, staying on team “offline library” was the obvious choice.
Investigating an issue with my MP3 player last year led me to an interesting program called Bliss. In short, Bliss manages your music library based on rules that you define. You set rules about how you want files to be labelled, named, and organised, and Bliss either highlights files which don’t fit the rules so that you can edit them, or adjusts them to meet the rules automatically.
Although Bliss is overkill for my relatively small and wholly-offline library, I really liked its rule-based approach. So I’ve taken the rules I decided on within Bliss and recreated them inside my desktop software of choice, MusicBee.
Library
I have one “main library” in a portable installation of MusicBee, which is stored on my desktop PC. New files are only ever added into this library, and are only synchronised out from this library – they are synced to the microSD cards that go in my other devices, and to a spare hard drive which holds a full library backup amongst other backed-up data. This means I only need to make sure files are correct in this one location.
Software
I usually prefer to have as few programs as necessary installed, so MusicBee is the only software I use day-to-day for listening to, organising, and syncing my music, podcasts and videos. Now that my preferences and my file naming system are saved inside MusicBee, I can use its “Auto-Organize” feature to move every file to the folder which matches its tag information. I can also use its “Files to Edit” feature to spot any songs that have slightly unexpected tags.
For cleaning up my library in the first place, I used the freeware Mp3Tag utility. This software is handy for more detailed tasks like changing what type of tags are written into files, fixing cover art, and making changes to batches of files. (These tasks are possible in MusicBee; I’m just not enough of a power user to experiment with these yet!).
File Structure and File Types
I use the same file structure in every device so that each file lives in the same location relative to the Music folder on that device. I keep Media on a separate drive to the OS and programs on the desktop PC.
| root | ||
| \Music | ||
| \<Album Artist> | Avenged Sevenfold | Various Artists |
| \<Album> | City Of Evil | Forza Horizon Soundtracks |
| \<Title> | 01-05-Bat Country.mp3 | 01-02-Satellite.mp3 |
The majority of my files are 320kbps MP3 files, but I keep any files acquired at a lower bitrate the same rather than unecessarily converting them.
Podcasts live at root\Podcasts\<Album>\<Title>, where <Album> is the name of the podcast series. I don’t change the ID3 tags on podcasts, to make sure that MusicBee can correctly identify and play the episodes I’ve downloaded rather than trying to re-download them.
Tagging and File Naming
All MP3 files are tagged using ID3 tags, specifically Version 2.3 only. The file name of each song is [discnumber]-[tracknumber]-[title]. When a title has characters that can’t be used in a filename, such as “/“, MusicBee replaces these characters with “_“.
e.g.\Music\My Chemical Romance\Three Cheers for Sweet Revenge\01-01-Helena.mp3
e.g.\Music\Fall Out Boy\Take This To Your Grave\01-01-_Tell That Mick He Just Made My List of Things to Do Today_.mp3
Track numbers are padded to two digits, to make sure tracks play in the correct order i.e. the first track on an album is always 01 rather than 1. Similarly, the disc numbers are always included; all one-disc albums are labelled as disc 01. (Add-ons to MusicBee can automatically check whether track numbers are padded and add/remove padding, among many other checks).
I almost always name songs and albums according to their “official” entry on the MusicBrainz database, except for when I own songs from multiple different releases of the same album (e.g. all of the bonus tracks from various regions) and so just use the basic name of the album to keep all of the songs in one folder.
Most of my “Various Artists” albums are collections of songs from licenced game soundtracks, which often span multiple games in a series. So I use one album name for the overall series rather than making albums for individual games.
e.g. \Music\Various Artists\Tony Hawk’s Soundtracks\06-20-Here I Am.mp3
Album Art
I’m fairly specific about album art, mostly because I use Sony Walkman MP3 players that are fussy about displaying images. It’s easier for me to make sure that all images meet Walkman requirements by default, because those images will then always appear properly on other devices as well.
Inside the folder for each album is one piece of cover art, which is always named cover.jpg. The correct cover.jpg for each album is also embedded inside the tags of every track in that album. All of the automatic artwork-finding options inside MusicBee are disabled, so that it can’t replace the embedded artwork.
The specific details of why each artwork has exactly the same name, why many images don’t work on a Walkman, and how to replace batches of images from multiple albums in Mp3Tag, needed its own overthinking post.
Conclusion
Writing out the system I use explicitly, and ordering it in a logical way, has made it feel “complete”. Although the naming conventions I use probably wouldn’t work for a larger library, they work well for me. For example, setting the filename to just the song title and disc/track number is risky: as all other information is held within the ID3 tags, any corruption or error that wiped out the tags would leave only limited information behind. This would make rebuilding the library quite difficult. However, because I sync the main library out to other devices, and I keep regular backups, a data loss on any one device can be resolved by getting information from the other devices, or through scanning all files with a tool such as MusicBrainz Picard, so a major loss is unlikely for me.
Based on that, I think I can consider this question successfully overthought.