A few people commenting that some of their collection "doesn't exist in any DB", the best way to fix it is to add it to Musicbrainz[0] yourself!
I have found that adding things to Musicbrainz is actually pretty easy (and if you are so inclined like me, pretty rewarding and fun).
Streaming releases (and Bandcamp) you simply drop the release URL into Harmony[1] and it does most of the work for you.
Musicbrainz can represent nearly everything musically related and its all freely licensed, a very cool thing to exist.
Most (non-destructive) edits are auto-applied, whilst the rest go through a 7 day voting period (they are still applied by default unless someone votes against). The barrier to entry is very low.
You're still assuming that all of a person's music metadata _belongs_ in a global database. Some of my collection includes:
-"frankenstein" musical soundtracks where I've assembled my favorite version of each song from all the various published recordings. Sometimes I've even edited pieces of different recordings together into a hybrid track.
-a soundboard recording of my friend's high school talent show performance
-Music I've personally recorded from video games or other random sources
-Songs where I've edited out parts I don't like (such as overly-long drum solos) leaving just the parts I do.
I've organized these things in a way that makes sense for me, not for the world.
This is like a bookshelf that can only store books with an ISBN that can be classified in the Dewey decimal system. Too bad about your family photo scrapbooks or your personal sketchbooks!
Wow I've needed harmony for years, thanks for sharing! My dumb ass was filling out the Musicbrainz by hand for like two months before I just gave up on beets.
I spent a truly obnoxious amount of time importing my music library into beets. It took a couple of weeks to get to 95% imported, and got so bogged down in the last 5% that I never completed the import and never switched over.
This isn't necessarily a fault with beets, really, but a model mismatch. The model of beets is very, very strongly tied to associating each imported item to one well-known, commercial release. While it's possible to stray from that, it takes tons of time and experimentation to cram some things into its model.
Purchased, popular albums are a breeze; they import nicely and make sense. I struggled differing amounts with:
* brand new indie label releases (bandcamp)
* commercial albums variants missing from musicbrainz/discogs
* non-commercial albums (self-released CDRs)
* fan-recorded concerts
* fan-recorded festivals (a special case, a true nightmare)
* fan edits/remixes of commercial releases
* playlists & mix tapes
* mixed media releases
Each was eventually possible, but sometimes it took hours to figure out how to import a specific folder. Worse, after doing one festival it didn't necessarily make it easier to do the next festival. Even if I get to 100% imported, additional imports will still take thought.
This isn't an argument against it, I still think it's a fantastic tool. Just understand that the farther you stray from collecting commercial releases, the more of a struggle it is.
> * commercial albums variants missing from musicbrainz/discogs
I fixed those two by adding the missing releases to the database beets uses as its data source (musicbrainz.org), and importing the album in Beets afterwards. I still get notifications for edits to entries I contributed over a decade ago!
Can I ask what you choose to manage your library with today? I feel like streaming has made me stray so far from the joy (and pain) of library curation, and I’d really like to get back to it, I just don’t know what folks are using these days.
I've always struggled to get my classical CDs tagged in a way that makes sense to me. Apple has figured it out in their classical music app and I should probably see if I can copy what they did in my personal library.
Everyone else is telling you to go update musicbrainz, and that's a sensible course of action for the first two bullets, but the much easier path is to import all these files with whatever metadata they have.
There is no canonical metadata for a fan recording of a concert or DIY CD-R, so you lose out on nothing by importing the files as they are today.
Once you're over the hump of the first import, beets is a fabulous tool for ingesting new music. It's well worth it.
> fan-recorded festivals (a special case, a true nightmare)
I've long enjoyed extracted audio from eg Glastonbury sets. I've only got a few that I particularly enjoyed and where the specific track was on youtube - is it that sort of thing? Is there a community of such reprobates?
Beets is amazing. The fact that it exists is a blessing for those like us who maintain our own music library.
I've been wanting to build my own Plex alternative for a while now. I've tried all the other tools out there, but Plex is definitely the least bad tool that let me enjoy my music without subscribing to Spotify and others.
I've already spent hours trying to figure out all the things that are required to make this new system. And it's unbelievably complicated. From parsing metadata to converting music, to understanding how deep and complex tagging work for music (yeah, it doesn't sound like it at first, but it truly is infinitely complex), I'm overwhelmed by how hard it would be to build a tool that compete with a combination of beets/iTunes.
(Only because I have an axe to grind) I really dislike "genre" and work hard to strip that metadata tag. It is so reductive. And flawed as well.
Do we assign a "genre" to an artist? Album? Song?
The band R.E.M.: "College Rock"? "New Wave"? "Alternative"?
(Wow, don't even get me started on all the ways you can further slice up "alternative" into "shoe-gaze", "twee", etc. It's, ha ha, naval gazing for the music intelligentsia.)
R.E.M.'s "Don't Go Back to Rockville"? "Country"?
I think "live" and "soundtrack" might be the only two interesting "genres".
More seriously, there’s no reason you can’t assign more than one genre to a song, or say that “it’s a mix of A and B”. You can extend the concept to albums and artists just as easily.
I’m not familiar with R.E.M., but on rateyourmusic.com they’re marked as alternative rock, jangle pop, pop rock, indie rock, neo-psychedelia, and folk rock. “Don’t go back to Rockville” is marked as Jangle pop, and the “Reckoning” album overall is mostly Jangle pop with some influences from post-punk and Paisley Underground.
You may not agree with these categorizations, but it’s a crowd-sourced website so you can go vote for different genres. You may also disagree with the existence of all of these genres, some of which I’ve never heard of myself (but as I said, I haven’t listened much to R.E.M. in general), but my point is more that if you’re familiar with them then you kind of know what to expect from the song.
I’d never heard “don’t go back to rockville”, but just from these genres you named to make your point, I already knew what it would approximately sound like. And indeed listening to it confirmed that.
Genres are fun to play with too. If something has breakdown and maybe some screams? Put 'core' at the end. Its all up to interpretation and it gives us some easy short hand to discuss music.
I don't think theres anything wrong with labelling genres, its good for describing things. If I say "I love post hardcore, does anyone have more of that?" its a lot easier than going "hear me I out, I like punk sounds but maybe not necessarily punk songs?" What about movies? Can books have a genre? seems like a silly thing to take issue with. Alternative is a huge umbrella and it means something very different now than it did in the 90's when it meant pavement or sonic youth.
'naval gazing for music intelligentsia' did a pitchfork writer run over your mom?
If you're using Navidrome or similar to stream your music then check out beets-alternatives [0]. It lets you sync (and optionally convert) your library or a subset of it to another location, in my case my music storage mounted with Rclone. It's especially useful if you need to have a different naming structure in your target directory for whatever reason. I like to keep each disc of a multi-disc album in in its own subdirectory but most streaming servers seem to prefer all tracks of an album to be in the same directory. With Beets-alternatives I can have a different naming structure for each collection vs. having to rename my primary collection to suit whatever streaming server I happen to be using.
I like beets' functionality but don't as much like "babysitting" it for long sessions when I have a bunch of new music to import. Especially because crashes are frequent and sometimes make it lose all incremental progress. Lack of progress bar on large imports is painful also.
It would be nice if a beets background worker could be kicked off when new music is detected to avoid the sequential nature of the commandline and see all the waiting tagging actions at once. This[0] is supposed to do that but it appears deprecated in favor of something else[1].
That being said, the "beets way" works pretty well past the import stage, so I haven't felt the need to move off it for local music.
I spent a couple of nights working out how to configure beets to my liking and have loved it ever since. My “workflow” is now:
- buy album on Bandcamp
- download zip
- beet import {zip file name}
And beets extracts the zip, matches the album to musicbrainz, updates any metadata, and drops the files into the directory structure that I like (naming the files how I like them, too).
Very rarely an album will need some more attention, in which case I use Picard to fix it before using beets to import it.
A very similar workflow on my end, both beets as the main tagger/organizer and Picard to pick up whatever can't be processed through beets. Beets is amazing!
Sometimes there’s just weirdness though - for example recently I bought an album and the band included all the tracks from their previous album as bonus tracks. So I used Picard to split them into the 2 “proper” albums.
I mean, you can just do that in the browser too. "Enter ID" allows you to enter the MusicBrainz UUID (or just full URL). You can even do in the command itself.
What I really want is a plugin that starts an icecast server with a given song as a root, and continues to stream songs whose albums/artists are within a certain reference distance of the root on discogs/wikipedia/etc.
So if I start on Guzzlemug I'll get some Blood Incantation, but maybe also some Pink Floyd.
Tried Beets once because it pairs well with Navidrome, it's pretty feature packed and exhaustive in what it does. Though after fiddling with it and realizing that it's more effort for my use case than I'd like I ditched it and now I don't really bother tagging. I hope to do the same thing for Navidrome too and find something to replace it with similar to KDE Elisa which makes it easy to make playlists on the fly and organize music around folders instead of tags.
Different strokes for different folks, that's not to say that Navidrome and Beets aren't amazing pieces of kit.
I have this problem too. I find it completely useless to have tags like genre=Post Rock Jazz Fusion" or whatever with basically one band in each genre.
The other thing I've never quite got right is how to deal with classical music and popular music with multiple pressings. A lot of the tagging structure seems oriented around popular music with just one pressing. But I have like 10 different recordings of The Planets and several versions of Red Hot Chili Pepper's Californication, for example.
It's more for adding tags before you add them to your collection. You can setup shortcuts to often used tags. Of course it can also rename and move files based on tags.
I then can auto create playlists based on those tags (with a different program)
How do you all handle FLAC/CUE releases? A problem I have is that I want to have processed/tagged tracks, but I also want to keep FLAC/CUEs. I end up have redundant and separate organized library and original data.
I, personally, split the flac. It sounds like you don't want to do that but though but it does remain lossless amd I prefer to see the tracks representing individually in the filesystem.
If anyone is looking at options in this space, I used to use Media Monkey for organising and curating my large offline music collection. It did things like metadata and album art management, album-level volume levelling, and would even reorganise the file structure of your music to whatever pattern you set.
I also loved that you could set up separate "libraries", so I could have metal and classical arranged by album, and EDM as a bunch of single tracks that are organised into playlists. Only downside is that it's Windows software.
Having hit those first two pain points, I changed my transcode config to 1) run every time, and 2) use a custom bash script as the transcode command. The bash script keeps a plaintext list of files + their modtime and disk size, then only transcodes files it hasn’t seen before. Because it’s a plaintext list and relatively small, there’s not a terrible performance hit since it’s paged into memory.
Not at all saying this to dismiss your criticism though; absolutely would be great to have better OOTB options. Just putting it out for anyone who wants a workaround :).
I recently looked into beets, but it seems it’s focused on automation, is that correct? I often buy stuff that has just been released, and that’s not yet in any database, so no automation works.
My current workflow is download, unzip and manually tag (mainly genres, sometimes badly named artists/albums) with MusicBee (which gives me autocomplete for genres so I can reuse existing ones), and then copy the files to the server for Navidrome to pick them up.
Throwing this out here to see if beets would actually work well with what I want after all.
I use MusicBee for everything too and sounds like my workflow is the same as yours. I basically take whatever is tagged on the file straight out of Bandcamp and then manually follow Discogs-like rules for normalization of the artist name so the directory structure works out, plus adding iTunes compilation metadata to deal with the "various artists" issue, adding BPM, customizing genre and comments etc.
I think I started all this fussiness exactly because back in the old days when you synced to CDDB, you'd get somebody else's useless record label classification for a reissue or international release that obscured the original label, which in certain genres of music is quite important to be able to better categorize the music for auto playlists. Original year is also critical for auto playlists where you're looking for tunes around a certain era. I also have a vague memory of old CDJs or Serato or some damn thing not displaying the name I wanted so having to shuffle stuff around to Composer or Album Artist or something to make it work, and now here I am with custom-tagged all the things.
My problem is I was considering replacing all my 320k MP3s with FLACs, which I have for all my Bandcamp purchases and most of my CD rips (although not from Beatport and other online stores)... but I realized it was going to be absolute hell to try and match the untagged files that I downloaded and put straight into cloud storage with the tagged files I already have in the library. It would need some kind of heuristics to fuzzy match the files with what's already there, then retag them with my preferred tags from the MP3, then move the file into the same location the MP3 is, then move the MusicBee proprietary metadata (play count, add date etc) across, then delete the MP3. I keep thinking there has to be a program or a plugin for this, but seems like not, so for now I've just given up and decided that 320k is good enough, actually, which makes me wonder why I'm keeping all these FLACs around in the first place. Not like I'm starting the Library of Alexandria here, I just like music.
> actually, which makes me wonder why I'm keeping all these FLACs around
Sometime last year, I actually redownloaded all my BC files, and reripped all my CDs (had to re-do genres, but that was fine, I wanted cleaner genres anyway). It’s simply archival. Lossless means you can convert it to whatever file you might want in the future without loss of quality.
This made extra sense for my CD rips, because many of those were from the early 2000s and I made questionable quality descisions ;)
I'm wondering about diminishing returns, because up until switching to FLAC about 10 years ago I ripped all my CDs to 320k and thus only have about 20 files in my "low bitrate" auto playlist that are weird indie or bootleg things that I couldn't bring myself to delete for nostalgia reasons. Is FLAC really all that much better? Can anybody hear the difference? I don't want to spend months awkwardly moving thousands of files around just because it's more useful to a hypothetical future archaeologist version of myself with hearing that got better with age instead of worse...
That said, I wouldn't mind going back and retagging my genres in particular because one of the annoying things is that over the years my perception of the genre of certain tracks has changed, so it might be easiest to just roll back to ID3v1 "we got both kinds: house and techno" genres for the broad category and then cram subgenre keywords into the comment field instead... but it's been so long since I used CDJs that maybe all these hacks to maintain compatibility with different players are moot now. I saw that the latest and greatest DJ equipment just hooks up direct to online streaming services so I wouldn't be surprised if it also had a feature to sync everything to MusicBrainz as soon as you plug in a USB, which makes all the fussing around with legacy tags kind of pointless for a casual who mostly just listens or mixes at home.
320 vs FLAC: unless you are both a mutant and audiophile with the right equipment, you won't hear any difference at all. It's purely for archival purposes for me, that I have the "originals" or as close as possible.
Legacy tags: luckily not an issue for me, I only care about multiple (usually metal) subgenres and that my players show/filter them.
You can use the current tags in the media files and not use any metadata database. I have a simple scheme for organizing my collection, and can correct my metadata rather quickly, but these days, so I don’t even use beets.
Looks like a general case. I do the same a lot with Picard and Foobar, but beats can also auto tag based on file name and populate musicbrainz. Set library directory to that of navidrome so it will be coppied there on import.
If you add a lot of new stuff to your library, you'll often need to add them to MusicBrainz yourself. I use beets and I currently have added 2697 releases (2543 release groups) to MusicBrainz.
Beets is what got me into MusicBrainz. It's an incredible resource. To be fair it's not the easiest of things to get started with and the usability could be better (release drafts, anyone?) but it's efficient once you get the hang of it.
First: Thank you! Secondly: I wish more people did this. If you end up needing to manually enter the data, at least if you add it to a public database more people can benefit, which also makes it feel less frustrating.
I'm in the midst of a major music library overhaul and would not know how I'd ever get it done without Beets. For example, it's clearing out embedded images, fetching new hi-res artwork and verifying FLAC integrity, as I go through artist by artist.
Correct me if I'm wrong, but different target users here :) Beets seems to be for consumers who want to organize their music collection, and while Mixxx can help with that too, it's mainly for music connoisseurs who play for others (AKA DJs). I'm not sure how well someone looking for the first could use Mixxx, the interface isn't exactly the epitome of user-friendliness if you just wanna organize then press play :)
Mixxx is best used with a DJ console, however for me it is also easily used as a player that automatically picks a song from some selected crates in Auto DJ mode.
So I'm in the mood for Salsa, I put that crate as the AutoDJ source.
Later I can change it to progressive rock, or 90's disco, and it will randomly pick songs from the selected crate or crates.
I can also do DJ things, like looping some sections or mashup some songs.
Auto-tagging is nice to have but it will screw up verification checksums. I would prefer having metadata in a separate DB and keep the files as is, unless I explicitly request exporting the metadata to the original files.
The -C option to avoid copying files and the -W option to prevent writing tags (or set it in the config file)
It will still attempt to match and store the results in its DB for later writing to files, or moving, or querying.
For the data to be most useful, you will need a client that connect to Beets to get the data though, Im not sure how prevelant those are. You can use the web-ui plugin though.
It's a good tool. However, last I checked, it was not possible to run it in a one-shot stateless fashion, like, passing it a list of music files so it auto-fetches album art, lyrics and updates the very same input files.
> Relatedly, the -q (quiet) option can help with large imports by autotagging without ever bothering to ask for user input. Whenever the normal autotagger mode would ask for confirmation, the quiet mode performs a fallback action that can be configured using the quiet_fallback configuration or --quiet-fallback CLI option. By default it pessimistically skips the file. Alternatively, it can be used as is, by configuring asis.
Beets with this flag works relatively well for me when wrapped in a shell script, but I have spent a lot of effort trying to make it actually non-interactive.
I'm still not totally sure I got all the certainty thresholds right, I still sometimes get unexpected behavior when using Beets this way, so I agree that the non-interactive experience is lacking.
Well yes, it's not that hard to use but then even using the terminal for an average user is complicated.
There is a webpage on beets website where they list all the functions and explain what it does. Very useful when you go back after half a year and can't remember how it works.
I've loved beets (and MusicBrainz Picard) for years. This bit from the beets docs has always stuck with me when organizing my library.
"An Apology and a Brief Interlude
I would like to sincerely apologize that the autotagger in beets is so fussy. It asks you a lot of complicated questions, insecurely asking that you verify nearly every assumption it makes. This means importing and correcting the tags for a large library can be an endless, tedious process. I’m sorry for this.
Maybe it will help to think of it as a tradeoff. By carefully examining every album you own, you get to become more familiar with your library, its extent, its variation, and its quirks. People used to spend hours lovingly sorting and resorting their shelves of LPs. In the iTunes age, many of us toss our music into a heap and forget about it. This is great for some people. But there’s value in intimate, complete familiarity with your collection. So instead of a chore, try thinking of correcting tags as quality time with your music collection. That’s what I do."
A few people commenting that some of their collection "doesn't exist in any DB", the best way to fix it is to add it to Musicbrainz[0] yourself!
I have found that adding things to Musicbrainz is actually pretty easy (and if you are so inclined like me, pretty rewarding and fun).
Streaming releases (and Bandcamp) you simply drop the release URL into Harmony[1] and it does most of the work for you.
Musicbrainz can represent nearly everything musically related and its all freely licensed, a very cool thing to exist.
Most (non-destructive) edits are auto-applied, whilst the rest go through a 7 day voting period (they are still applied by default unless someone votes against). The barrier to entry is very low.
0. https://musicbrainz.org/
1. https://harmony.pulsewidth.org.uk/
You're still assuming that all of a person's music metadata _belongs_ in a global database. Some of my collection includes:
-"frankenstein" musical soundtracks where I've assembled my favorite version of each song from all the various published recordings. Sometimes I've even edited pieces of different recordings together into a hybrid track. -a soundboard recording of my friend's high school talent show performance -Music I've personally recorded from video games or other random sources -Songs where I've edited out parts I don't like (such as overly-long drum solos) leaving just the parts I do.
I've organized these things in a way that makes sense for me, not for the world.
This is like a bookshelf that can only store books with an ISBN that can be classified in the Dewey decimal system. Too bad about your family photo scrapbooks or your personal sketchbooks!
Wow I've needed harmony for years, thanks for sharing! My dumb ass was filling out the Musicbrainz by hand for like two months before I just gave up on beets.
I spent a truly obnoxious amount of time importing my music library into beets. It took a couple of weeks to get to 95% imported, and got so bogged down in the last 5% that I never completed the import and never switched over.
This isn't necessarily a fault with beets, really, but a model mismatch. The model of beets is very, very strongly tied to associating each imported item to one well-known, commercial release. While it's possible to stray from that, it takes tons of time and experimentation to cram some things into its model.
Purchased, popular albums are a breeze; they import nicely and make sense. I struggled differing amounts with:
* brand new indie label releases (bandcamp)
* commercial albums variants missing from musicbrainz/discogs
* non-commercial albums (self-released CDRs)
* fan-recorded concerts
* fan-recorded festivals (a special case, a true nightmare)
* fan edits/remixes of commercial releases
* playlists & mix tapes
* mixed media releases
Each was eventually possible, but sometimes it took hours to figure out how to import a specific folder. Worse, after doing one festival it didn't necessarily make it easier to do the next festival. Even if I get to 100% imported, additional imports will still take thought.
This isn't an argument against it, I still think it's a fantastic tool. Just understand that the farther you stray from collecting commercial releases, the more of a struggle it is.
> * brand new indie label releases (bandcamp)
> * commercial albums variants missing from musicbrainz/discogs
I fixed those two by adding the missing releases to the database beets uses as its data source (musicbrainz.org), and importing the album in Beets afterwards. I still get notifications for edits to entries I contributed over a decade ago!
Can I ask what you choose to manage your library with today? I feel like streaming has made me stray so far from the joy (and pain) of library curation, and I’d really like to get back to it, I just don’t know what folks are using these days.
I've always struggled to get my classical CDs tagged in a way that makes sense to me. Apple has figured it out in their classical music app and I should probably see if I can copy what they did in my personal library.
Maybe worth looking at Roon for that? It’s not free but they handle classical music very well.
Everyone else is telling you to go update musicbrainz, and that's a sensible course of action for the first two bullets, but the much easier path is to import all these files with whatever metadata they have.
There is no canonical metadata for a fan recording of a concert or DIY CD-R, so you lose out on nothing by importing the files as they are today.
Once you're over the hump of the first import, beets is a fabulous tool for ingesting new music. It's well worth it.
> fan-recorded festivals (a special case, a true nightmare)
I've long enjoyed extracted audio from eg Glastonbury sets. I've only got a few that I particularly enjoyed and where the specific track was on youtube - is it that sort of thing? Is there a community of such reprobates?
There is a Bandcamp auto-tagging plugin for beets which should at least help with the first point: https://github.com/snejus/beetcamp
Fan recordings/edits/anything that shouldn't be on Musicbrainz just gets imported as-is, with maybe some metadata additions/tweaks.
> * brand new indie label releases (bandcamp)
> * commercial albums variants missing from musicbrainz/discogs
This is a great opportunity to fill in those blanks for those services :) I didn't have much to contribute to MB but did have a few albums to add.
>Fan recordings/edits/anything that shouldn't be on Musicbrainz
Those should be on MusicBrainz. There's even a bootleg release type for fan recordings/illegal copies, and official style guides for live bootlegs.
https://musicbrainz.org/doc/Style/Specific_types_of_releases...
Beets is amazing. The fact that it exists is a blessing for those like us who maintain our own music library.
I've been wanting to build my own Plex alternative for a while now. I've tried all the other tools out there, but Plex is definitely the least bad tool that let me enjoy my music without subscribing to Spotify and others.
I've already spent hours trying to figure out all the things that are required to make this new system. And it's unbelievably complicated. From parsing metadata to converting music, to understanding how deep and complex tagging work for music (yeah, it doesn't sound like it at first, but it truly is infinitely complex), I'm overwhelmed by how hard it would be to build a tool that compete with a combination of beets/iTunes.
(Only because I have an axe to grind) I really dislike "genre" and work hard to strip that metadata tag. It is so reductive. And flawed as well.
Do we assign a "genre" to an artist? Album? Song?
The band R.E.M.: "College Rock"? "New Wave"? "Alternative"?
(Wow, don't even get me started on all the ways you can further slice up "alternative" into "shoe-gaze", "twee", etc. It's, ha ha, naval gazing for the music intelligentsia.)
R.E.M.'s "Don't Go Back to Rockville"? "Country"?
I think "live" and "soundtrack" might be the only two interesting "genres".
A genre is a volume in song space.
More seriously, there’s no reason you can’t assign more than one genre to a song, or say that “it’s a mix of A and B”. You can extend the concept to albums and artists just as easily.
I’m not familiar with R.E.M., but on rateyourmusic.com they’re marked as alternative rock, jangle pop, pop rock, indie rock, neo-psychedelia, and folk rock. “Don’t go back to Rockville” is marked as Jangle pop, and the “Reckoning” album overall is mostly Jangle pop with some influences from post-punk and Paisley Underground.
You may not agree with these categorizations, but it’s a crowd-sourced website so you can go vote for different genres. You may also disagree with the existence of all of these genres, some of which I’ve never heard of myself (but as I said, I haven’t listened much to R.E.M. in general), but my point is more that if you’re familiar with them then you kind of know what to expect from the song.
I’d never heard “don’t go back to rockville”, but just from these genres you named to make your point, I already knew what it would approximately sound like. And indeed listening to it confirmed that.
Genres are fun to play with too. If something has breakdown and maybe some screams? Put 'core' at the end. Its all up to interpretation and it gives us some easy short hand to discuss music.
I don't think theres anything wrong with labelling genres, its good for describing things. If I say "I love post hardcore, does anyone have more of that?" its a lot easier than going "hear me I out, I like punk sounds but maybe not necessarily punk songs?" What about movies? Can books have a genre? seems like a silly thing to take issue with. Alternative is a huge umbrella and it means something very different now than it did in the 90's when it meant pavement or sonic youth.
'naval gazing for music intelligentsia' did a pitchfork writer run over your mom?
King Gizzard and the Lizard Wizard
Genre: Yes
Same, glad to know I'm not alone!
If you're using Navidrome or similar to stream your music then check out beets-alternatives [0]. It lets you sync (and optionally convert) your library or a subset of it to another location, in my case my music storage mounted with Rclone. It's especially useful if you need to have a different naming structure in your target directory for whatever reason. I like to keep each disc of a multi-disc album in in its own subdirectory but most streaming servers seem to prefer all tracks of an album to be in the same directory. With Beets-alternatives I can have a different naming structure for each collection vs. having to rename my primary collection to suit whatever streaming server I happen to be using.
[0]: https://github.com/geigerzaehler/beets-alternatives
One of my favorite beets projects is beets-flask.
It lets you set up fully or partially automated import pipelines with a nice web UI to manage any manual steps needed.
Importing is usually as simple as dropping a zip in a folder and the rest is managed automatically.
https://github.com/pSpitzner/beets-flask
I like beets' functionality but don't as much like "babysitting" it for long sessions when I have a bunch of new music to import. Especially because crashes are frequent and sometimes make it lose all incremental progress. Lack of progress bar on large imports is painful also.
It would be nice if a beets background worker could be kicked off when new music is detected to avoid the sequential nature of the commandline and see all the waiting tagging actions at once. This[0] is supposed to do that but it appears deprecated in favor of something else[1].
That being said, the "beets way" works pretty well past the import stage, so I haven't felt the need to move off it for local music.
[0] https://github.com/sentriz/betanin
[1] https://github.com/sentriz/wrtag
I spent a couple of nights working out how to configure beets to my liking and have loved it ever since. My “workflow” is now:
- buy album on Bandcamp
- download zip
- beet import {zip file name}
And beets extracts the zip, matches the album to musicbrainz, updates any metadata, and drops the files into the directory structure that I like (naming the files how I like them, too).
Very rarely an album will need some more attention, in which case I use Picard to fix it before using beets to import it.
A very similar workflow on my end, both beets as the main tagger/organizer and Picard to pick up whatever can't be processed through beets. Beets is amazing!
Isn't beets going to just overwrite whatever you did in Picard?
No, you can tell it to use the metadata as-is.
Sometimes there’s just weirdness though - for example recently I bought an album and the band included all the tracks from their previous album as bonus tracks. So I used Picard to split them into the 2 “proper” albums.
Well, one might use picard to find a musicbrainz release id, so that beetz has something to grab on to when importing.
I mean, you can just do that in the browser too. "Enter ID" allows you to enter the MusicBrainz UUID (or just full URL). You can even do in the command itself.
What I really want is a plugin that starts an icecast server with a given song as a root, and continues to stream songs whose albums/artists are within a certain reference distance of the root on discogs/wikipedia/etc.
So if I start on Guzzlemug I'll get some Blood Incantation, but maybe also some Pink Floyd.
Anything like this for movies/TV shows/videos? I'm familiar with tinymediamanager, for example, but I'd love something fast on the CLI...
Tried Beets once because it pairs well with Navidrome, it's pretty feature packed and exhaustive in what it does. Though after fiddling with it and realizing that it's more effort for my use case than I'd like I ditched it and now I don't really bother tagging. I hope to do the same thing for Navidrome too and find something to replace it with similar to KDE Elisa which makes it easy to make playlists on the fly and organize music around folders instead of tags.
Different strokes for different folks, that's not to say that Navidrome and Beets aren't amazing pieces of kit.
I love beets - the one thing I can't figure out is how to set the genre very wide.
I like having a small number of broad genres - Rock, Hip-Hop, Jazz etc - but the tagging comes up with hundreds of distinct genres :(
I assume lastgenre with canonicalization[0] enabled is what you need, along with count=1 if multiple genres are an issue.
[0] https://beets.readthedocs.io/en/stable/plugins/lastgenre.htm...
I think I'm using that already.
Limiting to one genre I don't think will fix it - what I want is to define the allowable values for genre, and then limit to one.
It's probably better with the limit one though!
I use lastgenre plugin with a short whitelist.
I have this problem too. I find it completely useless to have tags like genre=Post Rock Jazz Fusion" or whatever with basically one band in each genre.
The other thing I've never quite got right is how to deal with classical music and popular music with multiple pressings. A lot of the tagging structure seems oriented around popular music with just one pressing. But I have like 10 different recordings of The Planets and several versions of Red Hot Chili Pepper's Californication, for example.
I currently use OneTagger https://onetagger.github.io
It's more for adding tags before you add them to your collection. You can setup shortcuts to often used tags. Of course it can also rename and move files based on tags.
I then can auto create playlists based on those tags (with a different program)
How do you all handle FLAC/CUE releases? A problem I have is that I want to have processed/tagged tracks, but I also want to keep FLAC/CUEs. I end up have redundant and separate organized library and original data.
I, personally, split the flac. It sounds like you don't want to do that but though but it does remain lossless amd I prefer to see the tracks representing individually in the filesystem.
If anyone is looking at options in this space, I used to use Media Monkey for organising and curating my large offline music collection. It did things like metadata and album art management, album-level volume levelling, and would even reorganise the file structure of your music to whatever pattern you set.
I also loved that you could set up separate "libraries", so I could have metal and classical arranged by album, and EDM as a bunch of single tracks that are organised into playlists. Only downside is that it's Windows software.
I've tried to use beets a number of times and given up each time.
- beets can't delete transcoded files which have been deleted at source.
- beets can't re transcode existing transcoded files when the source has been modified.
- It's impossible to preserve the original directory structure when transcoding because it strips all path separators for "security".
I use a Bash script I've been maintaining for a number of years instead.
Having hit those first two pain points, I changed my transcode config to 1) run every time, and 2) use a custom bash script as the transcode command. The bash script keeps a plaintext list of files + their modtime and disk size, then only transcodes files it hasn’t seen before. Because it’s a plaintext list and relatively small, there’s not a terrible performance hit since it’s paged into memory.
Not at all saying this to dismiss your criticism though; absolutely would be great to have better OOTB options. Just putting it out for anyone who wants a workaround :).
I recently looked into beets, but it seems it’s focused on automation, is that correct? I often buy stuff that has just been released, and that’s not yet in any database, so no automation works.
My current workflow is download, unzip and manually tag (mainly genres, sometimes badly named artists/albums) with MusicBee (which gives me autocomplete for genres so I can reuse existing ones), and then copy the files to the server for Navidrome to pick them up.
Throwing this out here to see if beets would actually work well with what I want after all.
I use MusicBee for everything too and sounds like my workflow is the same as yours. I basically take whatever is tagged on the file straight out of Bandcamp and then manually follow Discogs-like rules for normalization of the artist name so the directory structure works out, plus adding iTunes compilation metadata to deal with the "various artists" issue, adding BPM, customizing genre and comments etc.
I think I started all this fussiness exactly because back in the old days when you synced to CDDB, you'd get somebody else's useless record label classification for a reissue or international release that obscured the original label, which in certain genres of music is quite important to be able to better categorize the music for auto playlists. Original year is also critical for auto playlists where you're looking for tunes around a certain era. I also have a vague memory of old CDJs or Serato or some damn thing not displaying the name I wanted so having to shuffle stuff around to Composer or Album Artist or something to make it work, and now here I am with custom-tagged all the things.
My problem is I was considering replacing all my 320k MP3s with FLACs, which I have for all my Bandcamp purchases and most of my CD rips (although not from Beatport and other online stores)... but I realized it was going to be absolute hell to try and match the untagged files that I downloaded and put straight into cloud storage with the tagged files I already have in the library. It would need some kind of heuristics to fuzzy match the files with what's already there, then retag them with my preferred tags from the MP3, then move the file into the same location the MP3 is, then move the MusicBee proprietary metadata (play count, add date etc) across, then delete the MP3. I keep thinking there has to be a program or a plugin for this, but seems like not, so for now I've just given up and decided that 320k is good enough, actually, which makes me wonder why I'm keeping all these FLACs around in the first place. Not like I'm starting the Library of Alexandria here, I just like music.
> actually, which makes me wonder why I'm keeping all these FLACs around
Sometime last year, I actually redownloaded all my BC files, and reripped all my CDs (had to re-do genres, but that was fine, I wanted cleaner genres anyway). It’s simply archival. Lossless means you can convert it to whatever file you might want in the future without loss of quality.
This made extra sense for my CD rips, because many of those were from the early 2000s and I made questionable quality descisions ;)
I'm wondering about diminishing returns, because up until switching to FLAC about 10 years ago I ripped all my CDs to 320k and thus only have about 20 files in my "low bitrate" auto playlist that are weird indie or bootleg things that I couldn't bring myself to delete for nostalgia reasons. Is FLAC really all that much better? Can anybody hear the difference? I don't want to spend months awkwardly moving thousands of files around just because it's more useful to a hypothetical future archaeologist version of myself with hearing that got better with age instead of worse...
That said, I wouldn't mind going back and retagging my genres in particular because one of the annoying things is that over the years my perception of the genre of certain tracks has changed, so it might be easiest to just roll back to ID3v1 "we got both kinds: house and techno" genres for the broad category and then cram subgenre keywords into the comment field instead... but it's been so long since I used CDJs that maybe all these hacks to maintain compatibility with different players are moot now. I saw that the latest and greatest DJ equipment just hooks up direct to online streaming services so I wouldn't be surprised if it also had a feature to sync everything to MusicBrainz as soon as you plug in a USB, which makes all the fussing around with legacy tags kind of pointless for a casual who mostly just listens or mixes at home.
320 vs FLAC: unless you are both a mutant and audiophile with the right equipment, you won't hear any difference at all. It's purely for archival purposes for me, that I have the "originals" or as close as possible.
Legacy tags: luckily not an issue for me, I only care about multiple (usually metal) subgenres and that my players show/filter them.
You can use the current tags in the media files and not use any metadata database. I have a simple scheme for organizing my collection, and can correct my metadata rather quickly, but these days, so I don’t even use beets.
Looks like a general case. I do the same a lot with Picard and Foobar, but beats can also auto tag based on file name and populate musicbrainz. Set library directory to that of navidrome so it will be coppied there on import.
If you add a lot of new stuff to your library, you'll often need to add them to MusicBrainz yourself. I use beets and I currently have added 2697 releases (2543 release groups) to MusicBrainz.
Beets is what got me into MusicBrainz. It's an incredible resource. To be fair it's not the easiest of things to get started with and the usability could be better (release drafts, anyone?) but it's efficient once you get the hang of it.
First: Thank you! Secondly: I wish more people did this. If you end up needing to manually enter the data, at least if you add it to a public database more people can benefit, which also makes it feel less frustrating.
I'm in the midst of a major music library overhaul and would not know how I'd ever get it done without Beets. For example, it's clearing out embedded images, fetching new hi-res artwork and verifying FLAC integrity, as I go through artist by artist.
If you are into that, that’s good, but that’s the exact opposite of making my life easier ;)
I organize everything into Mixxx.
It is tagged not only by genre, crates, some songs belong into more than one crate.
Also by mood, which I tag with colours.
And how much I like the song, which is by stars.
I tried Beets and it was very underwhelming in comparison =)
Correct me if I'm wrong, but different target users here :) Beets seems to be for consumers who want to organize their music collection, and while Mixxx can help with that too, it's mainly for music connoisseurs who play for others (AKA DJs). I'm not sure how well someone looking for the first could use Mixxx, the interface isn't exactly the epitome of user-friendliness if you just wanna organize then press play :)
You are correct in your appreciation.
Mixxx is best used with a DJ console, however for me it is also easily used as a player that automatically picks a song from some selected crates in Auto DJ mode.
So I'm in the mood for Salsa, I put that crate as the AutoDJ source.
Later I can change it to progressive rock, or 90's disco, and it will randomly pick songs from the selected crate or crates.
I can also do DJ things, like looping some sections or mashup some songs.
Beets crashes with a Musicbrainz connection error more than half the time, on my machine. How does anyone use it productively?
Auto-tagging is nice to have but it will screw up verification checksums. I would prefer having metadata in a separate DB and keep the files as is, unless I explicitly request exporting the metadata to the original files.
Beets can do this too!
The -C option to avoid copying files and the -W option to prevent writing tags (or set it in the config file)
It will still attempt to match and store the results in its DB for later writing to files, or moving, or querying.
For the data to be most useful, you will need a client that connect to Beets to get the data though, Im not sure how prevelant those are. You can use the web-ui plugin though.
> Beets can do this too!
This is the best summary of beets. It's wildly flexible and configurable.
It's a good tool. However, last I checked, it was not possible to run it in a one-shot stateless fashion, like, passing it a list of music files so it auto-fetches album art, lyrics and updates the very same input files.
> Relatedly, the -q (quiet) option can help with large imports by autotagging without ever bothering to ask for user input. Whenever the normal autotagger mode would ask for confirmation, the quiet mode performs a fallback action that can be configured using the quiet_fallback configuration or --quiet-fallback CLI option. By default it pessimistically skips the file. Alternatively, it can be used as is, by configuring asis.
Beets with this flag works relatively well for me when wrapped in a shell script, but I have spent a lot of effort trying to make it actually non-interactive.
I'm still not totally sure I got all the certainty thresholds right, I still sometimes get unexpected behavior when using Beets this way, so I agree that the non-interactive experience is lacking.
Been using this for several years now. It's definitely not for the average user. But nothing is quite so flexible.
Well yes, it's not that hard to use but then even using the terminal for an average user is complicated.
There is a webpage on beets website where they list all the functions and explain what it does. Very useful when you go back after half a year and can't remember how it works.
I've loved beets (and MusicBrainz Picard) for years. This bit from the beets docs has always stuck with me when organizing my library.
"An Apology and a Brief Interlude
I would like to sincerely apologize that the autotagger in beets is so fussy. It asks you a lot of complicated questions, insecurely asking that you verify nearly every assumption it makes. This means importing and correcting the tags for a large library can be an endless, tedious process. I’m sorry for this.
Maybe it will help to think of it as a tradeoff. By carefully examining every album you own, you get to become more familiar with your library, its extent, its variation, and its quirks. People used to spend hours lovingly sorting and resorting their shelves of LPs. In the iTunes age, many of us toss our music into a heap and forget about it. This is great for some people. But there’s value in intimate, complete familiarity with your collection. So instead of a chore, try thinking of correcting tags as quality time with your music collection. That’s what I do."
For physical media, Discogs is the way to go...
Thanks. I was looking for something like this.
Whatever happened to MusicBrainz Picard?
Nothing - it’s still getting regular updates.
> MusicBrainz Picard
I don't think it can be used as a CLI tool. It's mainly a GUI app. I've tested it in the past and it works fine too.
Been using with Claude via MCP to tag a bunch of old ripped CDs - fun with mixed results.
is Claude "listening" to the music in order to tag it?