Sometimes, in certain niches open source software dominates and really is better than the closed source paid software counterparts. Don't believe the (marketing) hype!
Picard is the best. Beets is a little too opinionated.
I've recently started using both though. Picard does the initial discovery and tagging. Beets then adds other features on top like syncing my collection to MusicBrainz, adding lyrics etc.
You can find a brief description of my workflow and some tagger scripts at https://github.com/hashhar/picard-beets-config
I've been there. Got a bunch of files overwritten in the very beginning when trying to create my taggerscript because their names ended up being the same within the same structure.
Thanks for reminding, I'll file an issue against Picard and see if it's possible to add some kind of safety toggle to prevent overwriting.
EDIT: My workflow to reduce chances of file overwrites is to create a staging directory from where Picard can read files and keep the destination directory something else entirely.
So I have something like D:\Music\_TO_IMPORT where new RIPs land (or anything I want to re-import) and D:\Music\Collection which is where Picard writes it's output.
One thing I have seen in mp3Tag but not in others are the easy and powerful batch-processing features (with preview!), somewhat like a DSL.
Want to rename and move all your files at once? go for it. Want to extract Metadata from the file/foldernames? just do it. There are spaces in those filenames but you want them to be underscores? no problem. Remove or add leftpadded zeroes to track numbers? done.
Sadly its only available for windows.
Just to note though, Its more of a tagger than a library management tool. And that is fine, it means it's not opinionated. You can do whatever you want.
There are commits pretty frequently but yes no new releases have been cut it seems. I contribute in my spare time as and when I find annoyances.
I'll check with the maintainers if there's some reason for the hold up.
I use the tools in foobar2000 www.foobar2000.org which are extremely flexible. Not having a separate media manager removes a lot of mental overhead
The fact that Beets intro video renames the MIA album to a folder literally called "____ __ Y __" worries me as to whether its defaults have any level of sanity
MediaMonkey pretty much requires the paid version for serious use. But a) there is a lifetime license (which I bought 14 years ago) and b) new releases are infrequent, they are now at the 5th version in 20 years, so even buying a single version is cheap.
It’s an extremely powerful organizer with scripting and extensions.
A caveat: I just learned that Version 5 was released, a major rewrite, I only checked out the beta 2ish years ago and can’t speak of the quality of this version.
Happy user of Ex Falso here. I agree with your comment regarding gui: I absolutely require a way to verify what these kinds of operations will be doing to potentially thousands of files, and cmdline applications are thoroughly unsuited for that, if they even have functionality like that, which they almost never do.
Picard is great except for one thing - its performance doesn't scale linearly with the number of files in your library. If you point it at a large library, it slows to an unusable crawl.
I don't see why the scan rate should change with the number of files in your library - it really should be fixed.
Just gave Picard a try. GUI takes awhile to get a hang of, but love the acousticID search. I might switch away from EasyTag for this--the fact that it pulls down album art is a great bonus.
I like beets, but sometimes you need to clean up the tags. A long time ago I made a curses based tagger where you can clean up tags. I still use it today and imo, It's the best tag editor on the market!
Personally I don't like depending on musicbrainz or other online sources; any album that enters my collection I manually (and tediously...) tag via information found on discogs and other sources. I get that this is not... a typical desire, but, for anyone else who came across this post and thought "cool! I like music tagging!", other things worth mentioning are the really useful `eyeD3` utility [1] and `exfalso` [2] (which is from the same the `quodlibet` media player project, which I have found handles large libraries very well!).
Maybe someday I will relax my meticulousness enough to use online sources for automatic tagging... :)
If possible you can help other lazy people like me by adding album art and correcting the information in the MusicBrainz or Discogs catalogs.
It's very difficult to find print media nowadays and so all the liner, covers and booklets never get seen by people in the age of streaming music. Music is so depersonalised in streaming. I used to open the booklet and liner notes while putting on an album and it was a nice way to enjoy the album with some context.
I do the same, except I edit the information on musicbrainz (including adding album art) and then use that as the source of data. That way I'm contributing to the database and making sure my tags are perfect.
I also do the same for every album that enters my collection and I share a similar distaste for getting info directly off of online sources. Rather than an auto-tagger I've actually thought about writing a tag linter: something that checks that every track in my library is tagged according to my guidelines, maybe even reference online services for reference to check that there's no albums with missing tracks or that there's no typos, or that every track has cover metadata, and so on.
This almost makes me want to give up streaming services and go back to managing a music library! I would have loved to have had this ~10 years ago.
And if something like this exists for managing photos...it's a complete mess with Apple's file naming conventions when you a) switch to a new phone or b) have more than one phone (i.e. family members whose photos you manage). I'm sure I've lost a few photos over the years to an errant file clobber.
I use beets and I use Rekordbox to play music from my controller for DJ'ing. The problem I had was how to use the tags and other fields including custom ones I made from beets in Rekordbox. I made a plugin that takes a template and applies it to the `comments` field of the music file which I can read anywhere.
This joined with a few other plugins allows for really great dynamic playlist building. Then when I'm playing music I can effortlessly choose songs to play together without necessarily even remembering what the song sounds like before starting.
> I can effortlessly choose songs to play together without necessarily even remembering what the song sounds like before starting
Oh, no... The art of djing is playing the right track at the right time, if you drop a track that you don't really know, even if based on previous processing of it, you're no different than an recommendation engine...
Long live the real djs that really know their library, and play tracks consciously depending on context.
That assumes there's no mixing involved to call it a recommendation engine. I just don't have time to know all songs from beginning to end by title alone anymore or to have a curated playlist ready for every occasion so it helps me find "recent songs I rated highly and downloaded within the last month" or find "a song with a vocal and in X,Y or Z key of a certain genre". I don't want to clash two vocal songs together by accident or I want to be aware of some other note I left on a song before I cue it so I can filter more easily.
I ripped my ~1000 cd collection before I moved and downsized and between using EAC to extract the music and just mass dragging and dropping the files to Picard to fingerprint and rename to my specs was fantastic.
My issue with beets was the musicbrainz API was severely rate limiting and slow. I fixed this by running my own MB database using linuxservers docker container which has been discontinued. One thing I did was write a custom script which would identify any missing media from artists who I had other music from - this helped me discover music I wasn’t aware of and was reasonably good at finding new albums rather than me manually googling each artist. Alas with the death of the docker container, I can’t do this anymore.
Has the rate limit constraint of MB changed in recent years?
I'm not sure if using the Picard app has some kind of magic API whitelisting for the client going on or not, but I'll drag entire folders with 50-100 disorganized albums to the app and tell it to fingerprint everything and I've never had an issue or gotten a rate limit / API error.
Many products listed in the discussion here. Any of them any good for classical music? The usual metadata of Artist-Album-Song fails very short when trying to index Vivaldis arrangement of Corellis variations on the "La Follia", from the "Baroque Fever" CD with Peter Spissky, Bjarte Eike, Tom Pitt, and Allan Rasmussen. So far I am using a regular file system, with directories full of symlinks for playlists, and a little script to randomize the lists, while keeping parts of the same piece together.
I was also hoping there would be a new release soon, since I have to run beets in pyenv due to the dependency issues, but it sounds like the developer is busy in real life.
Does something like this help for increased categorization? I have a band where we record our rehearsals and so it kind of obliterates the old Song/Artist/Album style of categorization. We add things like Session/Rendition, and want to look up "songs by session" and "songs that Steve played on in January" and things like that. We eventually started playing with Filemaker of all things, but I wonder if there's something easier and more web-based, without having to create a whole new custom web app from scratch.
There are some plugins that allow you to customize your library. The "Inline" plugin is very helpful with specifying custom template fields. This allows you to base your file organization on other things. That should allow you to create folders for session-dates and things like that.
There is also a plugin that allows you to add keyword tags to files. I haven't used this one though, so I can'
t really say if it will be useful to you:
https://github.com/igordertigor/beets-usertag
Beets is amazing and comes with great defaults. I wrote code recently to generate CUE sheets from YouTube mixes[0] and beet imports it nicely and easily.
I believe you can do this with beets. I have many fields for labeling songs by characteristics or personal preferences like `rating` then there is a plugin for smart playlists that let you define library queries and turn them into a playlist.
Others are right though the initial set up can be daunting though.
I gave up on iTunes (and never liked streaming) and used this for a while - it's extremely nice software, and perhaps as importantly, their discourse (https://discourse.beets.io/) is great for getting help. I eventually stopped using it, in the name of simplicity, as my import rate is low, I'm fine with organizing my music directory myself, and I can edit the tags with ncmpcpp (or ffmpeg if scripting things - that's the most useful metadata editor I've run across so far, despite the fact that you have to copy an entire file to change the metadata).
I recently pulled an old external HDD out of storage and recovered most of my old collection (with the help of SpinRite). My collection is mostly albums I ripped myself into FLAC and OGG, and combined with a decent set of cabinet speakers I picked up at an estate sale and an inexpensive stereo amplifier the quality of sound is worlds better than streaming. The dynamic range especially of classical and opera is something that's missed with streaming services.
Can someone recommend a dead-simple music library for a user whose technical skill level prevents them from using the web? This would be for Apple products, preferably cross-Apple-platform (iPad, Mac, iPhone).
I don't even want GUI elements to ignore; they just cause confusion. Just sort music by track name/album name/performers, and play/pause, and that would be optimal.
Better would be something that integrates with some streaming/download service, so the user can also easily find and play music they don't already own.
Initial setup takes some skill (installing software) but after that it's dead simple.
1. Install a media player that supports Youtube-DL; most mpv-based players (like SMPlayer/SMTube) support this.
2. Install an "open in MPV" browser addon.
3. Just dump all your music in your Music folder and open the media player in that folder.
Now you can list tracks and sort them, and you can open a Youtube/Soundcloud/etc link to stream. No need to sign up for a service, manage a username/password, etc.
Plus, you can use an SMPlayer skin that hides everything except the controls you want.
Just click a desktop shortcut then play/pause/shuffle. If you know the controls on a boom-box or remote, all you'll have to learn is sorting.
Absolutely, and I say this as someone with tons of custom ripped music in various esoteric formats from 15+ years of managing my music digitally (and a 5 year stint or so in the iTunes world).
If you're on Apple hardware and you just want music stuff that works, use their software. It makes the easy things incredibly easy.
Agreed. Although I echo another commenter about wanting real tagging functionality in a manager. Also Music app has some ongoing bugs that just seem to never be fixed, the main one for me related to embedded artwork.
For quickly tagging / getting artwork for random stuff like individual songs ripped from YouTube I use Yate’s [0] Discogs Wizard. It’s very configurable and fast to use once you set things up.
Edit: will add that Yate is actively developed and I only remember paying for my license once. I would happily pay for upgrades given its utility over the years.
Beets combined with MusicBrainz Picard is the killer music organiser.
Picard can perform tagging, cover art, filesystem organization and fingerprinting of untagged files. Beets can then add juice on top with lyrics, smart playlists, last.fm integration, deduplic ation etc.
Beets is great! Unfortunately there there are a few things that prevent me from actually using it:
* emphasis on albums -- most of my songs are singletons, and beets doesn't have good support for this use case
* lack of a sophisticated tagging system
* MusicBrainz is given too much priority by the autotagger, and the Discogs plugin has been somewhat neglectedd
* technical debt in the code base -- I tried to make a PR to fix some of it, but I wasn't willing to put in the extra work needed to make it Python 2 compatible
As for a tagging system: Here's a comment I made in another thread a few months ago. Curious to get some feedback on the idea here!
--
My music library has grown exponentially in the past year or so, due to boredom during covid, and I've come to the conclusion that playlists (as in, static lists of music files that you need to update manually) are functionally useless for large libraries.
What I've been looking for, but so far haven't been able to find, is a system that creates playlists from queries to my music database, based on tags I assign to individual songs. Even better if I can use a logic programming / query language like Datalog to help simplify tagging! For instance, if I have songs with the following tags:
(Song 1) japan 1971 japanese jazz funk fusion female
(Song 2) japan 2004 instrumental math-rock
(Song 3) japan 1983 japanese enka female
(Song 4) korea 1983 japanese rock male
(Song 5) brazil 1973 spanish jazz instrumental
(Song 6) mali 1979 blues rock folk tuareg
(Song 7) algeria 1974 french folk
I should be able to define logic rules that make tagging easier. Ideally, the tagging system should automatically write any deduced tags as metadata for the original files (for compatibility with other music players), with some way to keep track of which tags were added automatically vs manually, in case the deduction rules change.
asia(x) :- japan(x) OR korea(x) or ...
africa(x) :- algeria(x) OR egypt(X) OR ...
latin(x) :- mexico(x) OR brazil(x) or ...
rock(x) :- math-rock(x)
etc
I should be able to create playlists from the following queries that automatically update themselves when I add new music:
(playlist 1) ?- language(x,"french") AND region(x, "africa") AND (1960 < year < 1970)
(playlist 2) ?- region(x,"asia") AND genre(x,"rock")
Apologies for the inconsistent syntax, but hopefully you get the rough idea. Does anything like this exist? The built-in Rhythmbox music player for linux has decent support for saving playlists based on tags, but there's no built-in system for logic programming based on tags.
Beets is great and powerful but if you overlook something it's easy to mess up your library, but any serious music collector (hopefully) has backups.
Other (GUI) alternatives I've tried:
MP3TAG (free) https://www.mp3tag.de/en/ I didn't see much value over using Picard.
Bliss (paid) https://www.blisshq.com/ Really nice, but was way too slow for me.
MediaMonkey if you're on Windows https://www.mediamonkey.com/
Sometimes, in certain niches open source software dominates and really is better than the closed source paid software counterparts. Don't believe the (marketing) hype!