Author Topic: Proposal: Extend 'Genre' hierarchy with 'Subgenre'  (Read 97420 times)


  • Guest
It looks like SpiderOak (where the files are stored) has some problems currently.
All my files there (also my skins) show up empty at this moment.


  • Guest
Let's just wait a while. I'm sure they'll have it fixed by tomorrow.


  • Guest
Doesn't this defeat the purpose of tagging altogether (i.e. scrapping tree indexing)?

Isn't a more efficient and robust solution, simply to create the tree in the Library Explorer through a custom sort order by permutating the genres in the genre tag? Then you could simply add your genres and subgenres as multiple genres tags, and see them nested in Library Explorer, rather than toying with this endless taxonomical exercise ;)


  • Sr. Member
  • ****
  • Posts: 7936

This wish is still alive and getting support.
A recent and related thread on this matter:

Before putting more thought and effort in it, it would be good to know if Steven is even in the remotest open to considering implementing something like this?


  • Administrator
  • Sr. Member
  • *****
  • Posts: 34410
Currently you enter a genre tag and based on defined mappings, MB derives the genre category based on the relationship that is mapped. Because the relationship is mapped in the configuration, the user doesn't need to do any more than enter the genre in a file tag.

If a sub-genre field is added, what are you proposing MB does with it?
You now have a sub-genre and a genre that are manually entered. MB could enforce some validation on the relationship between the two fields or derive the genre when the sub-genre is entered.

But in terms of filtering, simply by having genre in one column of the column browser and sub-genre in the next column, MB derives the relationship based on the values actually in the file tags. Selecting a genre shows all the sub-genres in the column browser. Similarly for the library explorer

So unless you are seeing something more, I am not really seeing the value in this. You can already create a sub-genre tag.

If you are proposing the user only enters a sub-genre and genre/ genre category are both derived based on configuration file then I feel that's a step too far for most users ie. they have already entered genre in their files and having the predefined hierarchy may well be too constrictive or not something the user agrees with.


  • Sr. Member
  • ****
  • Posts: 7936
That's all pretty much true, but it is mainly describing how it can work after you have all this thought well-through, set it up, and have entered all genres and sub-genres for the files in your library.

The main objective of this request is making it easily accessible, easier to manage, and more inviting to use, also for less-savvy users.

One obstruction that makes sub-genres not an easy and welcoming feature at this moment, is already at the stage of entering them.

You might have a list of sub-genres you want to use. (you will definitely need one if you want the slightest chance of some consistency).
Currently for every track or album you would want to enter a sub-genre for, you would need to consult such a list. That is not a fun thing to do every time, and one of the reasons I stopped (paused) pursuing this, and probably one of the most important reasons for many others not to pursue this, even if they would really like to.

The second obstruction is that MusicBee has no understanding of sub-genres. When using a custom tag for it, MB will allow any sub-genre to be entered in relation to any genre without any restriction, warning, or any 'awareness' of relationships.
There would be no indication at all that e.g. it would be strange to enter 'Late baroque' as sub-genre for a Hip-hop track.

All you can do is either enter a sub-genre manually from 'your list', or choose from some entries from a pop-up list that might contain sub-genres that were entered earlier before. But there is no filter, restriction, comprehensive list, or suggestions for sub-genres that have a relation to, and falls under the concerning genre.

The wish/proposal for the above would be:

To be able to insert (paste) a list of genres, sub-genres, and styles┬╣, or have it integrated in MB to start with.
  ┬╣ 'Styles' is probably more simple, because it would not depend on relations, since for example 'industrial' or 'avant-garde' may be used across many different genres.

Having it easy to find, select and enter genre, sub-genre and style tags for a track or album.
For that, possibly some dedicated genre/sub-genre/style panel would be very helpful.
To give some rough idea, maybe something like this mock-up. (which I also posted in the other thread) :

In my imagination this would work something like this:

You have an album or a track that you want to populate with genre and possibly sub-genre and style.

