============================================ Description of the Cuesheet/TOC File Formats ============================================ :Author: Svend Sorensen :Contact: sorensen@users.berlios.de :Date: $LastChangedDate$ .. contents:: The Cuesheet (cue) and TOC (toc) file formats both describe the layout of a CD. Notes ===== A Cuesheet 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 required field ``[field]`` an optional field ``...`` preceding field may be repeated any number of times Cuesheet Format =============== Keywords -------- REM ~~~ :Section(s): any :Format: ``REM [comments]`` Begin a comment line. All lines beginning with ``REM`` are ignored. CATALOG ~~~~~~~ :Section(s): global :Format: ``CATALOG ""`` Sets the catalog number of the CD. The ``catalog_number`` must be exactly 13 digits. FILE ~~~~ :Section(s): track :Format: ``FILE "" [file_format]`` Sets a new input file. ``FILE`` line precedes the beginning of the track section. Allowable ``file_format`` entries are ``BINARY``, ``MOTOROLA``, ``AIFF``, ``WAVE``, or ``MP3``. TRACK ~~~~~ :Section(s): track :Format: ``TRACK `` Starts a new track. ``track_number`` must be a positive integer. Allowable ``track_mode`` entries are ``MODE1/2048``, ``MODE1/2352``, ``MODE2/2336``, ``MODE2/2048``, ``MODE2/2324``, ``MODE2/2336``, or ``MODE2/2352``. FLAGS ~~~~~ :Section(s): track :Format: ``FLAGS [flag]...`` Sets track flags. Allowable ``flag`` entries are ``PRE``, ``DCP``, ``4CH``, and ``SCMS``. ISRC ~~~~ :Section(s): track :Format: ``ISRC `` Sets track ISRC number. ``ISRC_number`` must be of the format CCOOOOYYSSSSS. 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`` must be in MSF format. (CD-TEXT keywords) ~~~~~~~~~~~~~~~~~~ :Section(s): any :Format: `` ""`` See `CD-TEXT`_ section for a list of CD-TEXT keywords. The cue format cannot handle binary CD-TEXT. TOC File Format =============== 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 ======= Keywords -------- ========== ====== Keyword Format ========== ====== TITLE char PERFORMER char SONGWRITER char COMPOSER char ARRANGER char MESSAGE char DISC_ID binary GENRE binary TOC_INFO binary TOC_INFO2 binary UPC_EAN char ISRC char SIZE_INFO binary ========== ====== Definitions =========== MSF format a representation of time in the form ``mm:ss:ff``. ``mm`` is minutes, ``ss`` is seconds, and ``ff`` is frames frame 1/74 of a second