Cue sheet: Difference between revisions

From Hydrogenaudio Knowledgebase
m (→‎The Background: clarify that the MMC cue sheet is binary, not text; plus minor copy edit)
(→‎Cue Sheet Contents: rearranged this section so that info about cue sheet contents comes first, and info about when a cue sheet is necessary comes last. It's called "cue sheet contents", after all)
Line 26: Line 26:


==Cue Sheet Contents==
==Cue Sheet Contents==
Although a cue sheet isn't necessary to make an exact copy of the audio portion of a CD (i.e., ripping & burning software will get you the audio wave data and can figure out where each track starts), a cue sheet ''can'' be used to specify the location of the first track (if it deviates from the standard), as well as certain subcode information, such as non-01 index points, CD-TEXT (which may not exist on the original CD), UPC/ISRC data, and [[pre-emphasis]] information.
A cue sheet ''is'' required to burn "hidden track one audio" ([[HTOA]]), which is audio that can only be played after scanning backwards from the beginning of track 1. Another situation where a cue sheet is required is when gaps (silent portions) have been omitted from the beginning or end of files to be burned; a cue sheet can be used to reconstruct the gaps by telling the burner or player where to insert silence.
All cue sheets contain the following info:
All cue sheets contain the following info:
* The name & type of at least one file being indexed (an audio file, normally);
* The name & type of at least one file being indexed (an audio file, normally);
Line 36: Line 32:


Cue sheets may contain the following additional info:
Cue sheets may contain the following additional info:
* [[Metadata]] such as performer, title, songwriter for the file and/or the track;
* CD-Text [[metadata]] such as performer, title, songwriter for the disc and/or each track;
* ISRCs (sound recording IDs to burn)
* ISRCs (sound recording IDs to burn)
* Special flags for CD burning (e.g. for pre-emphasis)
* Special flags for CD burning (e.g. for pre-emphasis)
* Gap info (how much silence to insert before or after each track)
* Gap info (how much silence to insert before or after each track)
* Comments (which are used by some programs to store nonstandard metadata like genre, freeDB disc ID, etc.)
* Comments (which are used by some programs to store nonstandard metadata like genre, freeDB disc ID, etc.)
A cue sheet isn't necessary to make an exact copy of the audio portion of a CD; ripping & burning software will get you the audio wave data and can figure out where each track starts. However, a cue sheet ''can'' be used to specify the location of the first track (if it deviates from the standard), as well as certain subcode information, such as non-01 index points, CD-TEXT (which may not exist on the original CD), UPC/ISRC data, and [[pre-emphasis]] information.
A cue sheet ''is'' required to burn "hidden track one audio" ([[HTOA]]), which is audio that can only be played after scanning backwards from the beginning of track 1. Another situation where a cue sheet is required is when gaps (silent portions) have been omitted from the beginning or end of files to be burned; a cue sheet can be used to reconstruct the gaps by telling the burner or player where to insert silence.


== The Background ==
== The Background ==

Revision as of 05:34, 2 March 2011


A cue sheet (or CUE sheet) is a formatted plain text file which is used to provide index information for a large audio file. A cue sheet is generally used in conjunction with either extracting from, or burning to, CD. For example, a cue sheet can tell a media player to treat an audio CD ripped to a single file as if it were separate files, one for each track. Or it can be used to tell software extra details about the layout of a CD to burn. Cue sheets can be used when writing data CDs, but this document focuses solely on the audio-related commands.

Cue Sheet Contents

All cue sheets contain the following info:

  • The name & type of at least one file being indexed (an audio file, normally);
  • A numbered list of tracks each file corresponds to or contains;
  • The start point (index 01) for each track, time-wise (MM:SS:FF format).

Cue sheets may contain the following additional info:

  • CD-Text metadata such as performer, title, songwriter for the disc and/or each track;
  • ISRCs (sound recording IDs to burn)
  • Special flags for CD burning (e.g. for pre-emphasis)
  • Gap info (how much silence to insert before or after each track)
  • Comments (which are used by some programs to store nonstandard metadata like genre, freeDB disc ID, etc.)

A cue sheet isn't necessary to make an exact copy of the audio portion of a CD; ripping & burning software will get you the audio wave data and can figure out where each track starts. However, a cue sheet can be used to specify the location of the first track (if it deviates from the standard), as well as certain subcode information, such as non-01 index points, CD-TEXT (which may not exist on the original CD), UPC/ISRC data, and pre-emphasis information.

A cue sheet is required to burn "hidden track one audio" (HTOA), which is audio that can only be played after scanning backwards from the beginning of track 1. Another situation where a cue sheet is required is when gaps (silent portions) have been omitted from the beginning or end of files to be burned; a cue sheet can be used to reconstruct the gaps by telling the burner or player where to insert silence.

The Background

The cue sheet format was invented by Jeff Arnold of GoldenHawk Technology for use with his DAO (Disc At Once) and CDRWIN applications. The format has since been adopted as the de facto standard, and is used by various other applications, including foobar2000. The official cue sheet specification is widely accepted to be Appendix A of the CDRWIN User's Guide.

The name is taken from the SEND CUE SHEET command, used for sending a binary-format cue sheet describing the disc layout to the drive before writing starts in SAO write mode. The drive writes to the disc, using the cue sheet information to generate the P and Q subchannel data, and to retrieve the format and block size of the data transfered with the WRITE command.

Text adapted from a post by Martin H.

Cue Sheet Commands

The following commands are detailed in the Appendix A of the CDRWIN User's Guide:

  • CATALOG – A 13-digit UPC/EAN code.
  • CDTEXTFILE – A path to a file containing CD-Text info.
  • FILE – A path to a file containing audio data, and to which subsequent commands apply.
  • FLAGS – Per-track subcode flag(s).
  • INDEX – Per-track index(es).
  • ISRC – Per-track ISRC(s).
  • PERFORMER – Per-disc or per-track performer name for CD-Text data.
  • POSTGAP – Amount of post-track silence to add.
  • PREGAP – Amount of pre-track silence to add.
  • REM – A remark/comment to be ignored.
  • SONGWRITER – Per-disc or per-track songwriter name for CD-Text data.
  • TITLE – Per-disc or per-track title for CD-Text data.
  • TRACK – Type of track to create, and to which subsequent commands apply.

Most Often Used

FILE
The FILE command specifies the file that the cue sheet is currently referencing. Valid file types are WAVE, MP3, AIFF, BINARY, and MOTOROLA. Other formats, such as the lossless formats WavPack or FLAC, can also be used under the WAVE file type.
INDEX
A number between 00 and 99. Index points are specified in MM:SS:FF format, and are relative to the start of the file currently referenced. MM is the number of minutes, SS the number of seconds, and FF the number of frames (there are seventy five frames to one second). INDEX 01 commands specify the beginning of a new track. INDEX 00 commands specify the pre-gap of a track; you may notice your Audio CD player count up from a negative value before beginning a new track - this is the period between INDEX 00 and INDEX 01.
PERFORMER
At top-level this will specify the CD artist, while at track-level it specifies the track artist.
PREGAP
Used to specify the length of a track pre-gap, in MM:SS:FF format.
REM
Used to record comments in a cue sheet. This command is often used to store additional meta data to TITLE and PERFORMER, e.g.: the date or genre of the disc.
TITLE
At top-level this will specify the album name, while at track-level it specifies the track name.
TRACK
A number between 01 and 99, indicating the track number.

Whitespace

Line breaks must be used between commands. Spaces or tabs can be used to indent; they're ignored but can make the file easier to understand when viewing or manually editing. Customarily, for audio CDs, all the commands which apply to a particular file are indented under the FILE command, and those which apply to a specific track are further indented under the TRACK command.

A Few Examples

A standard single file cue sheet

REM GENRE Alternative
REM DATE 1991
REM DISCID 860B640B
REM COMMENT "ExactAudioCopy v0.95b4"
PERFORMER "My Bloody Valentine"
TITLE "Loveless"
FILE "My Bloody Valentine - Loveless.wav" WAVE
  TRACK 01 AUDIO
    TITLE "Only Shallow"
    PERFORMER "My Bloody Valentine"
    INDEX 01 00:00:00
  TRACK 02 AUDIO
    TITLE "Loomer"
    PERFORMER "My Bloody Valentine"
    INDEX 01 04:17:52

The cue sheet above, created by EAC, shows the first two tracks of a standard single file cue sheet. Note the use of REM commands to record additional metadata, in the format REM <TAG> "<value>". The PERFORMER and TITLE commands at the top of the cue sheet detail the CD artist and album name respectively. The PERFORMER and TITLE commands at track-level specify the track artist and title.

TRACK 02's INDEX 01 entry does not state that the track is 4m 17.693s long, but that the beginning of the track is 4m 17.693s into the file (so TRACK 01 was in fact 4m 17.693s long). If TRACK 02 was 3m long exactly, TRACK 03's INDEX 01 value would be 07:17:52.

Also note the file reference specifying a relative path to the file (references can also be absolute) and the file type: WAVE.

A single file cue sheet with a TRACK 01 INDEX 00 hidden track

PERFORMER "Bloc Party"
TITLE "Silent Alarm"
FILE "Bloc Party - Silent Alarm.flac" WAVE
 TRACK 01 AUDIO
   TITLE "Like Eating Glass"
   PERFORMER "Bloc Party"
   INDEX 00 00:00:00
   INDEX 01 03:22:70
 TRACK 02 AUDIO
   TITLE "Helicopter"
   PERFORMER "Bloc Party"
   INDEX 00 07:42:69
   INDEX 01 07:44:69

The cue sheet above shows the first two tracks of a single file cue sheet for a disc with a hidden track at the start. Note that TRACK 01 INDEX 01 starts at 03:22:70 (3m 22.933s) instead of 00:00:00 as in the first example, and most cue sheets. The INDEX 00 index on TRACK 02 displays the more usual behaviour, being two seconds before INDEX 01.

As the INDEX 00 is on TRACK 01 you will not normally see the usual countdown from a negative value that you might see from an INDEX 00 command on a subsequent track. To listen to this track on a Audio CD player you will need to start the disc playing and press rewind, to rewind, essentially, from 3m 22s into the disc back to the true beginning.

Also note that the file referenced is FLAC, but the WAVE files type is used. For MP3 files the file type "MP3" should be used, for AIFF you should use "AIFF", but for all other types "WAVE" is used.

Multiple files with corrected gaps

FILE "The Specials - Singles - 01 - Gangsters.wav" WAVE
  TRACK 01 AUDIO
    TITLE "Gangsters"
    PERFORMER "The Specials"
    INDEX 01 00:00:00
FILE "The Specials - Singles - 02 - Rudi, A Message To You.wav" WAVE
  TRACK 02 AUDIO
    TITLE "Rudi, A Message To You"
    PERFORMER "The Specials"
    INDEX 00 00:00:00
    INDEX 01 00:00:28

This mutiple file cue sheet, created by EAC, has gaps prepended to the next track. This method allows users to retain gaps, but by prepending the gap to the next track each track may begin with silence, which makes playback less satisfactory.

Multiple files with gaps left out

FILE "The Specials - Singles - 01 - Gangsters.wav" WAVE
  TRACK 01 AUDIO
    TITLE "Gangsters"
    PERFORMER "The Specials"
    INDEX 01 00:00:00
FILE "The Specials - Singles - 02 - Rudi, A Message To You.wav" WAVE
  TRACK 02 AUDIO
    TITLE "Rudi, A Message To You"
    PERFORMER "The Specials"
    PREGAP 00:00:28
    INDEX 01 00:00:00

This mutiple file cue sheet, created by EAC, has removed the gaps, but artificially recreates silence between tracks using the PREGAP command. This is fine if the gap was silence, but unsatisfactory if it contained audio.

Multiple files with gaps (Noncompliant)

FILE "The Specials - Singles - 01 - Gangsters.wav" WAVE
  TRACK 01 AUDIO
    TITLE "Gangsters"
    PERFORMER "The Specials"
    INDEX 01 00:00:00
  TRACK 02 AUDIO
    TITLE "Rudi, A Message To You"
    PERFORMER "The Specials"
    INDEX 00 02:47:74
FILE "The Specials - Singles - 02 - Rudi, A Message To You.wav" WAVE
    INDEX 01 00:00:00

This mutiple file cue sheet, created by EAC, has gaps appended to the previous track, and is a favourite among users who rip to track files but wish to retain gap information. This format allows the user to retain gaps, but in a position in the track file that does not hinder playback. Unfortunately, this format is non-compliant, so applications that adhere to the specification, like foobar2000, will not be able to read it. EAC will obviously read these cue sheets, as will the CD burning application Burrrn.

Note that INDEX 00 of TRACK 02 is set while still referencing the first FILE.

Single file version of the cue sheet used above

FILE "The Specials - Singles.wav" WAVE
  TRACK 01 AUDIO
    TITLE "Gangsters"
    PERFORMER "The Specials"
    INDEX 01 00:00:00
  TRACK 02 AUDIO
    TITLE "Rudi, A Message To You"
    PERFORMER "The Specials"
    INDEX 00 02:47:74
    INDEX 01 02:48:27

For reference, the cue sheet used in the examples above in single file format.

Example Cue Sheet

REM GENRE Ska
REM DATE 1991
REM DISCID D00DA810
REM COMMENT "ExactAudioCopy v0.95b4"
PERFORMER "The Specials"
TITLE "Singles"
FILE "The Specials - Singles.wav" WAVE
  TRACK 01 AUDIO
    TITLE "Gangsters"
    PERFORMER "The Specials"
    INDEX 01 00:00:00
  TRACK 02 AUDIO
    TITLE "Rudi, A Message To You"
    PERFORMER "The Specials"
    INDEX 00 02:47:74
    INDEX 01 02:48:27
  TRACK 03 AUDIO
    TITLE "Nite Klub"
    PERFORMER "The Specials"
    INDEX 00 05:41:50
    INDEX 01 05:42:27
  TRACK 04 AUDIO
    TITLE "Too Much Too Young"
    PERFORMER "The Specials"
    INDEX 00 08:53:47
    INDEX 01 08:54:37
  TRACK 05 AUDIO
    TITLE "Guns Of Navarone"
    PERFORMER "The Specials"
    INDEX 00 10:59:20
    INDEX 01 11:00:17
  TRACK 06 AUDIO
    TITLE "Rat Race"
    PERFORMER "The Specials"
    INDEX 00 13:20:55
    INDEX 01 13:20:67
  TRACK 07 AUDIO
    TITLE "Stereotype"
    PERFORMER "The Specials"
    INDEX 00 16:29:67
    INDEX 01 16:30:30
  TRACK 08 AUDIO
    TITLE "International Jet Set"
    PERFORMER "The Specials"
    INDEX 00 20:19:27
    INDEX 01 20:20:20
  TRACK 09 AUDIO
    TITLE "Do Nothing"
    PERFORMER "The Specials"
    INDEX 00 24:30:70
    INDEX 01 24:32:27
  TRACK 10 AUDIO
    TITLE "Ghost Town"
    PERFORMER "The Specials"
    INDEX 00 28:23:30
    INDEX 01 28:23:42
  TRACK 11 AUDIO
    TITLE "Why?"
    PERFORMER "The Specials"
    INDEX 00 34:21:37
    INDEX 01 34:21:47
  TRACK 12 AUDIO
    TITLE "Friday Night, Saturday Morning"
    PERFORMER "The Specials"
    INDEX 00 38:16:50
    INDEX 01 38:16:55
  TRACK 13 AUDIO
    TITLE "War Crimes"
    PERFORMER "The Specials"
    INDEX 00 41:50:07
    INDEX 01 41:51:00
  TRACK 14 AUDIO
    TITLE "Racist Friend"
    PERFORMER "The Specials"
    INDEX 00 45:50:55
    INDEX 01 45:51:72
  TRACK 15 AUDIO
    TITLE "Nelson Mandela"
    PERFORMER "The Specials"
    INDEX 00 49:35:55
    INDEX 01 49:38:22
  TRACK 16 AUDIO
    TITLE "(What I Like Most About You Is Your) Girlfriend"
    PERFORMER "The Specials"
    INDEX 00 54:11:00
    INDEX 01 54:12:40

Useful Applications

Playing

Splitting

Joining

Creating

Other

  • TBD

See Also

External Links