1. You begin selecting a genre category. (that should be easy)
2. Then from the drop-down menu you must select one of the genres that is presented there. Only relevant genres to the selected genre category are displayed.
3. Save and exit, or go to the optional next step.
4. From the sub-genre menu, select one of the displayed (and already filtered) sub-genres of the genre selected in the step before.
5. Save and exit, or go to the optional next step.
4. From the Form/style menu, select one (or more) item(s). The contents of that menu will not depend on earlier selections and has the same items every time.
5. Save and exit.

Since many users will want to keep using the current implementation for genre, it would probably be best to have it optional to activate such an 'advanced sub-genre/style mode'.
At activating it you could then choose the mapping for sub-genre (most likely a custom tag) and 'style' (the 'keywords' tag would be a likely candidate, or else a custom tag)
Last Edit: January 23, 2017, 06:10:46 PM by hiccup


  • Administrator
  • Sr. Member
  • *****
  • Posts: 34410
i'll answer in a few days time. Anyone else please chip in if you want to add anything


  • Sr. Member
  • ****
  • Posts: 752
Thanks for the write-up hiccup!

My few cents as I would love more granular / better genre cascading / exploration & librarian features (for which MusicBee already is the best I have tried) ;)
I would suggest a more open approach as I do not think we (or anyone...) can define & setup a universally applicable & true genre category/genre/sub-genre map that works for everyone.
Also, I from a subjective stand-point (although I get the argument that it should have a pretty GUI and be pre-setup & accessible for the average user) am not convinced at all that the center piece to set genre values should be a GUI with deterministic options as I do actually prefer MusicBee's current modus operandi to assigne genre values as quick as possible giving more power to the user - which is, in my understanding - you type and it autocompletes based on all genres you already have in your library (i.e. which are important to you...), and have an XML for categorization & cascading (which is possible as is, but not quite fleshed out).

My suggestion would be to streamline the current approach and have everything defined in an xml (preferrably its' own, eg  Configuration_Genres.xml ) but, with clearer cascading syntax. eg:
Instead of hard-to-grasp hierarchy definitions per line, such as:

<Genre Name="Modern" Category="Classical"/>
<Genre Name="Modern (1830-1930)" Category="Modern"/>

Why not structure it slightly differently, so it's easier to cascade things & easily visualize it in a hierarchical / cascading way, and by removing the 'category', enable the user to go as deep as you want to. eg:

<Genre Name="Classical" SubGenres="Baroque", "Classical (1730-1820)", "Modern", "Romantic (1815-1910)"/>
<Genre Name="Modern" SubGenres="Modern (1830-1930)", " 20th Century", "Contemporary", "Minimal"/>

That way one could strap on a few neat things:
- have global genre definitions easily save / changeable - i.e. on MB website, or with the standard distribution, offer genre xmls that follow discogs / musicbrainz / genre-names/-hierarchies

- once there are cascading/hierarchical genre definitions (no matter if 2 or 10 layers deep), one could do neat visualizations of the users library, eg have click able point clouds similar music genealogy visualizations such as 'SONITUS - The Universe of Electronic Music':

- have a genre xml GUI editor to allow people who prefer GUIs to edit the xml that way, which could be presented free-form, AND / OR, as hiccup suggested, in a deterministic hierarchy, i.e. you need to define your whole genre hierarchy to get access to a given genre tag.

A few related things:
- it would be great if middle-click filtering would work for multivalue fields such as Genres! THis has been requested elsewhere as well.

- It would also be great if one could alter the metadata field the genre is derived/read from on the fly...
Let me explain - I wouldn't mind, or actually prefer to derive genres from different sources and re-route them to different tags; my use case: I use the official 'genre' field to populate with genres that are valid/important to me personally (one has to strike a balance between being exact enough and set a multitude of tags [for programs that do not have cascading genre definitions...], but one also has to be careful to not to assign too many values either otherwise the song appears everywhere... :/ ). And, since it's easy to derive - I also populate custom fields with Discogs Genre/Style values. Which I would find very interesting to explore via a hierarchical tag clouds/genealogy visualizations. And, given the option, and it's feasibility, I wouldn't mind adding another genre value, i.e. from musicbrainz. So in therory I would/could have 3 separate genre fields for 3 different genre mapping xmls...
So with the data present, I could in theory switch to discogs genre/style definitions if MusicBee would be able to switch its' genre read fields (i.e discogs uses Genre as well as 'Style' in custom fields named "DISCOGS_GENRE" and "DISCOGS_STYLE" thanks too foobars' discogs extension).

