Live data from Hacker News

The music classifying nightmare

blog.pkh.me

71–77 of 77 posts

Re: The music classifying nightmare

#71
post #31

Somewhat related but as I've been building a rails project I've been meaning to open source the song parser I've been building alongside it. It scans an mp3 and pulls out the artists along with the type of role they played on the song. Here's a quick gist I pulled from my model: https://gist.github.com/3680949 Some examples: Drake - The Motto (Jon Bellion Cover) => [["Jon Bellion", :cover], ["Drake", :original]] Davi…

This looks awesome. You should consider sticking it somewhere and giving it a name, so that I might find it 6 months from now when I'm motivated to fix my shitty Python script [1]. Also, a side question: is it normal/considered a best practice in ruby to monkey-patch built-in libraries like that? I know ruby has open classes, but I'm just curious how using them in this way is regarded. [1]: http://news.ycombinator.co…

> Also, a side question: is it normal/considered a best practice in ruby to monkey-patch built-in libraries like that?

No, it's not considered to be good practice. I think it's generally frowned on by more experienced folk.

However, ActiveSupport (which is part of Rails) does a lot of monkey-patching of the basic Ruby classes in this way, and that probably helps to perpetuate monkey-patching among newer developers.

Re: The music classifying nightmare

#72
post #15

You're making the problem a lot harder than it needs, or ought, to be. The most telling example, IMO, is the Aphex Twin one... > Oh, and his real name is Richard David James. What are you > supposed to use for the file system directories and files > name? His name? The most common nickname? Both? One file > system solution is to have symbolic links (do you link > Richard David James to Aphex Twin, or vice versa?). Fo…

> The default iTunes structure (Artist/Album/01 - Song Title.mp3) seems to work fine, for example. It only works fine for basic rock and pop (because even if there is a composer different from the interpreter, that's optional). It starts breaking for remix albums released under a given artist (the original composer) where one song may have been remixed with three different people, now you have to start infecting the…

    > where one song may have been remixed with three different 
    > people, now you have to start infecting the track names 
    > with the remixer.
For what it's worth, I don't consider that "infecting". It's really the only sane way to handle huge collaborative works.

There are always exceptions which break any categorization scheme. The point is to treat them as exceptions, ie. fold them into the 90% model as well as you can, rather than restructuring your model to accomodate for 100% of every conceivable artistic license.

    > And then you've got classical music, 
This one _is_ interesting, but I solved it (personally) when I realized I only cared about the original composer (eg. Mozart) in terms of "artist", and the minimum nomenclature to disambiguate movements, etc. in terms of "title". Trivia like the performing orchestra is perfectly well homed in the album title, or ignored entirely. I admit I'm only interested in listening to classical music, not cataloging it to some deeper academic purpose.

Re: The music classifying nightmare

#73
Rob Pike said it best when he quoted his friend:

   My late friend Alain Fournier once told 
   me that he considered the lowest form of 
   academic work to be taxonomy. 
   And you know what? Type hierarchies are 
   just taxonomy. You need to decide what 
   piece goes in what box, every type's parent, 
   whether A inherits from B or B from A.  
   Is a sortable array an array that sorts or a sorter 
   represented by an array? 
   If you believe that types address 
   all design issues you must make that decision.
Reference: http://commandcenter.blogspot.com/2012/06/less-is-exponentia...

Re: The music classifying nightmare

#74
post #44

Earlier quoted context omitted.

Interesting, so you have a way of making the relationship at the end. Now I could start nitpicking about how you decide to make the link to Aphex Twin and not his name (or another nick), and how would you make that decision for any similar cases. Note that I don't consider this issue the main problem, it's just one I hit a few times, and I wasn't able to select a correct solution.

Discogs tracks Alternative Nicks that artists use, and can help you link songs together. Here is Aphex Twin example: http://www.discogs.com/artist/Aphex+Twin Also, discogs will track which albums were released under different artist tags. Foobar+discogs tagger combination lets you pick, if you want to use most common general name (so all tracks are Aphex twin), or the alternative name that songs were released under (…

Same for MusicBrainz: 'aliases' http://musicbrainz.org/doc/Artist#Alias

Re: The music classifying nightmare

#75
post #30

I only go so far as sanitizing and standardizing my music collection through Tag&Rename (and I haven't found a good OSX equivalent to this yet sadly). It gets the data from Amazon in 98% of cases, adds the album art (which I like having on my player), etc. Then I store the files in: Artist/Album/Track# - Song name [- Artist name] The last is only there for soundtracks and other "Various Artists" type collections. Thi…

Genres are coarse-grained, arbitrary and (IMHO) mostly useless

They're as useful as you want them to be. They're just strings, strings which might be a way of grouping works just as ALBUMARTIST or YEAR might be.

If you want highly specific genres, use them. If you want very general genres, use them. If you want some general genres for areas of your music collection that is less populated, have a mixture.

All this data is available online.

Re: The music classifying nightmare

#76
post #60

There seems to be confusion between the filesystem and the metadata. The filesystem is for storage... it's only important to be able to group tracks together in small batches (releases - albums/singles/EPs) to be able to manage the files The metadata is for searching, grouping and locating in your music player. With that in mind, a lot of the problems he's cited vanish. I have ~84,000 tracks from over 6,000 albums. T…

Agreed. Although I appreciate the 'hacker sensibility' of using a hierarchical filesystem, such a structure is simply never going to cut it for music. There are too many opportunities for multiple tagging and too many areas that don't fit into the hierarchical approach.

In addition, depending on your chosen music player, practicalities dictate that changing file and folder paths is invasive and error prone - the file location is often a music player's 'primary key' for a given piece of music. Moving it around will lose associated data. It's best just to go with a real simple filesystem hierarchy of data that won't change, artist/album. I've written about this here http://www.blisshq.com/music-library-management-blog/2010/07...

Re: The music classifying nightmare

#77
post #44

Earlier quoted context omitted.

But that's not a problem, either. In my music collection I have, e.g. tags ARTIST=AFX and FILED_UNDER=Aphex Twin. Then when you make a playlist with your favorite music player, you can just sort things by FILED_UNDER, if you prefer. What's so hard about that?

Interesting, so you have a way of making the relationship at the end. Now I could start nitpicking about how you decide to make the link to Aphex Twin and not his name (or another nick), and how would you make that decision for any similar cases. Note that I don't consider this issue the main problem, it's just one I hit a few times, and I wasn't able to select a correct solution.

Sure, but the answer is you just make an arbitrary decision that feels right. Same thing with name ordering and the other issues you mention. There isn't much benefit to coming up with some elaborate system of rules for these things -- after all, the goal is to create a categorization that is easy for you to find things with, not to generate the timeless perfect metadata which all humans agree is correct.
Post reply on HN