CD-Text

CD-based format that allows for song information to be stored alongside audio data
title: "CD-Text" type: doc version: 1 created: 2026-02-28 author: "Wikipedia contributors" status: active scope: public tags: ["compact-disc", "metadata"] description: "CD-based format that allows for song information to be stored alongside audio data" topic_path: "general/compact-disc" source: "https://en.wikipedia.org/wiki/CD-Text" license: "CC BY-SA 4.0" wikipedia_page_id: 0 wikipedia_revision_id: 0
::summary CD-based format that allows for song information to be stored alongside audio data ::
::data[format=table title="infobox media"]
| Field | Value |
|---|---|
| logo | [[File:CD-Text (logo).svg |
| type | Optical disc |
| encoding | 2 channels of LPCM audio, plus ITTS data |
| read | 780 nm laser diode |
| standard | Red Book |
| owner | Philips & Sony |
| use | Audio storage |
| extended from | CD-DA |
| :: |
| logo = [[File:CD-Text (logo).svg|class=skin-invert|upright=0.5|frameless]] | type = Optical disc | encoding = 2 channels of LPCM audio, plus ITTS data | capacity = | read = 780 nm laser diode | standard = Red Book | owner = Philips & Sony | use = Audio storage | extended from = CD-DA | extended to =
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. It was also added to new revisions of the Red Book. The actual text is stored in a format compatible with Interactive Text Transmission System (ITTS), defined in the IEC 61866 standard. The ITTS standard is also applied in the MiniDisc format, as well as in Digital Audio Broadcasting technology and Digital Compact Cassette.
Storage
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. 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.
Format
CD-text data is defined in a scattered manner between MMC-3 and Sony documentation. The information below uses GNU libcdio's description.
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:
::data[format=table title="CD-Text keywords"]
| 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. 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.
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.
References
References
- [https://www.edocpublish.com/resources-2/specifications/cd-logos/ Approved Compact Disc Logo configurations].
- [https://webstore.iec.ch/publication/6045 IEC 61866:1997 Audiovisual systems – Interactive text transmission system (ITTS)].
- [https://web.ncf.ca/aa571/cdtext.htm Unofficial CD Text FAQ].
- [https://www.gnu.org/software/libcdio/cd-text-format.html CD Text Format], in GNU libcdio documentation. Provides references to MMC-3 and Sony standards.
- [https://www.13thmonkey.org/documentation/SCSI/mmc3r10g.pdf MMC-3 Draft R10G]
::callout[type=info title="Wikipedia Source"] This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page. ::