Recent from talks
Nothing was collected or created yet.
CD-Text
View on WikipediaThis article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
|
| Media type | Optical disc |
|---|---|
| Encoding | 2 channels of LPCM audio, plus ITTS data |
| Read mechanism | 780 nm laser diode |
| Standard | Red Book |
| Developed by | Philips & Sony |
| Usage | Audio storage |
| Extended from | CD-DA |
CD-Text is an extension of the Red Book Compact Disc specifications standard for audio CDs. It allows storage of additional information (e.g. album name, song name, and artist name) on a standards-compliant audio CD.
The specification for CD-Text was included in the Multi-Media Commands Set 3 R01 (MMC-3) standard, released in September 1996 and backed by Sony.[1] It was also added to new revisions of the Red Book.[2] The actual text is stored in a format compatible with Interactive Text Transmission System (ITTS), defined in the IEC 61866 standard.[3] The ITTS standard is also applied in the MiniDisc format, as well as in Digital Audio Broadcasting technology and Digital Compact Cassette.
Storage
[edit]| Optical discs |
|---|
The CD-Text information is stored in the subchannels R to W on the disc. This information is usually stored in the subchannels in the lead-in area of the disc, where there is roughly 5 kilobytes of space available. It can also be stored on the main program area of the disc (where the audio tracks are), which can store about 31 megabytes.[1] Since the R to W channels are not used in the Red Book specification of audio CDs, they are not read by all CD players, which prevents some devices from reading CD-Text information.[1]
Format
[edit]CD-text data is defined in a scattered manner between MMC-3 and Sony documentation. The information below uses GNU libcdio's description.[4]
On the lowest level, CD-text is stored in 18-byte "pack" units; this part is defined in MMC-3 Annex J. Each pack consists of 4 bytes of header—type indicator, track number reference, sequential counter, block number and character position indicator (BNCPI); 12 bytes of payload; and 2 bytes of CRC. The type indicator ranges from 0x80 to 0x8F, the 13 defined values being:[5]
| Type | Keyword | Description | Section | Format |
|---|---|---|---|---|
| 0x84 | ARRANGER | Name(s) of the arranger(s) | Any | Character |
| 0x83 | COMPOSER | Name(s) of the composer(s) | Any | Character |
| 0x86 | DISK_ID | Disc Identification information | Disc | Binary |
| 0x87 | GENRE | Genre Identification and Genre information | Disc | Binary |
| 0x8e | ISRC | International Standard Recording Code of each track | Track | Character |
| 0x85 | MESSAGE | Message from the content provider and/or artist | Any | Character |
| 0x81 | PERFORMER | Name(s) of the performer(s) | Any | Character |
| 0x82 | SONGWRITER | Name(s) of the songwriter(s) | Any | Character |
| 0x80 | TITLE | Title of album name or track titles | Any | Character |
| 0x88 | TOC_INFO | Table-of-content information | Disc | Binary |
| 0x89 | TOC_INFO2 | Second table-of-content information | Disc | Binary |
| 0x8e | UPC_EAN | UPC/EAN code of the album | Disc | Character |
| 0x8f | SIZE_INFO | Size information of the block | Any | Binary |
The BNPCI is used to define information that does not fit in one pack. This can be text or binary data. The BNCPI also indicates whether the text is single-byte or double-byte data in the top bit. This determines how null-terminated strings are defined – one or two bytes of 0x00.[4] The DBCS mode is rarely, if ever, used. Its special null handling is not necessary for computer DBCS code pages, as they are "hybrid" with ASCII and compatible in the NUL behavior. UTF-16 could be the intended use.
For block types listed above as "character" (per MMC-3), the payload is a simple null-terminated string. (MMC-3 is written confusingly here – it describes the encoding as "ASCII" in the pack type table despite mentioning the BNCPI flag modifying its behavior later.) The descriptions of the binary fields are vague, but the developers of GNU libcdio has either matched them to sections of MMC-3 or written new descriptions based on Sony's sample.[4]
Another layer of encoding specification is found at this payload level, in the SIZE_INFO block. Here the first byte may be used to indicate the encoding, ASCII, Latin-1, or "MS-JIS". This is supported by the original Sony authoring tools.[4]
See also
[edit]References
[edit]- ^ a b c Unofficial CD Text FAQ.
- ^ Approved Compact Disc Logo configurations.
- ^ IEC 61866:1997 Audiovisual systems – Interactive text transmission system (ITTS).
- ^ a b c d CD Text Format, in GNU libcdio documentation. Provides references to MMC-3 and Sony standards.
- ^ MMC-3 Draft R10G
External links
[edit]CD-Text
View on GrokipediaHistory and Development
Origins
CD-Text originated in the mid-1990s as a collaborative effort between Philips and Sony to extend the capabilities of the Compact Disc Digital Audio (CD-DA) format defined in the Red Book standard. The two companies, which had previously co-developed the core CD technology in the early 1980s, aimed to incorporate textual metadata—such as track titles, artist names, and album details—directly onto audio CDs without disrupting the established audio encoding or playback mechanisms. This development built on their experience with earlier CD extensions like CD-Graphics (CD-G), adapting concepts for text storage to create a more integrated audio experience.[5][6] The primary motivation for CD-Text was to embed essential disc information on the medium itself, minimizing reliance on supplementary materials like printed inserts or emerging external databases for metadata retrieval. By doing so, Philips and Sony sought to enhance user convenience and compatibility with evolving multimedia playback devices, allowing displays of text during audio reproduction on compatible players. CD-Text was announced by Philips and Sony in June 1996.[2] Development progressed through internal collaboration, culminating in the formal specification's inclusion in the Multi-Media Commands Set 3 Revision 01 (MMC-3 R01) standard, released by Sony in September 1996. This timeline reflected Philips and Sony's ongoing commitment to iterative improvements in optical media, ensuring backward compatibility with existing CD infrastructure while introducing new data-handling features.[7][8]Standardization
CD-Text was formally specified in the Multi-Media Commands Set 3 (MMC-3) standard, released in September 1996 and developed through collaboration between Sony Corporation and Philips Electronics.[9] This inclusion defined the commands and sub-channel mechanisms for accessing CD-Text data on audio CDs, enabling devices to read embedded metadata such as track titles and artist information.[10] Subsequent integration occurred in the revised Red Book specifications under IEC 60908, with the second edition published in February 1999 incorporating CD-Text as an official extension to the Compact Disc Digital Audio system.[11] This update aligned CD-Text with the Interactive Text Transmission System (ITTS) outlined in IEC 61866:1997, ensuring compatibility in text packet formatting and transmission protocols across audiovisual systems.[11] The International Electrotechnical Commission (IEC) approved these enhancements, leading to widespread adoption in CD production guidelines by 1997, as evidenced by the release of over 100 CD-Text-enabled titles from major labels that year.[12] Minor updates in the MMC-4 standard and subsequent revisions further improved compatibility by refining read commands and error handling for CD-Text data on evolving optical drives.[13]Technical Specifications
Storage Mechanism
CD-Text data is physically stored in the subchannels R through W within the lead-in area of the compact disc, utilizing space that was previously unused in the standard CD format and providing a capacity of up to approximately 5 KB. This placement allows for the inclusion of essential metadata, such as basic disc and track information, without altering the audio content. The lead-in area, which precedes the program area containing the audio tracks, serves as the primary location for this data to ensure quick accessibility during disc initialization.[14][2] For discs requiring more extensive text, CD-Text can extend into the program area using the R-W subchannels, enabling a total storage capacity of up to 31 MB across the entire disc. In this configuration, the data is distributed via subcodes embedded uniformly throughout the audio tracks, but it remains optional and does not overwrite or interfere with the main audio data, preserving the integrity of the stereo audio signal. This approach leverages the inherent structure of CD subcodes, originally defined in the Red Book standard for compact disc digital audio, to add textual enhancements seamlessly.[15][1] The reading process for CD-Text mirrors that of standard audio playback, employing the same 780 nm infrared laser to scan the disc's pits and lands, followed by specialized subchannel decoding to extract and interpret the embedded text data. This decoding occurs in parallel with audio extraction and introduces no additional overhead beyond the predefined subcode allocation, thereby avoiding any degradation in audio quality or playback performance.[16][2]Data Format
CD-Text data is structured into fixed-length 18-byte packs, which form the fundamental units for storing textual and binary metadata on the disc. Each pack comprises a 4-byte header, a 12-byte payload section for the actual data, and a 2-byte cyclic redundancy check (CRC) field for error detection. The CRC is computed using the polynomial , with the result inverted and stored in big-endian format. These packs are primarily located in the R-W subchannels of the CD's lead-in area.[3] The header provides essential metadata for interpreting the pack:- Byte 0: Pack type identifier (8 bits, e.g., 0x80 for track title).
- Byte 1 specifies the track number (0 for disc-level data, 1–99 for individual tracks).
- Byte 2 holds the sequence number (ranging from 00h to FFh), which orders packs within a text block.
- Byte 3 indicates the character position or block number, with its most significant bit (bit 7) flagging double-byte mode (1 for double-byte characters, 0 for single-byte).
| Byte Position | Field | Description |
|---|---|---|
| 0 | Pack Type | 8 bits: pack type identifier. |
| 1 | Track Number | 8 bits: 0 (disc) or 1–99 (track). |
| 2 | Sequence Number | 8 bits: 00h–FFh, for ordering multi-pack text. |
| 3 | Char. Pos./Block Num. | Bits 0–3: position (0–15); bits 4–6: block (0–7); bit 7: double-byte flag. |
| 4–15 | Payload | 12 bytes: text (null-terminated) or binary data. |
| 16–17 | CRC | 16-bit error check, inverted polynomial result. |