Message ID | 20191221080740.51097-1-uspoerlein@gmail.com |
---|---|
State | Superseded |
Headers | show |
On Sat, Dec 21, 2019 at 09:07:40AM +0100, Ulrich Spörlein wrote:
> Source: https://en.wikipedia.org/wiki/List_of_ID3v1_Genres and taglib.
Please use a more "primary" source than wikipedia
thanks
[...]
Am Sa., 21. Dez. 2019 um 09:07 Uhr schrieb Ulrich Spörlein <uspoerlein@gmail.com>: > > Source: https://en.wikipedia.org/wiki/List_of_ID3v1_Genres and taglib. > > Further patches to harmonize the spelling have been sent to taglib and > libid3tag. > --- > Note that neither taglib nor libid3tag use the typos for Psychedelic or > A cappella. Preserving these typos is IMHO not worth it, spec be damned. > > libavformat/id3v1.c | 58 +++++++++++++++++++++++++++++++++++++++------ > libavformat/id3v1.h | 2 +- > 2 files changed, 52 insertions(+), 8 deletions(-) > > diff --git a/libavformat/id3v1.c b/libavformat/id3v1.c > index 19be42121d..eb66098f51 100644 > --- a/libavformat/id3v1.c > +++ b/libavformat/id3v1.c > @@ -92,7 +92,7 @@ const char * const ff_id3v1_genre_str[ID3v1_GENRE_MAX + 1] = { > [64] = "Native American", > [65] = "Cabaret", > [66] = "New Wave", > - [67] = "Psychadelic", /* sic, the misspelling is used in the specification */ > + [67] = "Psychedelic", > [68] = "Rave", > [69] = "Showtunes", > [70] = "Trailer", > @@ -110,7 +110,7 @@ const char * const ff_id3v1_genre_str[ID3v1_GENRE_MAX + 1] = { > [82] = "National Folk", > [83] = "Swing", > [84] = "Fast Fusion", > - [85] = "Bebob", > + [85] = "Bebop", > [86] = "Latin", > [87] = "Revival", > [88] = "Celtic", > @@ -148,20 +148,20 @@ const char * const ff_id3v1_genre_str[ID3v1_GENRE_MAX + 1] = { > [120] = "Duet", > [121] = "Punk Rock", > [122] = "Drum Solo", > - [123] = "A capella", > + [123] = "A Cappella", > [124] = "Euro-House", > [125] = "Dance Hall", > [126] = "Goa", > [127] = "Drum & Bass", > [128] = "Club-House", > - [129] = "Hardcore", > + [129] = "Hardcore Techno", > [130] = "Terror", > [131] = "Indie", > [132] = "BritPop", > [133] = "Negerpunk", > [134] = "Polsk Punk", > [135] = "Beat", > - [136] = "Christian Gangsta", > + [136] = "Christian Gangsta Rap", > [137] = "Heavy Metal", > [138] = "Black Metal", > [139] = "Crossover", > @@ -171,8 +171,52 @@ const char * const ff_id3v1_genre_str[ID3v1_GENRE_MAX + 1] = { > [143] = "Salsa", > [144] = "Thrash Metal", > [145] = "Anime", > - [146] = "JPop", > - [147] = "SynthPop", > + [146] = "Jpop", > + [147] = "Synthpop", > + [148] = "Abstract", > + [149] = "Art Rock", > + [150] = "Baroque", > + [151] = "Bhangra", > + [152] = "Big Beat", > + [153] = "Breakbeat", > + [154] = "Chillout", > + [155] = "Downtempo", > + [156] = "Dub", > + [157] = "EBM", > + [158] = "Eclectic", > + [159] = "Electro", > + [160] = "Electroclash", > + [161] = "Emo", > + [162] = "Experimental", > + [163] = "Garage", > + [164] = "Global", > + [165] = "IDM", > + [166] = "Illbient", > + [167] = "Industro-Goth", > + [168] = "Jam Band", > + [169] = "Krautrock", > + [170] = "Leftfield", > + [171] = "Lounge", > + [172] = "Math Rock", > + [173] = "New Romantic", > + [174] = "Nu-Breakz", > + [175] = "Post-Punk", > + [176] = "Post-Rock", > + [177] = "Psytrance", > + [178] = "Shoegaze", > + [179] = "Space Rock", > + [180] = "Trop Rock", > + [181] = "World Music", > + [182] = "Neoclassical", > + [183] = "Audiobook", > + [184] = "Audio Theatre", > + [185] = "Neue Deutsche Welle", > + [186] = "Podcast", > + [187] = "Indie Rock", > + [188] = "G-Funk", > + [189] = "Dubstep", > + [190] = "Garage Rock", > + [191] = "Psybient" > }; > > static void get_string(AVFormatContext *s, const char *key, > diff --git a/libavformat/id3v1.h b/libavformat/id3v1.h > index d5dca35873..b3ad16df6c 100644 > --- a/libavformat/id3v1.h > +++ b/libavformat/id3v1.h > @@ -26,7 +26,7 @@ > > #define ID3v1_TAG_SIZE 128 > > -#define ID3v1_GENRE_MAX 147 > +#define ID3v1_GENRE_MAX 191 > > /** > * ID3v1 genres > -- > 2.24.0 > please keep me CC'ed on emails taglib is using the same extended WinAmp genre IDs. And you can find these in various places over the web. Obviously, I don't have access to Winamp's source code nor is that spec being published widely, being defunct and all. https://github.com/taglib/taglib/blob/master/taglib/mpeg/id3v1/id3v1genres.cpp Here's a printed copy: https://books.google.de/books?id=kvIoDwAAQBAJ&pg=PA6457&lpg=PA6457&dq=winamp+genre&source=bl&ots=eRknt5u6HS&sig=ACfU3U3heV82sGD9-mWaLi5Tv0-pBI89PQ&hl=de&sa=X&ved=2ahUKEwiEo8-wj8nmAhUNT8AKHd0QAMMQ6AEwB3oECAkQAQ#v=onepage&q=winamp%20genre&f=false Cheers Uli
On Sun, Dec 22, 2019 at 12:18:28PM +0100, Ulrich Spörlein wrote: > Am Sa., 21. Dez. 2019 um 09:07 Uhr schrieb Ulrich Spörlein > <uspoerlein@gmail.com>: > > > > Source: https://en.wikipedia.org/wiki/List_of_ID3v1_Genres and taglib. > > > > Further patches to harmonize the spelling have been sent to taglib and > > libid3tag. > > --- > > Note that neither taglib nor libid3tag use the typos for Psychedelic or > > A cappella. Preserving these typos is IMHO not worth it, spec be damned. > > > > libavformat/id3v1.c | 58 +++++++++++++++++++++++++++++++++++++++------ > > libavformat/id3v1.h | 2 +- > > 2 files changed, 52 insertions(+), 8 deletions(-) > > > > diff --git a/libavformat/id3v1.c b/libavformat/id3v1.c > > index 19be42121d..eb66098f51 100644 > > --- a/libavformat/id3v1.c > > +++ b/libavformat/id3v1.c > > @@ -92,7 +92,7 @@ const char * const ff_id3v1_genre_str[ID3v1_GENRE_MAX + 1] = { > > [64] = "Native American", > > [65] = "Cabaret", > > [66] = "New Wave", > > - [67] = "Psychadelic", /* sic, the misspelling is used in the specification */ > > + [67] = "Psychedelic", > > [68] = "Rave", > > [69] = "Showtunes", > > [70] = "Trailer", > > @@ -110,7 +110,7 @@ const char * const ff_id3v1_genre_str[ID3v1_GENRE_MAX + 1] = { > > [82] = "National Folk", > > [83] = "Swing", > > [84] = "Fast Fusion", > > - [85] = "Bebob", > > + [85] = "Bebop", > > [86] = "Latin", > > [87] = "Revival", > > [88] = "Celtic", > > @@ -148,20 +148,20 @@ const char * const ff_id3v1_genre_str[ID3v1_GENRE_MAX + 1] = { > > [120] = "Duet", > > [121] = "Punk Rock", > > [122] = "Drum Solo", > > - [123] = "A capella", > > + [123] = "A Cappella", > > [124] = "Euro-House", > > [125] = "Dance Hall", > > [126] = "Goa", > > [127] = "Drum & Bass", > > [128] = "Club-House", > > - [129] = "Hardcore", > > + [129] = "Hardcore Techno", > > [130] = "Terror", > > [131] = "Indie", > > [132] = "BritPop", > > [133] = "Negerpunk", > > [134] = "Polsk Punk", > > [135] = "Beat", > > - [136] = "Christian Gangsta", > > + [136] = "Christian Gangsta Rap", > > [137] = "Heavy Metal", > > [138] = "Black Metal", > > [139] = "Crossover", > > @@ -171,8 +171,52 @@ const char * const ff_id3v1_genre_str[ID3v1_GENRE_MAX + 1] = { > > [143] = "Salsa", > > [144] = "Thrash Metal", > > [145] = "Anime", > > - [146] = "JPop", > > - [147] = "SynthPop", > > + [146] = "Jpop", > > + [147] = "Synthpop", > > + [148] = "Abstract", > > + [149] = "Art Rock", > > + [150] = "Baroque", > > + [151] = "Bhangra", > > + [152] = "Big Beat", > > + [153] = "Breakbeat", > > + [154] = "Chillout", > > + [155] = "Downtempo", > > + [156] = "Dub", > > + [157] = "EBM", > > + [158] = "Eclectic", > > + [159] = "Electro", > > + [160] = "Electroclash", > > + [161] = "Emo", > > + [162] = "Experimental", > > + [163] = "Garage", > > + [164] = "Global", > > + [165] = "IDM", > > + [166] = "Illbient", > > + [167] = "Industro-Goth", > > + [168] = "Jam Band", > > + [169] = "Krautrock", > > + [170] = "Leftfield", > > + [171] = "Lounge", > > + [172] = "Math Rock", > > + [173] = "New Romantic", > > + [174] = "Nu-Breakz", > > + [175] = "Post-Punk", > > + [176] = "Post-Rock", > > + [177] = "Psytrance", > > + [178] = "Shoegaze", > > + [179] = "Space Rock", > > + [180] = "Trop Rock", > > + [181] = "World Music", > > + [182] = "Neoclassical", > > + [183] = "Audiobook", > > + [184] = "Audio Theatre", > > + [185] = "Neue Deutsche Welle", > > + [186] = "Podcast", > > + [187] = "Indie Rock", > > + [188] = "G-Funk", > > + [189] = "Dubstep", > > + [190] = "Garage Rock", > > + [191] = "Psybient" > > }; > > > > static void get_string(AVFormatContext *s, const char *key, > > diff --git a/libavformat/id3v1.h b/libavformat/id3v1.h > > index d5dca35873..b3ad16df6c 100644 > > --- a/libavformat/id3v1.h > > +++ b/libavformat/id3v1.h > > @@ -26,7 +26,7 @@ > > > > #define ID3v1_TAG_SIZE 128 > > > > -#define ID3v1_GENRE_MAX 147 > > +#define ID3v1_GENRE_MAX 191 > > > > /** > > * ID3v1 genres > > -- > > 2.24.0 > > > > > please keep me CC'ed on emails > > taglib is using the same extended WinAmp genre IDs. And you can find > these in various places over the web. Obviously, I don't have access > to Winamp's source code nor is that spec being published widely, being > defunct and all. > https://github.com/taglib/taglib/blob/master/taglib/mpeg/id3v1/id3v1genres.cpp a reference to a VCS should include the version similarly for wikipedia some revission of the page should be mentioned in the commit message [...]
diff --git a/libavformat/id3v1.c b/libavformat/id3v1.c index 19be42121d..eb66098f51 100644 --- a/libavformat/id3v1.c +++ b/libavformat/id3v1.c @@ -92,7 +92,7 @@ const char * const ff_id3v1_genre_str[ID3v1_GENRE_MAX + 1] = { [64] = "Native American", [65] = "Cabaret", [66] = "New Wave", - [67] = "Psychadelic", /* sic, the misspelling is used in the specification */ + [67] = "Psychedelic", [68] = "Rave", [69] = "Showtunes", [70] = "Trailer", @@ -110,7 +110,7 @@ const char * const ff_id3v1_genre_str[ID3v1_GENRE_MAX + 1] = { [82] = "National Folk", [83] = "Swing", [84] = "Fast Fusion", - [85] = "Bebob", + [85] = "Bebop", [86] = "Latin", [87] = "Revival", [88] = "Celtic", @@ -148,20 +148,20 @@ const char * const ff_id3v1_genre_str[ID3v1_GENRE_MAX + 1] = { [120] = "Duet", [121] = "Punk Rock", [122] = "Drum Solo", - [123] = "A capella", + [123] = "A Cappella", [124] = "Euro-House", [125] = "Dance Hall", [126] = "Goa", [127] = "Drum & Bass", [128] = "Club-House", - [129] = "Hardcore", + [129] = "Hardcore Techno", [130] = "Terror", [131] = "Indie", [132] = "BritPop", [133] = "Negerpunk", [134] = "Polsk Punk", [135] = "Beat", - [136] = "Christian Gangsta", + [136] = "Christian Gangsta Rap", [137] = "Heavy Metal", [138] = "Black Metal", [139] = "Crossover", @@ -171,8 +171,52 @@ const char * const ff_id3v1_genre_str[ID3v1_GENRE_MAX + 1] = { [143] = "Salsa", [144] = "Thrash Metal", [145] = "Anime", - [146] = "JPop", - [147] = "SynthPop", + [146] = "Jpop", + [147] = "Synthpop", + [148] = "Abstract", + [149] = "Art Rock", + [150] = "Baroque", + [151] = "Bhangra", + [152] = "Big Beat", + [153] = "Breakbeat", + [154] = "Chillout", + [155] = "Downtempo", + [156] = "Dub", + [157] = "EBM", + [158] = "Eclectic", + [159] = "Electro", + [160] = "Electroclash", + [161] = "Emo", + [162] = "Experimental", + [163] = "Garage", + [164] = "Global", + [165] = "IDM", + [166] = "Illbient", + [167] = "Industro-Goth", + [168] = "Jam Band", + [169] = "Krautrock", + [170] = "Leftfield", + [171] = "Lounge", + [172] = "Math Rock", + [173] = "New Romantic", + [174] = "Nu-Breakz", + [175] = "Post-Punk", + [176] = "Post-Rock", + [177] = "Psytrance", + [178] = "Shoegaze", + [179] = "Space Rock", + [180] = "Trop Rock", + [181] = "World Music", + [182] = "Neoclassical", + [183] = "Audiobook", + [184] = "Audio Theatre", + [185] = "Neue Deutsche Welle", + [186] = "Podcast", + [187] = "Indie Rock", + [188] = "G-Funk", + [189] = "Dubstep", + [190] = "Garage Rock", + [191] = "Psybient" }; static void get_string(AVFormatContext *s, const char *key, diff --git a/libavformat/id3v1.h b/libavformat/id3v1.h index d5dca35873..b3ad16df6c 100644 --- a/libavformat/id3v1.h +++ b/libavformat/id3v1.h @@ -26,7 +26,7 @@ #define ID3v1_TAG_SIZE 128 -#define ID3v1_GENRE_MAX 147 +#define ID3v1_GENRE_MAX 191 /** * ID3v1 genres