github.com/boki/go-xmp@v1.0.1/models/id3/enum.go (about) 1 // Copyright (c) 2017-2018 Alexander Eichhorn 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"): you may 4 // not use this file except in compliance with the License. You may obtain 5 // a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 // License for the specific language governing permissions and limitations 13 // under the License. 14 15 package id3 16 17 type MarkerType byte 18 19 const ( 20 MarkerTypePadding MarkerType = 0x00 // padding (has no meaning) 21 MarkerTypeEOS MarkerType = 0x01 // end of initial silence 22 MarkerTypeIntroStart MarkerType = 0x02 // intro start 23 MarkerTypeMainStart MarkerType = 0x03 // main part start 24 MarkerTypeOutroStart MarkerType = 0x04 // outro start 25 MarkerTypeOutroEnd MarkerType = 0x05 // outro end 26 MarkerTypeVerseStart MarkerType = 0x06 // verse start 27 MarkerTypeRefrainStart MarkerType = 0x07 // refrain start 28 MarkerTypeInterludeStart MarkerType = 0x08 // interlude start 29 MarkerTypeThemeStart MarkerType = 0x09 // theme start 30 MarkerTypeVariationStart MarkerType = 0x0A // variation start 31 MarkerTypeKeyChange MarkerType = 0x0B // key change 32 MarkerTypeTimeChange MarkerType = 0x0C // time change 33 MarkerTypeTemporaryNoise MarkerType = 0x0D // momentary unwanted noise (Snap, Crackle & Pop) 34 MarkerTypeNoiseStart MarkerType = 0x0E // sustained noise 35 MarkerTypeNoiseEnd MarkerType = 0x0F // sustained noise end 36 MarkerTypeIntroEnd MarkerType = 0x10 // intro end 37 MarkerTypeMainEnd MarkerType = 0x11 // main part end 38 MarkerTypeVerseEnd MarkerType = 0x12 // verse end 39 MarkerTypeRefrainEnd MarkerType = 0x13 // refrain end 40 MarkerTypeThemeEnde MarkerType = 0x14 // theme end 41 MarkerTypeProfanityStart MarkerType = 0x15 // profanity 42 MarkerTypeProfanityEnd MarkerType = 0x16 // profanity end 43 MarkerTypeAudioEnd MarkerType = 0xFD // audio end (start of silence) 44 MarkerTypeFileEnd MarkerType = 0xFE // audio file ends 45 ) 46 47 type UnitType byte 48 49 const ( 50 UnitTypeMs UnitType = 0x1 // millisec 51 UnitTypeFrame UnitType = 0x2 // MPEG frames 52 ) 53 54 type PositionType byte 55 56 const ( 57 PositionTypeFrame PositionType = 0x1 // MPEG frames 58 PositionTypeMs PositionType = 0x2 // millisec 59 ) 60 61 const ( 62 GenreBlues = 0 63 GenreClassicRock = 1 64 GenreCountry = 2 65 GenreDance = 3 66 GenreDisco = 4 67 GenreFunk = 5 68 GenreGrunge = 6 69 GenreHipHop = 7 70 GenreJazz = 8 71 GenreMetal = 9 72 GenreNewAge = 10 73 GenreOldies = 11 74 GenreOther = 12 75 GenrePop = 13 76 GenreRaB = 14 77 GenreRap = 15 78 GenreReggae = 16 79 GenreRock = 17 80 GenreTechno = 18 81 GenreIndustrial = 19 82 GenreAlternative = 20 83 GenreSka = 21 84 GenreDeathMetal = 22 85 GenrePranks = 23 86 GenreSoundtrack = 24 87 GenreEuroTechno = 25 88 GenreAmbient = 26 89 GenreTripHop = 27 90 GenreVocal = 28 91 GenreJazzFunk = 29 92 GenreFusion = 30 93 GenreTrance = 31 94 GenreClassical = 32 95 GenreInstrumental = 33 96 GenreAcid = 34 97 GenreHouse = 35 98 GenreGame = 36 99 GenreSoundClip = 37 100 GenreGospel = 38 101 GenreNoise = 39 102 GenreAltRock = 40 103 GenreBass = 41 104 GenreSoul = 42 105 GenrePunk = 43 106 GenreSpace = 44 107 GenreMeditative = 45 108 GenreInstrumentalPop = 46 109 GenreInstrumentalRock = 47 110 GenreEthnic = 48 111 GenreGothic = 49 112 GenreDarkwave = 50 113 GenreTechnoIndustrial = 51 114 GenreElectronic = 52 115 GenrePopFolk = 53 116 GenreEurodance = 54 117 GenreDream = 55 118 GenreSouthernRock = 56 119 GenreComedy = 57 120 GenreCult = 58 121 GenreGangstaRap = 59 122 GenreTop40 = 60 123 GenreChristianRap = 61 124 GenrePopFunk = 62 125 GenreJungle = 63 126 GenreNativeAmerican = 64 127 GenreCabaret = 65 128 GenreNewWave = 66 129 GenrePsychedelic = 67 /* sic, the misspelling is used in the specification */ 130 GenreRave = 68 131 GenreShowtunes = 69 132 GenreTrailer = 70 133 GenreLoFi = 71 134 GenreTribal = 72 135 GenreAcidPunk = 73 136 GenreAcidJazz = 74 137 GenrePolka = 75 138 GenreRetro = 76 139 GenreMusical = 77 140 GenreRockNRoll = 78 141 GenreHardRock = 79 142 GenreFolk = 80 143 GenreFolkRock = 81 144 GenreNationalFolk = 82 145 GenreSwing = 83 146 GenreFastFusion = 84 147 GenreBebob = 85 148 GenreLatin = 86 149 GenreRevival = 87 150 GenreCeltic = 88 151 GenreBluegrass = 89 152 GenreAvantgarde = 90 153 GenreGothicRock = 91 154 GenreProgressiveRock = 92 155 GenrePsychedelicRock = 93 156 GenreSymphonicRock = 94 157 GenreSlowRock = 95 158 GenreBigBand = 96 159 GenreChorus = 97 160 GenreEasyListening = 98 161 GenreAcoustic = 99 162 GenreHumour = 100 163 GenreSpeech = 101 164 GenreChanson = 102 165 GenreOpera = 103 166 GenreChamberMusic = 104 167 GenreSonata = 105 168 GenreSymphony = 106 169 GenreBootyBass = 107 170 GenrePrimus = 108 171 GenrePornGroove = 109 172 GenreSatire = 110 173 GenreSlowJam = 111 174 GenreClub = 112 175 GenreTango = 113 176 GenreSamba = 114 177 GenreFolklore = 115 178 GenreBallad = 116 179 GenrePowerBallad = 117 180 GenreRhythmicSoul = 118 181 GenreFreestyle = 119 182 GenreDuet = 120 183 GenrePunkRock = 121 184 GenreDrumSolo = 122 185 GenreAcapella = 123 186 GenreEuroHouse = 124 187 GenreDanceHall = 125 188 GenreGoa = 126 189 GenreDrumNBass = 127 190 GenreClubHouse = 128 191 GenreHardcore = 129 192 GenreTerror = 130 193 GenreIndie = 131 194 GenreBritPop = 132 195 GenreAfroPunk = 133 196 GenrePolskPunk = 134 197 GenreBeat = 135 198 GenreChristianGangsta = 136 199 GenreHeavyMetal = 137 200 GenreBlackMetal = 138 201 GenreCrossover = 139 202 GenreContemporaryChristian = 140 203 GenreChristianRock = 141 204 GenreMerengue = 142 205 GenreSalsa = 143 206 GenreThrashMetal = 144 207 GenreAnime = 145 208 GenreJPop = 146 209 GenreSynthPop = 147 210 // ref http://alicja.homelinux.com/~mats/text/Music/MP3/ID3/Genres.txt 211 GenreAbstract = 148 212 GenreArtRock = 149 213 GenreBaroque = 150 214 GenreBhangra = 151 215 GenreBigBeat = 152 216 GenreBreakbeat = 153 217 GenreChillout = 154 218 GenreDowntempo = 155 219 GenreDub = 156 220 GenreEBM = 157 221 GenreEclectic = 158 222 GenreElectro = 159 223 GenreElectroclash = 160 224 GenreEmo = 161 225 GenreExperimental = 162 226 GenreGarage = 163 227 GenreGlobal = 164 228 GenreIDM = 165 229 GenreIllbient = 166 230 GenreIndustroGoth = 167 231 GenreJamBand = 168 232 GenreKrautrock = 169 233 GenreLeftfield = 170 234 GenreLounge = 171 235 GenreMathRock = 172 236 GenreNewRomantic = 173 237 GenreNuBreakz = 174 238 GenrePostPunk = 175 239 GenrePostRock = 176 240 GenrePsytrance = 177 241 GenreShoegaze = 178 242 GenreSpaceRock = 179 243 GenreTropRock = 180 244 GenreWorldMusic = 181 245 GenreNeoclassical = 182 246 GenreAudiobook = 183 247 GenreAudioTheatre = 184 248 GenreNeueDeutscheWelle = 185 249 GenrePodcast = 186 250 GenreIndieRock = 187 251 GenreGFunk = 188 252 GenreDubstep = 189 253 GenreGarageRock = 190 254 GenrePsybient = 191 255 GenreNone = 255 256 ) 257 258 var GenreMap map[GenreV1]string = map[GenreV1]string{ 259 GenreBlues: "Blues", 260 GenreClassicRock: "Classic Rock", 261 GenreCountry: "Country", 262 GenreDance: "Dance", 263 GenreDisco: "Disco", 264 GenreFunk: "Funk", 265 GenreGrunge: "Grunge", 266 GenreHipHop: "Hip-Hop", 267 GenreJazz: "Jazz", 268 GenreMetal: "Metal", 269 GenreNewAge: "New Age", 270 GenreOldies: "Oldies", 271 GenreOther: "Other", 272 GenrePop: "Pop", 273 GenreRaB: "R&B", 274 GenreRap: "Rap", 275 GenreReggae: "Reggae", 276 GenreRock: "Rock", 277 GenreTechno: "Techno", 278 GenreIndustrial: "Industrial", 279 GenreAlternative: "Alternative", 280 GenreSka: "Ska", 281 GenreDeathMetal: "Death Metal", 282 GenrePranks: "Pranks", 283 GenreSoundtrack: "Soundtrack", 284 GenreEuroTechno: "Euro-Techno", 285 GenreAmbient: "Ambient", 286 GenreTripHop: "Trip-Hop", 287 GenreVocal: "Vocal", 288 GenreJazzFunk: "Jazz+Funk", 289 GenreFusion: "Fusion", 290 GenreTrance: "Trance", 291 GenreClassical: "Classical", 292 GenreInstrumental: "Instrumental", 293 GenreAcid: "Acid", 294 GenreHouse: "House", 295 GenreGame: "Game", 296 GenreSoundClip: "Sound Clip", 297 GenreGospel: "Gospel", 298 GenreNoise: "Noise", 299 GenreAltRock: "Alt. Rock", 300 GenreBass: "Bass", 301 GenreSoul: "Soul", 302 GenrePunk: "Punk", 303 GenreSpace: "Space", 304 GenreMeditative: "Meditative", 305 GenreInstrumentalPop: "Instrumental Pop", 306 GenreInstrumentalRock: "Instrumental Rock", 307 GenreEthnic: "Ethnic", 308 GenreGothic: "Gothic", 309 GenreDarkwave: "Darkwave", 310 GenreTechnoIndustrial: "Techno-Industrial", 311 GenreElectronic: "Electronic", 312 GenrePopFolk: "Pop-Folk", 313 GenreEurodance: "Eurodance", 314 GenreDream: "Dream", 315 GenreSouthernRock: "Southern Rock", 316 GenreComedy: "Comedy", 317 GenreCult: "Cult", 318 GenreGangstaRap: "Gangsta Rap", 319 GenreTop40: "Top 40", 320 GenreChristianRap: "Christian Rap", 321 GenrePopFunk: "Pop/Funk", 322 GenreJungle: "Jungle", 323 GenreNativeAmerican: "Native American", 324 GenreCabaret: "Cabaret", 325 GenreNewWave: "New Wave", 326 GenrePsychedelic: "Psychedelic", 327 GenreRave: "Rave", 328 GenreShowtunes: "Showtunes", 329 GenreTrailer: "Trailer", 330 GenreLoFi: "Lo-Fi", 331 GenreTribal: "Tribal", 332 GenreAcidPunk: "Acid Punk", 333 GenreAcidJazz: "Acid Jazz", 334 GenrePolka: "Polka", 335 GenreRetro: "Retro", 336 GenreMusical: "Musical", 337 GenreRockNRoll: "Rock & Roll", 338 GenreHardRock: "Hard Rock", 339 GenreFolk: "Folk", 340 GenreFolkRock: "Folk-Rock", 341 GenreNationalFolk: "National Folk", 342 GenreSwing: "Swing", 343 GenreFastFusion: "Fast-Fusion", 344 GenreBebob: "Bebob", 345 GenreLatin: "Latin", 346 GenreRevival: "Revival", 347 GenreCeltic: "Celtic", 348 GenreBluegrass: "Bluegrass", 349 GenreAvantgarde: "Avantgarde", 350 GenreGothicRock: "Gothic Rock", 351 GenreProgressiveRock: "Progressive Rock", 352 GenrePsychedelicRock: "Psychedelic Rock", 353 GenreSymphonicRock: "Symphonic Rock", 354 GenreSlowRock: "Slow Rock", 355 GenreBigBand: "Big Band", 356 GenreChorus: "Chorus", 357 GenreEasyListening: "Easy Listening", 358 GenreAcoustic: "Acoustic", 359 GenreHumour: "Humour", 360 GenreSpeech: "Speech", 361 GenreChanson: "Chanson", 362 GenreOpera: "Opera", 363 GenreChamberMusic: "Chamber Music", 364 GenreSonata: "Sonata", 365 GenreSymphony: "Symphony", 366 GenreBootyBass: "Booty Bass", 367 GenrePrimus: "Primus", 368 GenrePornGroove: "Porn Groove", 369 GenreSatire: "Satire", 370 GenreSlowJam: "Slow Jam", 371 GenreClub: "Club", 372 GenreTango: "Tango", 373 GenreSamba: "Samba", 374 GenreFolklore: "Folklore", 375 GenreBallad: "Ballad", 376 GenrePowerBallad: "Power Ballad", 377 GenreRhythmicSoul: "Rhythmic Soul", 378 GenreFreestyle: "Freestyle", 379 GenreDuet: "Duet", 380 GenrePunkRock: "Punk Rock", 381 GenreDrumSolo: "Drum Solo", 382 GenreAcapella: "A Capella", 383 GenreEuroHouse: "Euro-House", 384 GenreDanceHall: "Dance Hall", 385 GenreGoa: "Goa", 386 GenreDrumNBass: "Drum & Bass", 387 GenreClubHouse: "Club-House", 388 GenreHardcore: "Hardcore", 389 GenreTerror: "Terror", 390 GenreIndie: "Indie", 391 GenreBritPop: "BritPop", 392 GenreAfroPunk: "Afro Punk", 393 GenrePolskPunk: "Polsk Punk", 394 GenreBeat: "Beat", 395 GenreChristianGangsta: "Christian Gangsta", 396 GenreHeavyMetal: "Heavy Metal", 397 GenreBlackMetal: "Black Metal", 398 GenreCrossover: "Crossover", 399 GenreContemporaryChristian: "Contemporary Christian", 400 GenreChristianRock: "Christian Rock", 401 GenreMerengue: "Merengue", 402 GenreSalsa: "Salsa", 403 GenreThrashMetal: "Thrash Metal", 404 GenreAnime: "Anime", 405 GenreJPop: "JPop", 406 GenreSynthPop: "SynthPop", 407 GenreAbstract: "Abstract", 408 GenreArtRock: "Art Rock", 409 GenreBaroque: "Baroque", 410 GenreBhangra: "Bhangra", 411 GenreBigBeat: "Big Beat", 412 GenreBreakbeat: "Breakbeat", 413 GenreChillout: "Chillout", 414 GenreDowntempo: "Downtempo", 415 GenreDub: "Dub", 416 GenreEBM: "EBM", 417 GenreEclectic: "Eclectic", 418 GenreElectro: "Electro", 419 GenreElectroclash: "Electroclash", 420 GenreEmo: "Emo", 421 GenreExperimental: "Experimental", 422 GenreGarage: "Garage", 423 GenreGlobal: "Global", 424 GenreIDM: "IDM", 425 GenreIllbient: "Illbient", 426 GenreIndustroGoth: "Industro-Goth", 427 GenreJamBand: "Jam Band", 428 GenreKrautrock: "Krautrock", 429 GenreLeftfield: "Leftfield", 430 GenreLounge: "Lounge", 431 GenreMathRock: "Math Rock", 432 GenreNewRomantic: "New Romantic", 433 GenreNuBreakz: "Nu-Breakz", 434 GenrePostPunk: "Post-Punk", 435 GenrePostRock: "Post-Rock", 436 GenrePsytrance: "Psytrance", 437 GenreShoegaze: "Shoegaze", 438 GenreSpaceRock: "Space Rock", 439 GenreTropRock: "Trop Rock", 440 GenreWorldMusic: "World Music", 441 GenreNeoclassical: "Neoclassical", 442 GenreAudiobook: "Audiobook", 443 GenreAudioTheatre: "Audio Theatre", 444 GenreNeueDeutscheWelle: "Neue Deutsche Welle", 445 GenrePodcast: "Podcast", 446 GenreIndieRock: "Indie Rock", 447 GenreGFunk: "G-Funk", 448 GenreDubstep: "Dubstep", 449 GenreGarageRock: "Garage Rock", 450 GenrePsybient: "Psybient", 451 GenreNone: "None", 452 } 453 454 type LyricsType byte 455 456 const ( 457 LyricsTypeOther LyricsType = 0x00 // other 458 LyricsTypeLyrics LyricsType = 0x01 // lyrics 459 LyricsTypeTranscript LyricsType = 0x02 // text transcription 460 LyricsTypePart LyricsType = 0x03 // movement/part name (e.g. "Adagio") 461 LyricsTypeEvent LyricsType = 0x04 // events (e.g. "Don Quijote enters the stage") 462 LyricsTypeChord LyricsType = 0x05 // chord (e.g. "Bb F Fsus") 463 LyricsTypeTrivia LyricsType = 0x06 // trivia/'pop up' information 464 LyricsTypeWebUrl LyricsType = 0x07 // URLs to webpages 465 LyricsTypeImageUrl LyricsType = 0x08 // URLs to images 466 ) 467 468 type ChannelType byte 469 470 const ( 471 ChannelTypeOther ChannelType = 0x00 // Other 472 ChannelTypeMaster ChannelType = 0x01 // Master volume 473 ChannelTypeFrontRight ChannelType = 0x02 // Front right 474 ChannelTypeFrontLeft ChannelType = 0x03 // Front left 475 ChannelTypeBackRight ChannelType = 0x04 // Back right 476 ChannelTypeBackLeft ChannelType = 0x05 // Back left 477 ChannelTypeFrontCentre ChannelType = 0x06 // Front centre 478 ChannelTypeBackCentre ChannelType = 0x07 // Back centre 479 ChannelTypeSubwoofer ChannelType = 0x08 // Subwoofer 480 ) 481 482 type EqualizationMethod byte 483 484 const ( 485 // No interpolation is made. A jump from one adjustment level to 486 // another occurs in the middle between two adjustment points. 487 EqualizationMethodBand EqualizationMethod = 0x00 488 // Interpolation between adjustment points is linear. 489 EqualizationMethodLinear EqualizationMethod = 0x01 490 ) 491 492 type PictureType byte 493 494 const ( 495 PictureTypeOther PictureType = 0x00 // Other 496 PictureTypeFileIcon32 PictureType = 0x01 // 32x32 pixels 'file icon' (PNG only) 497 PictureTypeFileIcon PictureType = 0x02 // Other file icon 498 PictureTypeFrontCover PictureType = 0x03 // Cover (front) 499 PictureTypeBackCover PictureType = 0x04 // Cover (back) 500 PictureTypeLeaflet PictureType = 0x05 // Leaflet page 501 PictureTypeMedia PictureType = 0x06 // Media (e.g. label side of CD) 502 PictureTypePerformer PictureType = 0x07 // Lead artist/lead performer/soloist 503 PictureTypeArtist PictureType = 0x08 // Artist/performer 504 PictureTypeConductor PictureType = 0x09 // Conductor 505 PictureTypeBand PictureType = 0x0A // Band/Orchestra 506 PictureTypeComposer PictureType = 0x0B // Composer 507 PictureTypeWriter PictureType = 0x0C // Lyricist/text writer 508 PictureTypeLocation PictureType = 0x0D // Recording Location 509 PictureTypeRecording PictureType = 0x0E // During recording 510 PictureTypePerformance PictureType = 0x0F // During performance 511 PictureTypeSnapshot PictureType = 0x10 // Movie/video screen capture 512 PictureTypeFinish PictureType = 0x11 // A bright coloured fish 513 PictureTypeIllustration PictureType = 0x12 // Illustration 514 PictureTypeArtistLogo PictureType = 0x13 // Band/artist logotype 515 PictureTypePublisherLogo PictureType = 0x14 // Publisher/Studio logotype 516 ) 517 518 type DeliveryMethod byte 519 520 const ( 521 DeliveryMethodOther DeliveryMethod = 0x00 // Other 522 DeliveryMethodStdCD DeliveryMethod = 0x01 // Standard CD album with other songs 523 DeliveryMethodCompressedCD DeliveryMethod = 0x02 // Compressed audio on CD 524 DeliveryMethodDownload DeliveryMethod = 0x03 // File over the Internet 525 DeliveryMethodStream DeliveryMethod = 0x04 // Stream over the Internet 526 DeliveryMethodNoteSheets DeliveryMethod = 0x05 // As note sheets 527 DeliveryMethodBook DeliveryMethod = 0x06 // As note sheets in a book with other sheets 528 DeliveryMethodOtherMedia DeliveryMethod = 0x07 // Music on other media 529 DeliveryMethodMerchandise DeliveryMethod = 0x08 // Non-musical merchandise 530 )