| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | ||||||||||||||||||||||||||
2 | If you downloaded this table as an .xlsx file and are NOT using an English-language version of Excel, the formulas may not be created automatically, and the cells may display an error: #NAME? For example. In that case, open the “Replace” dialog in Excel and replace TEXTJOIN with the language of your Excel version. Don’t forget to select “Entire workbook” as the replacement range. There are a total of ~750 replacements. | |||||||||||||||||||||||||
3 | ||||||||||||||||||||||||||
4 | ||||||||||||||||||||||||||
5 | ||||||||||||||||||||||||||
6 | ||||||||||||||||||||||||||
7 | ||||||||||||||||||||||||||
8 | ||||||||||||||||||||||||||
9 | Description: | |||||||||||||||||||||||||
10 | ||||||||||||||||||||||||||
11 | This sheet lists all genres listed on /genres as of August 22, 2026. If a genre has a subgenre or is a subgenre itself, it is grouped accordingly. The groupings are based solely on parent-subgenre relationships and do not take influences into account. The nine major genres (classical, electronic, folk, jazz, hip hop, metal, pop, punk, and rock) each have their own page in this sheet. Genres without a origin assignment and genres with fewer subgenres share a page, as do genres with a origin assignment and their parent genre/subgenre relationships. | |||||||||||||||||||||||||
12 | ||||||||||||||||||||||||||
13 | ||||||||||||||||||||||||||
14 | ||||||||||||||||||||||||||
15 | ||||||||||||||||||||||||||
16 | industrial | death industrial | In the table, everything to the right of a genre is its subgenre, and everything below it up to the next entry is its subgenre. “Industrial” is the parent of everything, because everything else is to its right and nothing is below it. “Death industrial” is just a subgenre, because nothing is to its right and the next entry is immediately below it. | |||||||||||||||||||||||
17 | electro-industrial | dark electro | aggrotech | |||||||||||||||||||||||
18 | post-industrial | ebm | new beat | hard beat | ||||||||||||||||||||||
19 | epic collage | |||||||||||||||||||||||||
20 | martial industrial | |||||||||||||||||||||||||
21 | power noise | |||||||||||||||||||||||||
22 | ||||||||||||||||||||||||||
23 | “Electro industrial” is the parent of “dark electro” and “aggrotech.” “Post-industrial” is the parent of everything to its right (EBM, newbeat, hard beat) and everything below it (epic collage, martial industrial, power noise), because nothing is listed below it. The colors are for reference only. | |||||||||||||||||||||||||
24 | ||||||||||||||||||||||||||
25 | ||||||||||||||||||||||||||
26 | ||||||||||||||||||||||||||
27 | A brief background and tutorial on this spreadsheet, along with rdswift’s “Genre Mapper”: | |||||||||||||||||||||||||
28 | ||||||||||||||||||||||||||
29 | I created this spreadsheet to sensibly limit the number of genres that MusicBrainz Picard suggests. For example, if I’m not particularly fond of “industrial,” I don’t need 12 tags in my music collection just to describe a handful of industrial songs. But if I use *industrial*=industrial, I only catch 5 out of 12 entries in the parent genre, which means that 7 entries are still being used. Funnily enough, there are actually 12 entries containing “industrial” at this point, which means I’m pulling 7 tags from other genres and thereby misclassifying songs. With this sheet, I have a good starting point for limiting “genre spam” where I don’t want it. | |||||||||||||||||||||||||
30 | ||||||||||||||||||||||||||
31 | ||||||||||||||||||||||||||
32 | ||||||||||||||||||||||||||
33 | ||||||||||||||||||||||||||
34 | ||||||||||||||||||||||||||
35 | ||||||||||||||||||||||||||
36 | industrial | death industrial | industrial | (^|;\s*)(industrial|death industrial|electro-industrial|dark electro|aggrotech|post-industrial|ebm|new beat|hard beat|epic collage|martial industrial|power noise)(\s*;|$)=industrial | ||||||||||||||||||||||
37 | electro-industrial | dark electro | aggrotech | electro-industrial | (^|;\s*)(electro-industrial|dark electro|aggrotech)(\s*;|$)=electro-industrial | dark electro | (^|;\s*)(dark electro|aggrotech)(\s*;|$)=dark electro | |||||||||||||||||||
38 | post-industrial | ebm | new beat | hard beat | post-industrial | (^|;\s*)(post-industrial|ebm|new beat|hard beat|epic collage|martial industrial|power noise)(\s*;|$)=post-industrial | ebm | (^|;\s*)(ebm|new beat|hard beat)(\s*;|$)=ebm | ||||||||||||||||||
39 | epic collage | |||||||||||||||||||||||||
40 | martial industrial | |||||||||||||||||||||||||
41 | power noise | |||||||||||||||||||||||||
42 | ||||||||||||||||||||||||||
43 | (^|;\s*)(post-industrial|ebm|new beat|hard beat|epic collage|martial industrial|power noise)(\s*;|$)=post-industrial | |||||||||||||||||||||||||
44 | ||||||||||||||||||||||||||
45 | Since I'm a lazy guy, I've set up two tables on each page. The left one lists the genres. The right one lists the genres that are parent genres, with the completed expressions to copy right next to them (black box). Just click on them, copy the value, paste it into the genre mapper, and you're done. | |||||||||||||||||||||||||
46 | ||||||||||||||||||||||||||
47 | ||||||||||||||||||||||||||
48 | industrial | death industrial | industrial | death industrial | ||||||||||||||||||||||
49 | electro-industrial | dark electro | aggrotech | electro-industrial | dark electro | aggrotech | ||||||||||||||||||||
50 | post-industrial | ebm | new beat | hard beat | post-industrial | ebm | new beat | hard beat | ||||||||||||||||||
51 | epic collage | epic collage | ||||||||||||||||||||||||
52 | martial industrial | martial industrial | ||||||||||||||||||||||||
53 | power noise | power noise | ||||||||||||||||||||||||
54 | ||||||||||||||||||||||||||
55 | If the goal is to “combine” categories without any overlap, it’s relatively simple. Just copy the underlying subgenres and paste them into an expression—that’s all. Personally, I use: (^|;\s*)(parentgenre|subgenre|subgenre) (\s*;|$)=parentgenre (^|;\s*) and (\s*;|$) serve as anchors and ensure that the search term must stand alone. This prevents, for example, “celtic folk” from becoming “folk folk” when “celtic” is replaced by “folk.” In this case, you can simply use the expressions from this table. | |||||||||||||||||||||||||
56 | ||||||||||||||||||||||||||
57 | ||||||||||||||||||||||||||
58 | ||||||||||||||||||||||||||
59 | ||||||||||||||||||||||||||
60 | ||||||||||||||||||||||||||
61 | industrial | death industrial | ||||||||||||||||||||||||
62 | electro-industrial | dark electro | aggrotech | |||||||||||||||||||||||
63 | post-industrial | ebm | new beat | hard beat | ||||||||||||||||||||||
64 | epic collage | |||||||||||||||||||||||||
65 | martial industrial | |||||||||||||||||||||||||
66 | power noise | |||||||||||||||||||||||||
67 | ||||||||||||||||||||||||||
68 | If there are overlaps when combining genres—as in our “industrial” example, where you also want to keep “electro-industrial” and “ebm” as genres—you can also use the expressions in the table. However, you must first add the subgenres to the Genre Mapper, then the parent genres. Additionally, the subgenres must be removed from the expressions of the parent genres. In our example, I first copy “ebm” and “electro-industrial” into the Genre Mapper, and place “industrial” below them. Then I remove “ebm” and “electro-industrial” from the expression for “industrial.” (If you follow the steps I suggest below, you won't need to delete any subgenres from the expressions. But you still need to group the subgenres before the overarching genres.) | |||||||||||||||||||||||||
69 | ||||||||||||||||||||||||||
70 | ||||||||||||||||||||||||||
71 | ||||||||||||||||||||||||||
72 | ||||||||||||||||||||||||||
73 | ||||||||||||||||||||||||||
74 | industrial | death industrial | industrial | (^|;\s*)(industrial|death industrial|electro-industrial|dark electro|aggrotech|post-industrial|ebm|new beat|hard beat|epic collage|martial industrial|power noise)(\s*;|$)=industrial | industrial foo bar death industrial foo bar electro-industrial foo bar dark electro foo bar aggrotech foo bar post-industrial foo bar ebm foo bar new beat foo bar hard beat foo bar epic collage foo bar martial industrial foo bar power noise | |||||||||||||||||||||
75 | electro-industrial | dark electro | aggrotech | electro-industrial | (^|;\s*)(electro-industrial|dark electro|aggrotech)(\s*;|$)=electro-industrial | electro-industrial foo bar dark electro foo bar aggrotech | dark electro | (^|;\s*)(dark electro|aggrotech)(\s*;|$)=dark electro | dark electro foo bar aggrotech | |||||||||||||||||
76 | post-industrial | ebm | new beat | hard beat | post-industrial | (^|;\s*)(post-industrial|ebm|new beat|hard beat|epic collage|martial industrial|power noise)(\s*;|$)=post-industrial | post-industrial foo bar ebm foo bar new beat foo bar hard beat foo bar epic collage foo bar martial industrial foo bar power noise | ebm | (^|;\s*)(ebm|new beat|hard beat)(\s*;|$)=ebm | ebm foo bar new beat foo bar hard beat | ||||||||||||||||
77 | epic collage | |||||||||||||||||||||||||
78 | martial industrial | |||||||||||||||||||||||||
79 | power noise | |||||||||||||||||||||||||
80 | ||||||||||||||||||||||||||
81 | post-industrial foo bar ebm foo bar new beat foo bar hard beat foo bar epic collage foo bar martial industrial foo bar power noise | |||||||||||||||||||||||||
82 | ||||||||||||||||||||||||||
83 | If you're not interested in the expressions but just want the subgenres in a single line to copy, you'll find them in the blue box. If you've downloaded the sheet, you can insert the desired delimiter here (the default is a pipe): | |||||||||||||||||||||||||
84 | | | |||||||||||||||||||||||||
85 | ||||||||||||||||||||||||||
86 | Suggestion on how to setup your Genre-Merger/Genre-Filter: | |||||||||||||||||||||||||
87 | ||||||||||||||||||||||||||
88 | As I said, I’m lazy, but I still like things to be neat and organized. That’s why I created this spreadsheet mainly for myself. I tried to be impartial, but I did take some liberties—for example, I put “garage punk” on the “Punk” sheet, though I didn’t make it a subcategory. Below, I’ll describe how I managed to get the flood of genres under control with relatively little effort using this spreadsheet, the Genre Mapper, and a small script. It took me about 1-2h. | |||||||||||||||||||||||||
89 | ||||||||||||||||||||||||||
90 | ||||||||||||||||||||||||||
91 | ||||||||||||||||||||||||||
92 | ||||||||||||||||||||||||||
93 | ||||||||||||||||||||||||||
94 | ||||||||||||||||||||||||||
95 | First Step: | |||||||||||||||||||||||||
96 | ||||||||||||||||||||||||||
97 | Under “Options - Genres,” I've enabled genres, fallback, and folksonomy. Under “Tags to include or exclude,” I've entered a complete list from the current /genre page (+disco for example. The "+" is used to flag the genre as allowed, a copy of /genre is in the ‘Worksheet’ sheet), preceded by a -* to exclude all other tags. I use “minimal and maximal genre usage” quite flexibly and adjust it depending on the desired result. | |||||||||||||||||||||||||
98 | ||||||||||||||||||||||||||
99 | ||||||||||||||||||||||||||
100 | ||||||||||||||||||||||||||