- preference option to aucto-complete genre typing from genre_definition.xml instead of index of on-file-data (as is atm - which I prefer btw, but that is subjective)

Once you've collected all the opinions & feedback, would be great to hear what your conclusion is Stephen and what will be implemented.
Last Edit: January 23, 2017, 09:51:46 PM by alec.tron


  • Member
  • Sr. Member
  • *****
  • Posts: 3840
  • MB Version: 3.6.8878 P
If this will solve the current problem of not being able to have the genre 'Pop Rock' linked to both genre categories 'Pop' and 'Rock', then it's a +1 from me as well.
MusicBee and my library - Making bee-utiful music together


  • Sr. Member
  • ****
  • Posts: 752
Hah, I thought that at the back of my head... 'what if I were to assign the same string value to multiple 'subgenres' living under different 'genre' groups in that scheme...' and all I could think of is = confusion & clusterf*cks.
Although I was thinking more along the lines of same subgenre string for 2 different meanings (i.e. 'Contemporary' under 'classical', as well as under 'Jazz' for example )... so the opposite of you intentionally wanting to have the same subgenre string live in 2 different parent genre groups... but, good point...!
Unfortunately I don't have an answer for this atm (other than the fact that genre strings should be unique... :D... so iunstead of 'Contemporary' in the above example, have 'Contemporary Classical' and 'Contemporary Jazz').
But hey, that's why we're having a dialogue here, right ?
Last Edit: January 24, 2017, 01:38:08 AM by alec.tron


  • Sr. Member
  • ****
  • Posts: 7936
If this will solve the current problem of not being able to have the genre 'Pop Rock' linked to both genre categories 'Pop' and 'Rock', then it's a +1 from me as well.

Not saying this would not be possible after something like this is implemented, but I did not specifically put such in my proposal.
The reason being that I feel that something like that breaks some basic rules in having an tree-like organized hierarchy.

Your pop/rock argument/problem is of course very valid, and I also encountered the issue of how to handle that, and I tried to solve it at the basis.
Since for the vast majority of pop and rock music, it is very difficult to make a sharp distinction between those two, I chose to have "Pop/Rock" as a genre category.
As genres the proposal contains "Pop", "Rock", "Pop/Rock", and they will all fall under the Pop/Rock category.


  • Global Moderator
  • Sr. Member
  • *****
  • Posts: 10696
I have not had a lot of luck getting my head around genres, so I don't have much to contribute to the main discussion.  I use the genre field for everything, including instruments and keywords, because genre categories are handy for grouping all kinds of things.

A better GUI for maintaining genre/genre category relationships would definitely be welcome.  I've taken to using a spreadsheet for mine, but then I have trouble keeping track of whether I've updated mb with the latest changes.  Improvements could include:
*bigger window
*easily see how many genres/categories there are
*filtering to a specific category (including genre subtotals)
*point and click adding or removal a la the tag inspector
*date of last update

Also, for things like scraping genres from, I think an exclusion list is more helpful than an inclusion list.

What I would find super helpful would be a way to see and select genres from many different sources at once:, Wikipedia, all music, discogs, etc.  But I know that's not really feasible.
MusicBee Wiki
Use & improve MusicBee's documentation!

Latest patches (3.5/3.6)
(Unzip and overwrite existing program files)