Created
August 28, 2016 06:00
-
-
Save Davidblkx/9a348fe74bba03ce74a7da81572b2a63 to your computer and use it in GitHub Desktop.
Struct with all frames presented in ID3v2.4
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
namespace ID3 | |
{ | |
public struct FramesID3v24 | |
{ | |
/// <summary> | |
/// This frame's purpose is to be able to identify the audio file in a | |
/// database, that may provide more information relevant to the content. | |
/// Since standardization of such a database is beyond this document, all | |
/// UFID frames begin with an 'owner identifier' field.It is a null- | |
/// terminated string with a URL [URL] containing an email address, or a | |
/// link to a location where an email address can be found, that belongs | |
/// to the organization responsible for this specific database | |
/// implementation.Questions regarding the database should be sent to | |
/// the indicated email address. The URL should not be used for the | |
/// actual database queries. The string | |
/// "http://www.id3.org/dummy/ufid.html" should be used for tests.The | |
/// 'Owner identifier' must be non-empty (more than just a termination). | |
/// The 'Owner identifier' is then followed by the actual identifier, | |
/// which may be up to 64 bytes. There may be more than one "UFID" frame | |
/// in a tag, but only one with the same 'Owner identifier'. | |
/// </summary> | |
public const string UniqueFileIdentifier = "UFID"; | |
/// <summary> | |
/// The 'Content group description' frame is used if the sound belongs to | |
/// a larger category of sounds/music.For example, classical music is | |
/// often sorted in different musical sections(e.g. "Piano Concerto", | |
/// "Weather - Hurricane"). | |
/// </summary> | |
public const string ContentGroupDescription = "TIT1"; | |
/// <summary> | |
/// The 'Title/Songname/Content description' frame is the actual name of | |
/// the piece(e.g. "Adagio", "Hurricane Donna"). | |
/// </summary> | |
public const string Title = "TIT2"; | |
/// <summary> | |
/// The 'Subtitle/Description refinement' frame is used for information | |
/// directly related to the contents title(e.g. "Op. 16" or "Performed | |
/// live at Wembley"). | |
/// </summary> | |
public const string Subtitle = "TIT3"; | |
/// <summary> | |
/// The 'Album/Movie/Show title' frame is intended for the title of the | |
/// recording(or source of sound) from which the audio in the file is | |
/// taken. | |
/// </summary> | |
public const string Album = "TALB"; | |
/// <summary> | |
/// The 'Original album/movie/show title' frame is intended for the title | |
/// of the original recording(or source of sound), if for example the | |
/// music in the file should be a cover of a previously released song. | |
/// </summary> | |
public const string OriginalAlbum = "TOAL"; | |
/// <summary> | |
/// The 'Track number/Position in set' frame is a numeric string | |
/// containing the order number of the audio-file on its original | |
/// recording.This MAY be extended with a "/" character and a numeric | |
/// string containing the total number of tracks/elements on the original | |
/// recording.E.g. "4/9". | |
/// </summary> | |
public const string TrackNumber = "TRCK"; | |
/// <summary> | |
/// The 'Part of a set' frame is a numeric string that describes which | |
/// part of a set the audio came from.This frame is used if the source | |
/// described in the "TALB" frame is divided into several mediums, e.g.a | |
/// double CD. The value MAY be extended with a "/" character and a | |
/// numeric string containing the total number of parts in the set. E.g. | |
/// "1/2". | |
/// </summary> | |
public const string PartOfSetNumber = "TPOS"; | |
/// <summary> | |
/// The 'Set subtitle' frame is intended for the subtitle of the part of | |
/// a set this track belongs to. | |
/// </summary> | |
public const string SetSubtitle = "TSST"; | |
/// <summary> | |
/// The 'ISRC' frame should contain the International Standard Recording | |
/// Code[ISRC] (12 characters). | |
/// </summary> | |
public const string ISRC = "TSRC"; | |
/// <summary> | |
/// The 'Lead artist/Lead performer/Soloist/Performing group' is | |
/// used for the main artist. | |
/// </summary> | |
public const string Artist = "TPE1"; | |
/// <summary> | |
/// The 'Band/Orchestra/Accompaniment' frame is used for additional | |
/// information about the performers in the recording. | |
/// </summary> | |
public const string Band = "TPE2"; | |
/// <summary> | |
/// The 'Conductor' frame is used for the name of the conductor. | |
/// </summary> | |
public const string Conductor = "TPE3"; | |
/// <summary> | |
/// The 'Interpreted, remixed, or otherwise modified by' frame contains | |
/// more information about the people behind a remix and similar | |
/// interpretations of another existing piece. | |
/// </summary> | |
public const string Interpreted = "TPE4"; | |
/// <summary> | |
/// The 'Original artist/performer' frame is intended for the performer | |
/// of the original recording, if for example the music in the file | |
/// should be a cover of a previously released song. | |
/// </summary> | |
public const string OriginalArtist = "TOPE"; | |
/// <summary> | |
/// The 'Lyricist/Text writer' frame is intended for the writer of the | |
/// text or lyrics in the recording. | |
/// </summary> | |
public const string Lyricist = "TEXT"; | |
/// <summary> | |
/// The 'Original lyricist/text writer' frame is intended for the | |
/// text writer of the original recording, if for example the music in | |
/// the file should be a cover of a previously released song. | |
/// </summary> | |
public const string OriginalLyricist = "TOLY"; | |
/// <summary> | |
/// The 'Composer' frame is intended for the name of the composer. | |
/// </summary> | |
public const string Composer = "TCOM"; | |
/// <summary> | |
/// The 'Musician credits list' is intended as a mapping between | |
/// instruments and the musician that played it.Every odd field is an | |
/// instrument and every even is an artist or a comma delimited list of | |
/// artists. | |
/// </summary> | |
public const string MusicianCreditList = "TMCL"; | |
/// <summary> | |
/// The 'Involved people list' is very similar to the musician credits | |
/// list, but maps between functions, like producer, and names. | |
/// </summary> | |
public const string InvolvedPeopleList = "TIPL"; | |
/// <summary> | |
/// The 'Encoded by' frame contains the name of the person or | |
/// organization that encoded the audio file.This field may contain a | |
/// copyright message, if the audio file also is copyrighted by the | |
/// encoder. | |
/// </summary> | |
public const string EncodedBy = "TENC"; | |
/// <summary> | |
/// The 'BPM' frame contains the number of beats per minute in the | |
/// main part of the audio.The BPM is an integer and represented as a | |
/// numerical string. | |
/// </summary> | |
public const string BeatsPerMinute = "TBPM"; | |
/// <summary> | |
/// The 'Length' frame contains the length of the audio file in | |
/// milliseconds, represented as a numeric string. | |
/// </summary> | |
public const string Length = "TLEN"; | |
/// <summary> | |
/// The 'Initial key' frame contains the musical key in which the sound | |
/// starts.It is represented as a string with a maximum length of three | |
/// characters.The ground keys are represented with "A","B","C","D","E", | |
/// "F" and "G" and half-keys represented with "b" and "#". Minor is | |
/// represented as "m", e.g. "Dbm" $00. Off key is represented with an | |
/// "o" only. | |
/// </summary> | |
public const string InitialKey = "TKEY"; | |
/// <summary> | |
/// The 'Language' frame should contain the languages of the text or | |
/// lyrics spoken or sung in the audio.The language is represented with | |
/// three characters according to ISO-639-2 [ISO-639-2]. If more than one | |
/// language is used in the text their language codes should follow | |
/// according to the amount of their usage, e.g. "eng" $00 "sve" $00. | |
/// </summary> | |
public const string Language = "TLAN"; | |
/// <summary> | |
/// The 'Content type', which ID3v1 was stored as a one byte numeric | |
/// value only, is now a string. You may use one or several of the ID3v1 | |
/// types as numerical strings, or, since the category list would be | |
/// impossible to maintain with accurate and up to date categories, | |
/// define your own.Example: "21" $00 "Eurodisco" $00 | |
/// </summary> | |
public const string ContentType = "TCON"; | |
/// <summary> | |
/// The 'File type' frame indicates which type of audio this tag defines. | |
/// The following types and refinements are defined: | |
/// | |
/// MIME MIME type follows | |
/// MPG MPEG Audio | |
/// /1 MPEG 1/2 layer I | |
/// /2 MPEG 1/2 layer II | |
/// /3 MPEG 1/2 layer III | |
/// /2.5 MPEG 2.5 | |
/// /AAC Advanced audio compression | |
/// VQF Transform-domain Weighted Interleave Vector Quantization | |
/// PCM Pulse Code Modulated audio | |
/// | |
/// but other types may be used, but not for these types though.This is | |
/// used in a similar way to the predefined types in the "TMED" frame, | |
/// but without parentheses.If this frame is not present audio type is | |
/// assumed to be "MPG". | |
/// </summary> | |
public const string FileType = "TFLT"; | |
/// <summary> | |
/// The 'Media type' frame describes from which media the sound | |
/// originated.This may be a text string or a reference to the | |
/// predefined media types | |
/// </summary> | |
public const string MediaType = "TMED"; | |
/// <summary> | |
/// The 'Mood' frame is intended to reflect the mood of the audio with a | |
/// few keywords, e.g. "Romantic" or "Sad". | |
/// </summary> | |
public const string Mood = "TMOO"; | |
/// <summary> | |
/// The 'Copyright message' frame, in which the string must begin with a | |
/// year and a space character(making five characters), is intended for | |
/// the copyright holder of the original sound, not the audio file | |
/// itself.The absence of this frame means only that the copyright | |
/// information is unavailable or has been removed, and must not be | |
/// interpreted to mean that the audio is public domain.Every time this | |
/// field is displayed the field must be preceded with "Copyright " (C) " | |
/// ", where (C) is one character showing a C in a circle. | |
/// </summary> | |
public const string CopyrightMessage = "TCOP"; | |
/// <summary> | |
/// The 'Produced notice' frame, in which the string must begin with a | |
/// year and a space character(making five characters), is intended for | |
/// the production copyright holder of the original sound, not the audio | |
/// file itself.The absence of this frame means only that the production | |
/// copyright information is unavailable or has been removed, and must | |
/// not be interpreted to mean that the audio is public domain.Every | |
/// time this field is displayed the field must be preceded with | |
/// "Produced " (P) " ", where(P) is one character showing a P in a | |
/// circle. | |
/// </summary> | |
public const string ProducedNotice = "TPRO"; | |
/// <summary> | |
/// The publisherThe 'Publisher' frame simply contains the name of the label or publisher. | |
/// </summary> | |
public const string Publisher = "TPUB"; | |
/// <summary> | |
/// The 'File owner/licensee' frame contains the name of the owner or | |
/// licensee of the file and it's contents. | |
/// </summary> | |
public const string FileOwner = "TOWN"; | |
/// <summary> | |
/// The 'Internet radio station name' frame contains the name of the | |
/// internet radio station from which the audio is streamed. | |
/// </summary> | |
public const string InternetRadioStationName = "TRSN"; | |
/// <summary> | |
/// The 'Internet radio station owner' frame contains the name of the | |
/// owner of the internet radio station from which the audio is | |
/// streamed. | |
/// </summary> | |
public const string InternetRadioStationOwner = "TRSO"; | |
/// <summary> | |
/// The 'Original filename' frame contains the preferred filename for the | |
/// file, since some media doesn't allow the desired length of the | |
/// filename.The filename is case sensitive and includes its suffix. | |
/// </summary> | |
public const string OriginalFilename = "TOFN"; | |
/// <summary> | |
/// The 'Playlist delay' defines the numbers of milliseconds of silence | |
/// that should be inserted before this audio.The value zero indicates | |
/// that this is a part of a multifile audio track that should be played | |
/// continuously. | |
/// </summary> | |
public const string PlaylistDelay = "TDLY"; | |
/// <summary> | |
/// The 'Encoding time' frame contains a timestamp describing when the | |
/// audio was encoded.Timestamp format is described in the ID3v2 | |
/// structure document[ID3v2 - strct]. | |
/// </summary> | |
public const string EncodingTime = "TDEN"; | |
/// <summary> | |
/// The 'Original release time' frame contains a timestamp describing | |
/// when the original recording of the audio was released.Timestamp | |
/// format is described in the ID3v2 structure document[ID3v2 - strct]. | |
/// </summary> | |
public const string OriginalReleaseTime = "TDOR"; | |
/// <summary> | |
/// The 'Recording time' frame contains a timestamp describing when the | |
/// audio was recorded.Timestamp format is described in the ID3v2 | |
/// structure document[ID3v2 - strct]. | |
/// </summary> | |
public const string RecordingTime = "TDRC"; | |
/// <summary> | |
/// The 'Release time' frame contains a timestamp describing when the | |
/// audio was first released.Timestamp format is described in the ID3v2 | |
/// structure document [ID3v2-strct]. | |
/// </summary> | |
public const string ReleaseTime = "TDRL"; | |
/// <summary> | |
/// The 'Tagging time' frame contains a timestamp describing then the | |
/// audio was tagged.Timestamp format is described in the ID3v2 | |
/// structure document[ID3v2 - strct]. | |
/// </summary> | |
public const string TaggingTime = "TDTG"; | |
/// <summary> | |
/// The 'Software/Hardware and settings used for encoding' frame | |
/// includes the used audio encoder and its settings when the file was | |
/// encoded.Hardware refers to hardware encoders, not the computer on | |
/// which a program was run. | |
/// </summary> | |
public const string SoftwareSettings = "TSSE"; | |
/// <summary> | |
/// The 'Album sort order' frame defines a string which should be used | |
/// instead of the album name(TALB) for sorting purposes.E.g.an album | |
/// named "A Soundtrack" might preferably be sorted as "Soundtrack". | |
/// </summary> | |
public const string AlbumSortOrder = "TSOA"; | |
/// <summary> | |
/// The 'Performer sort order' frame defines a string which should be | |
/// used instead of the performer(TPE2) for sorting purposes. | |
/// </summary> | |
public const string PerformerSortOrder = "TSOP"; | |
/// <summary> | |
/// The 'Title sort order' frame defines a string which should be used | |
/// instead of the title(TIT2) for sorting purposes. | |
/// </summary> | |
public const string TitleSortOrder = "TSOT"; | |
/// <summary> | |
/// This frame is intended for one-string text information concerning the | |
/// audio file in a similar way to the other "T"-frames.The frame body | |
/// consists of a description of the string, represented as a terminated | |
/// string, followed by the actual string. There may be more than one | |
/// "TXXX" frame in each tag, but only one with the same description | |
/// </summary> | |
public const string UserDefinedTextInfo = "TXXX"; | |
/// <summary> | |
/// The 'Commercial information' frame is a URL pointing at a web-page | |
/// with information such as where the album can be bought.There may be | |
/// more than one "WCOM" frame in a tag, but not with the same content. | |
/// </summary> | |
public const string ComercialInformation = "WCOM"; | |
/// <summary> | |
/// The 'Copyright/Legal information' frame is a URL pointing at a | |
/// webpage where the terms of use and ownership of the file is | |
/// described. | |
/// </summary> | |
public const string CopyrightWebpage = "WCOP"; | |
/// <summary> | |
/// The 'Official audio file webpage' frame is a URL pointing at a file | |
/// specific webpage. | |
/// </summary> | |
public const string OfficialAudioWebpage = "WOAF"; | |
/// <summary> | |
/// The 'Official artist/performer webpage' frame is a URL pointing at | |
/// the artists official webpage.There may be more than one "WOAR" frame | |
/// in a tag if the audio contains more than one performer, but not with | |
/// the same content. | |
/// </summary> | |
public const string OfficialArtitstWebpage = "WOAR"; | |
/// <summary> | |
/// The 'Official audio source webpage' frame is a URL pointing at the | |
/// official webpage for the source of the audio file, e.g.a movie. | |
/// </summary> | |
public const string OfficialSourceWebpage = "WOAS"; | |
/// <summary> | |
/// The 'Official Internet radio station homepage' contains a URL | |
/// pointing at the homepage of the internet radio station. | |
/// </summary> | |
public const string OfficialInternetRadioWebpage = "WORS"; | |
/// <summary> | |
/// The 'Payment' frame is a URL pointing at a webpage that will handle | |
/// the process of paying for this file. | |
/// </summary> | |
public const string PaymentWebpage = "WPAY"; | |
/// <summary> | |
/// The 'Publishers official webpage' frame is a URL pointing at the | |
/// official webpage for the publisher. | |
/// </summary> | |
public const string PublishersWebpage = "WPUB"; | |
/// <summary> | |
/// This frame is intended for URL [URL] links concerning the audio file | |
/// in a similar way to the other "W"-frames.The frame body consists | |
/// of a description of the string, represented as a terminated string, | |
/// followed by the actual URL.The URL is always encoded with ISO-8859-1 | |
/// [ISO-8859-1]. There may be more than one "WXXX" frame in each tag, | |
/// but only one with the same description. | |
/// </summary> | |
public const string UserDefinedWebpage = "WXXX"; | |
/// <summary> | |
/// This frame is intended for music that comes from a CD, so that the CD | |
/// can be identified in databases such as the CDDB[CDDB]. The frame | |
/// consists of a binary dump of the Table Of Contents, TOC, from the CD, | |
/// which is a header of 4 bytes and then 8 bytes/track on the CD plus 8 | |
/// bytes for the 'lead out', making a maximum of 804 bytes.The offset | |
/// to the beginning of every track on the CD should be described with a | |
/// four bytes absolute CD-frame address per track, and not with absolute | |
/// time.When this frame is used the presence of a valid "TRCK" frame is | |
/// REQUIRED, even if the CD's only got one track. It is recommended that | |
/// this frame is always added to tags originating from CDs.There may | |
/// only be one "MCDI" frame in each tag. | |
/// </summary> | |
public const string MusicCdIdentifier = "MCDI"; | |
/// <summary> | |
/// This frame allows synchronisation with key events in the audio | |
/// </summary> | |
public const string EventTimingCodes = "ETCO"; | |
/// <summary> | |
/// This ID3v2 frame includes references that the | |
/// software can use to calculate positions in the file | |
/// </summary> | |
public const string MpegLocationLookupTable = "MLLT"; | |
/// <summary> | |
/// For a more accurate description of the tempo of a musical piece, this | |
/// frame might be used. Each tempo code consists of one tempo part and one time | |
/// part.The tempo is in BPM described with one or two bytes. All tempo descriptors MUST be sorted in chronological | |
/// order.The first beat-stroke in a time-period is at the same time as | |
/// the beat description occurs.There may only be one "SYTC" frame in | |
/// each tag. | |
/// </summary> | |
public const string SynchronisedTempoCodes = "SYTC"; | |
/// <summary> | |
/// This frame contains the lyrics of the song or a text transcription of | |
/// other vocal activities. | |
/// </summary> | |
public const string UnsynchronisedLyrics = "USLT"; | |
/// <summary> | |
/// This is another way of incorporating the words, said or sung lyrics, | |
/// in the audio file as text, this time, however, in sync with the | |
/// audio.It might also be used to describing events | |
/// </summary> | |
public const string SynchronisedLyrics = "SYLT"; | |
/// <summary> | |
/// This frame is intended for any kind of full text information that | |
/// does not fit in any other frame. | |
/// </summary> | |
public const string Comments = "COMM"; | |
/// <summary> | |
/// It allows the user to say how much he wants to increase/decrease the volume on each | |
/// channel when the file is played | |
/// </summary> | |
public const string RelativeVolumeAdjustment2 = "RVA2"; | |
/// <summary> | |
/// It allows the user to predefine an equalisation curve within the audio file. | |
/// </summary> | |
public const string Equalisation2 = "EQU2"; | |
/// <summary> | |
/// Reverb left/right is the delay between every bounce | |
/// in ms.Reverb bounces left/right is the number of bounces that should | |
/// be made.The reverb | |
/// </summary> | |
public const string Reverb = "RVBR"; | |
/// <summary> | |
/// This frame contains a picture directly related to the audio file. | |
/// </summary> | |
public const string AttachedPicture = "APIC"; | |
/// <summary> | |
/// In this frame any type of file can be encapsulated | |
/// </summary> | |
public const string GeneralEncapsulatedObject = "GEOB"; | |
/// <summary> | |
/// Counter of the number of times a file has been played. | |
/// </summary> | |
public const string PlayCounter = "PCNT"; | |
/// <summary> | |
/// Provides a ranting system based on person's taste. | |
/// The rating is 1-255 where 1 is worst and 255 is best. 0 is unknown. | |
/// </summary> | |
public const string Popularmiter = "POPM"; | |
/// <summary> | |
/// The recommended buffer size | |
/// </summary> | |
public const string RecommendedBufferSize = "RBUF"; | |
/// <summary> | |
/// Indicates if the actual audio stream is encrypted, and by whom. | |
/// </summary> | |
public const string AudioEncryption = "AENC"; | |
/// <summary> | |
/// The linked informationTo keep information duplication as low as possible this frame may be | |
/// used to link information from another ID3v2 tag that might reside in | |
/// another audio file or alone in a binary file.It is RECOMMENDED that | |
/// this method is only used when the files are stored on a CD-ROM or | |
/// other circumstances when the risk of file separation is low. | |
/// </summary> | |
public const string LinkedInformation = "LINK"; | |
/// <summary> | |
/// Delivers information to the listener of how far into the | |
/// audio stream he picked up. | |
/// </summary> | |
public const string PositionSynchronisation = "POSS"; | |
/// <summary> | |
/// Contains a brief description of the terms of use and | |
/// ownership of the file. | |
/// </summary> | |
public const string TermsOfUse = "USER"; | |
/// <summary> | |
/// Might be used as a reminder of a made transaction | |
/// or, if signed, as proof. | |
/// </summary> | |
public const string Ownership = "OWNE"; | |
/// <summary> | |
/// This frame enables several competing offers in the same tag by | |
/// bundling all needed information. | |
/// </summary> | |
public const string Comercial = "COMR"; | |
/// <summary> | |
/// To identify with which method a frame has been encrypted. | |
/// </summary> | |
public const string EncryptionMethodRegistration = "ENCR"; | |
/// <summary> | |
/// This frame enables grouping of otherwise unrelated frames. This can | |
/// be used when some frames are to be signed.To identify which frames | |
/// belongs to a set of frames a group identifier must be registered in | |
/// the tag with this frame. | |
/// </summary> | |
public const string GroupIdentificationRegistration = "GRID"; | |
/// <summary> | |
/// Is used to contain information from a software producer | |
/// that its program uses and does not fit into the other frames. | |
/// </summary> | |
public const string Private = "PRIV"; | |
/// <summary> | |
/// enables a group of frames, grouped with the 'Group | |
/// identification registration', to be signed. | |
/// </summary> | |
public const string Signature = "SIGN"; | |
/// <summary> | |
/// Indicates where other tags in a file/stream can be found. | |
/// </summary> | |
public const string Seek = "SEEK"; | |
/// <summary> | |
/// Audio files with variable bit rates are intrinsically difficult to | |
/// deal with in the case of seeking within the file.The ASPI frame | |
/// makes seeking easier by providing a list a seek points within the | |
/// audio file.The seek points are a fractional offset within the audio | |
/// data, providing a starting point from which to find an appropriate | |
/// point to start decoding. | |
/// </summary> | |
public const string AudioSeekPointIndex = "ASPI"; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment