Catalog · How the catalog works
Advanced-mp3-Tag
An Advanced Version of an MP3 tag Editor with lots of Meta Information and a batch function.
- ★ 1 on GitHub
Anyone may press Interesting, signed in or not. It helps others find this project.
README
:computer: Advanced-mp3-Tag:
</br>



</br>
Advanced-mp3-Tag is a metadata container most often used in conjunction with the MP3 audio file format. It allows information such as the title, artist, album, track number, and other information about the file to be stored in the file itself.
ID3 is a de facto standard for metadata in MP3 files; no standardization body was involved in its creation nor has such an organization given it a formal approval status.[1] It competes with the APE tag in this area.
There are two unrelated versions of ID3: ID3v1 and ID3v2. In ID3v1, the metadata is stored in a 128-byte segment at the end of the file. In ID3v2, an extensible set of "frames" located at the start of the file is used. Sub-variants of both versions exist.
</br>
</br> </br>
Technical structure of ID3v1
The ID3v1 standard was developed by Eric Kemp in 1996. It solved the problem that MP3 files could not originally store native metadata. Its structure is based on a fixed 128-byte block at the end of the file, which held basic information such as title, artist, album, year, genre (as an 8-bit number), and a short comment.
The 128-byte block is strictly divided into fixed sections:
Header (3 bytes): Defined by the character string TAG.Title (30 bytes): Title of the song.Artist (30 Bytes): Performer.Album (30 Bytes): Albumname.Year (4 bytes): Year of publication (as text).Comment (30 bytes / 28 bytes in v1.1): Free text field.Genre (1 byte): A predefined numeric value originally limited to 80 genres (such as rock, pop, and jazz).
</br>
Technical structure of ID3v2
The ID3v2 format was developed by Martin Nilsson in 1998 to overcome the significant technical limitations of the old ID3v1 standard. While ID3v1 stored data rigidly at the end of the file, ID3v2 uses a dynamic system of "frames" (data blocks) at the beginning of the MP3 file.
Here is the historical development of the various ID3v2 specifications, based on the official ID3.org documentation and development history:
</br>
| function | ID3v1 (predecessor) | ID3v2 (From 1998) |
|---|---|---|
| Position | End of file (last 128 bytes) | Start of file (usually) |
| Size limit | Maximum of 30 characters per field | Virtually unlimited (up to 256 MB) |
| Character set | Pure ISO-8859-1 (ASCII) | Unicode (UTF-16 and UTF-8) |
| Content | Text only (Title, Artist, Album) | Images, lyrics, binary data |
</br>
ID3v2.0:
A ID3v2 tag consists of a number of optional frames, each of which contains a piece of metadata up to 16 MB in size. For example, a TT2 frame may be included to contain a title. The entire tag may be as large as 256 MB, and strings may be encoded in Unicode.
ID3v2.2:
The first public variant of v2, ID3v2.2, used three character frame identifiers rather than four (TT2 for the title instead of TIT2). It is considered obsolete.
ID3v2.3:
ID3v2.3 is the most widely used version of ID3v2 tags and is widely supported by Windows Explorer and Windows Media Player. Notably it introduced the ability to embed an image such as an album cover.
ID3v2.4:
ID3v2.4 was published on November 1, 2000. It defines 83 frame types, allows text frames to contain multiple values separated with a null byte, and permits the tag to be stored at either the beginning or the end of the file.
Lyrics:
Lyrics3v1 and Lyrics3v2 were tag standards implemented before ID3v2, for adding lyrics to mp3 files. The difference with ID3v2 is that Lyrics3 is always at the end of an MP3 file, before the ID3v1 tag.
Lyrics are the words to a song. A person who writes lyrics is called a lyricist.
The lyrics of a song will usually have a meaning. Some times the meaning is easy to find but other times it can be very difficult to know what the lyrics mean. Some lyrics are so strange that it is nearly impossible to understand them. In such cases, people tend to look more at the form, articulation, meter, and symmetries of the lyrics instead of looking at their meaning.
</br>
Batch File Tag:
"mp3 batch tag" refers to editing the metadata (tags) of multiple MP3 files at the same time.
</be>
</br> </br>
:wrench: Mp3FileUtils.pas Library:
A collection of classes for reading and writing various information from MP3 files with Delphi. The classes are compatible with Delphi 7 (possibly earlier) up to Delphi 2010.
:wrench: Properties:
- Reading and writing the
ID3v1tag - Reading and writing the
ID3v2tag - Support for all existing versions:
v1, v1.1, v2.2, v2.3, andv2.4 - Easy access to standard properties such as artist and title
- Access to extended properties such as lyrics, images, URLs, and ratings
- Access to any information fields is possible, requiring advanced programming knowledge of the ID3 tag structure.
- Unicode support
- Unsynchronization support
- Unknown frames (~ information fields) in the tag are retained.
- Reading/calculating the MPEG information of an MP3 file - e.g., bit rate, channel mode, sample rate, duration
- Fast data determination: Even with vbr, the playing time is (almost) always determined correctly without having to read the entire file.
New in Version 6.0
- Support for "Private Frames"
- Detection of the VBRI header
- a few new genres in the genre list for ID3v1
- New methods Get/SetUserText, GetAllUsertextFrames
- ID3v2Tag.ReadFromStream is faster: the tag is loaded completely first, and the individual frames are then read from the memory stream.
- Methods SetRating and SetPersonalPlayCounter combined into SetRatingAndCounter.
- Bug fix: Correct reading of UTF-8 encoded text frames with Delphi 2009
- Bugfix: ExtendedHeader size was misinterpreted.
- Bug fix: User-defined text frames (TXXX) have a different structure than standard text frames.
- Bugfix: Fixed mixed types in GetFrameLength
</br>
Download latest Version : Mp3FileUtils
Download latest Version (Lazarus) : Mp3FileUtils
Required Additional Components:
Depending on the compiler switch settings (in the config.inc file), the TNT Unicode Controls are required for Delphi 2007 (or earlier). The older (free) versions can be found here , or you can search the web yourself. Or purchase the current versions from TMS. Without these components, files with "Unicode filenames" cannot be processed.
Delphi 2009 or later support Unicode natively.
Lazarus port:
This isn't mine, but Frank Plagge's. Details can be found in the unit's comments. The archive contains demo programs for Windows and Mac.

