=========================================================== Description of the Cue Sheet/Table of Contents File Formats =========================================================== :Author: Svend Sorensen :Contact: sorensen@users.berlios.de :Date: $LastChangedDate$ .. contents:: The Cue Sheet (cue) and Table of Contents (toc) file formats both describe the layout of a CD. Notes ===== A cue or toc file has an (optional) global section, followed by any number of track sections. Lines (with a few exceptions for the toc format) begin with a keyword, which may be followed by whitespace separated fields. Some keywords are only allowed in the global section or a track section. Format Notation --------------- A string may be enclosed in single or double quotation marks. If the string contains whitespace, it must be enclosed in quotation marks. ```` a required field ``[field]`` an optional field ``...`` preceding field may be repeated any number of times Cue Sheet Format ================ The standard file suffix for a cue file is ``.cue``. Keywords -------- CATALOG ~~~~~~~ :Description: Sets the catalog number of the CD. :Section(s): global :Format: ``CATALOG `` ``catalog_number`` an integer consisting of exactly 13 digits. CDTEXTFILE ~~~~~~~~~~ :Description: Sets an external file for CD-TEXT data. :Section(s): global :Format: ``CDTEXTFILE `` ``filename`` a string. The CD-TEXT file contains encoded CD-TEXT data. The standard extension for CD-TEXT files is ``.cdt``. FILE ~~~~ :Description: Sets a new input file. :Section(s): track :Format: ``FILE [file_format]`` ``filename`` a string. ``file_format`` one of: ``BINARY``, ``MOTOROLA``, ``AIFF``, ``WAVE``, or ``MP3`` [#]_. ``FILE`` line precedes the beginning of the track section. .. [#] The cdrtools_ ``cue.c`` file also has ``file_format`` entries for ``AU`` and ``OGG``. FLAGS ~~~~~ :Description: Sets track flags. :Section(s): track :Format: ``FLAGS [flag]...`` ``flag`` one of: ``PRE``, ``DCP``, ``4CH``, or ``SCMS``. INDEX ~~~~~ :Description: Sets a track index. :Section(s): track :Format: ``INDEX `` ``index_number`` an integer in the range 0-99. ``index`` time in MSF format. Having an ``INDEX 00`` and an ``INDEX 01`` defines a pregap using data from the ``FILE``. ISRC ~~~~ :Description: Sets track ISRC number. :Section(s): track :Format: ``ISRC `` ``ISRC_number`` a string with the format CCOOOOYYSSSSS. POSTGAP ~~~~~~~ :Description: Sets track postgap. :Section(s): track :Format: ``POSTGAP `` ``postgap`` time in MSF format. PREGAP ~~~~~~ :Description: Sets track pregap. :Section(s): track :Format: ``PREGAP `` ``pregap`` time in MSF format. The pregap is filled with generated silence. REM ~~~ :Description: Begins a comment line. :Section(s): any :Format: ``REM [comments]`` TRACK ~~~~~ :Description: Starts a new track. :Section(s): track :Format: ``TRACK `` ``track_number`` a positive integer in the range 1-99. ``track_mode`` one of: ``AUDIO``, ``CDG``, ``MODE1/2048``, ``MODE1/2352``, ``MODE2/2336``, ``MODE2/2352``, ``CDI/2336``, or ``CDI/2352``. (CD-TEXT keywords) ~~~~~~~~~~~~~~~~~~ :Description: Sets CD-TEXT data. :Section(s): any :Format: `` `` ``CDTEXT_keyword`` one of: (see `CD-TEXT`_ section for a list of keywords). ``CDTEXT_field`` a string. The cue format does not have native support for binary CD-TEXT. Table of Contents File Format ============================= The standard file suffix for a toc file is ``.toc``. Certain keywords begin a block, which must be enclosed between ``{`` and ``}`` brackets. Comments -------- Comments begin with ``//`` and may be placed anywhere. Because they can be placed anywhere in a line, toc comments are treated as a special case (not as a keyword). Any text beginning with ``//`` is stripped from each line. Keywords -------- CATALOG ~~~~~~~ :Section(s): global :Format: ``CATALOG ""`` Sets the catalog number of the CD. ``catalog_number`` must be exactly 13 digits. CD_DA ~~~~~ :Section(s): global :Format: ``CD_DA`` Sets the CD format to audio. CD_ROM ~~~~~~ :Section(s): global :Format: ``CD_ROM`` Sets the CD format to data. CD_ROM_XA ~~~~~~~~~ :Section(s): global :Format: ``CD_ROM_XA`` Sets the CD format to mixed. TRACK ~~~~~ :Section(s): track :Format: ``TRACK [sub_channel_mode]`` NO ~~ :Section(s): track :Format: ``NO `` Negates (clears) track flags. Allowable ``flag`` entries are ``COPY`` and ``PRE_EMPHASIS``. COPY ~~~~ :Section(s): track :Format: ``COPY`` Sets the copy permitted flag. PRE_EMPHASIS ~~~~~~~~~~~~ :Section(s): track :Format: ``PRE_EMPHASIS`` Sets the pre-emphasis flag. TWO_CHANNEL_AUDIO ~~~~~~~~~~~~~~~~~ :Section(s): track :Format: ``TWO_CHANNEL_AUDIO`` Sets the two channel audio flag. FOUR_CHANNEL_AUDIO ~~~~~~~~~~~~~~~~~~ :Section(s): track :Format: ``FOUR_CHANNEL_AUDIO`` Sets the four channel audio flag. ISRC ~~~~ :Section(s): track :Format: ``ISRC ""`` Sets track ISRC number. ``ISRC_number`` must be of the format CCOOOOYYSSSSS. SILENCE ~~~~~~~ :Section(s): track *TODO* ZERO ~~~~ :Section(s): track *TODO* FILE ~~~~ :Section(s): track :Format: ``FILE "" [length]`` Add file to current track. ``start`` and ``length`` must be in MSF format. AUDIOFILE ~~~~~~~~~ :Section(s): track :Format: ``AUDIOFILE "" [length]`` Add file to current track. ``start`` and ``length`` must be in MSF format. DATAFILE ~~~~~~~~ :Section(s): track *TODO* FIFO ~~~~ :Section(s): track *TODO* START ~~~~~ :Section(s): track :Format: ``START `` *TODO* PREGAP ~~~~~~ Section(s): track Format: ``PREGAP `` Sets track pregap. ``pregap`` must be in MSF format. INDEX ~~~~~ :Section(s): track :Format: ``INDEX `` Sets a track index. ``index_number`` must be a non-negative integer. ``index_time`` must be in MSF format. CD_TEXT ~~~~~~~ :Section(s): any :Format: ``CD_TEXT {}`` Begins a CD-TEXT block. LANGUAGE_MAP ~~~~~~~~~~~~ :Section(s): global :Subsection(s): CD-TEXT block :Format: ``LANGUAGE_MAP { language_map... }`` Begins a language map block. ``language_map`` is a mapping of an integer in the range 0-255 to a country code. LANGUAGE ~~~~~~~~ :Section(s): track :Subsection(s): CD-TEXT block :Format: ``LANGUAGE language_number { cd_text }`` Begins a language block. ``language_number`` must be an integer in the range 0-255. ``cd_text`` is a series of CD-TEXT keyword lines. (CD-TEXT keywords) ~~~~~~~~~~~~~~~~~~ :Section(s): any :Subsection(s): language block :Format1: `` ""`` :Format2: `` { CDTEXT_binary_data }`` See `CD-TEXT`_ section for a list of CD-TEXT keywords. Format1 is for character data and Format2 is for binary data. ``CDTEXT_binary_data`` is a comma seperated list of integers in the range 0-255. CD-TEXT ======= MMC-3_ specifies 16 CD-TEXT types. Three are reserved and have no corresponding keywords. One is shared; the keyword depends on whether it is for the disc (``UPC_EAN``) or a track (``ISRC``). CD-TEXT entries are either character or binary data. All descriptions taken from MMC-3_. Keywords -------- ARRANGER ~~~~~~~~ :Description: Name(s) of the arranger(s) :Section: any :Format: character COMPOSER ~~~~~~~~ :Description: Name(s) of the composer(s) :Section: any :Format: character DISC_ID ~~~~~~~ :Description: Disc Identification information :Section: any :Format: binary GENRE ~~~~~ :Description: Genre Identification and Genre information :Section: any :Format: binary Genre codes are in the Enhanced CD Specification or cdrtools_ ``cdtext.h`` file. ISRC ~~~~~ :Description: ISRC Code of each track :Section: track :Format: character MESSAGE ~~~~~~~ :Description: Message from the content provider and/or artist :Section: any :Format: character PERFORMER ~~~~~~~~~ :Description: Name(s) of the performer(s) :Section: any :Format: character SONGWRITER ~~~~~~~~~~ :Description: Name(s) of the songwriter(s) :Section: any :Format: character TITLE ~~~~~ :Description: Title of album name or Track Titles :Section: any :Format: character TOC_INFO ~~~~~~~~~ :Description: Table of Content information :Section: any :Format: binary TOC_INFO2 ~~~~~~~~~ :Description: Second Table of Content information :Section: any :Format: binary UPC_EAN ~~~~~~~ :Description: UPC/EAN code of the album :Section: disc :Format: character SIZE_INFO ~~~~~~~~~ :Description: Size information of the Block :Section: any :Format: binary Definitions =========== MSF format a representation of time in the form ``m:s:f``. ``m`` is minutes, ``s`` is seconds, and ``f`` is frames. Fields may be zero padded. frame 1/75 of a second. .. _MMC-3: ftp://ftp.t10.org/t10/drafts/mmc3/ .. _cdrtools: http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html