It's been a long time coming, but I'm finally putting some thought into how automatic genre classification will work in
bliss. This blog post constitutes my current thoughts as to how genre classification will work. I'm hoping anyone
with comments or concerns will voice them in the comment section below.
What's the problem with digital music genre organisation today? The first problem that bliss will attack is a
consistency. I've already written about
easy it is for your music library to experience an explosion of genres. When your digital music is ripped from CD the
genre is typically populated from one of the free online databases. This gives you some information but, because
people decide to use the genre tag for different purposes and record genres in different ways you soon end up with an
inconsistent music library.
In my own library I have a number of issues:
- Genres recorded at different levels (e.g. some 'Rock', some 'Britpop')
- Completely incorrect genres (Let It Bleed was originally
categorised as Classical for me!)
- Misuse of the genre tag, for instance where artist names are re-populated in the genre tag
should appear within your music library, with the aim of achieving a consistent, navigable and useful genre organisation.
This also being bliss, development on this functionality will occur piecemeal, with small portions of useful functionality
being released little by little. Initially, I shall concentrate on genre consistency, rather than correctness. The features
described here may change with time as new abilities are added.
So how will genre classification work?Fundamentally, you will use a genre tree to specify which genres are allowed in your music library. That sounds a quite simple
solution to solve genre consistency, but I think it's quite powerful. Here's how the UI might look:
The 'Fill in missing genres' works as before.
If genre is missing for a given album, bliss looks it up online.
The 'Allowable genres' tree defines the allowable genres in your music
collection. The list will be far larger than the one shown
(obviously). I am thinking of using something like the AMG genre list, the
Wikipedia list or my own
fundamental music genre list
(with more specific
genres copied from the previous sources). Genres are laid out in a
hierarchy and any node in the hierarchy can be selected. By default
all are selected. Once these
selections are applied, as usual, bliss applies the assessment and fix cycle. I'll explain assessment first, as it's easiest.
If bliss sees an album with a genre that is not ticked, then it is marked uncompliant. That's simple!
Fixes get more complicated. The existing genre is looked up in the genre
tree. If it exists, bliss traces up the tree, parent by parent,
until the first checked genre is found. It then suggests a fix to change
the album to this genre. Initially this will be manual, as
normal. If a genre is not found, bliss suggests changing the genre to
whatever is in the 'When no match' dropdown. This will be one of
"Use 'Other'", "Use 'Unknown'", "Blank" or "Leave as-is".
Here's how the example above would be processed:
- If an album had the genre "Classical", "Rock", "Indie" or "Metal" it will be compliant
- If an album has the genre "Opera" or Ballet", it will be uncompliant and bliss will suggest changing it to "Classical"
- If an album has the genre "Grunge", it will be uncompliant and bliss will suggest changing it to "Rock"
- If an album has the genre "Heavy metal" or "Thrash metal", it will be uncompliant and bliss will suggest changing it to "Metal"
about the number of genres involved, and also whether the genre list I
will cover most of the genres people have out there. Still, nothing
ventured, nothing gained...
Some brief ideas for future functionality...
- Make the genre recategorisation automatic
- Allow the genre tree to be edited
- Support multiple genres
- Support multiple genre fields (some people use STYLE and GROUPING fields to accomodate different levels of genre)