Cue sheet (computing)
View on WikipediaThis article needs additional citations for verification. (May 2010) |
A cue sheet, or cue file, is a metadata file which describes how the tracks of a CD or DVD[citation needed] are laid out. Cue sheets are stored as plain text files and commonly have a .cue filename extension. CDRWIN first introduced cue sheets,[1] which are now supported by many optical disc authoring applications and media players.
Overview
[edit]Cue sheets can describe many types of audio and data CDs. The main data (including audio) for a CD described by a cue sheet is stored in one or more files referenced by the cue sheet. Cue sheets also specify track lengths and CD-Text including track and disc titles and performers. They are especially useful when dividing audio stored in a single file into multiple songs or tracks. The data files referred to by the cue sheet may be audio files (commonly in MP3 or WAV format), or plain disc images, usually with a .bin extension.
When used for disc images, the format is usually called BIN/CUE, indicating that it stores a disc image composed of one cue sheet file and one or more .bin files. The .bin files are raw sector-by-sector binary copies of tracks in the original discs. These binary .bin files usually contain all 2,352 bytes from each sector in an optical disc, including control headers and error correction data in the case of CD-ROMs (unlike ISO images of CD-ROMs, which store only the user data). However, the TRACK command in a cue sheet file can be used to refer to binary disc images that contain only the user data of each sector, by indicating the specific CD mode of the tracks from which the image was created (which is necessary to know the size of the user data in each sector).
The BIN/CUE format is one of the few formats besides Nero's NRG, Alcohol 120%'s MDF/MDS and CloneCD's CCD/IMG/SUB disc image formats to support Mixed Mode CDs which can contain audio CD tracks as well as data tracks.
The name "cue sheet" originates from the "send cue sheet" SCSI/ATA command in optical disc authoring.[1] The specification for that command defines a cue sheet format containing mostly the same information, but in a tabular, binary data structure, rather than a text file.[2]
In October 2023, a vulnerability was discovered in the libcue library, which parses cue sheets on Linux systems with GNOME desktops. The exploit could give an attacker code execution rights on GNOME systems.[3]
Audio file playback
[edit]An entire multi-track audio CD may be ripped to a single audio file and a cue sheet. However, software audio players and hardware digital audio players often treat each audio file as a single playlist entry, which can make it difficult to select and identify the individual tracks. A common solution is to split the original audio file into a series of separate files, one per track.
Another approach is for the audio player to support the cue sheet directly. This may involve providing a new playlist (for example, an extra window) for the contents of the cue sheet, or adding an entry for each track directly into the main playlist.
Cue sheet syntax
[edit]A cue sheet is a plain text file containing commands with one or more parameters. The commands usually apply either to the whole disc or to an individual track, depending on the particular command and the context. They may describe the layout of data to be written, or CD-Text (metadata). The original specification of the cue sheet syntax and semantics appears in the CDRWIN User Guide.[4]
The standard commands are:[5]
Essential commands
[edit]- FILE
- Names a file containing the data and its format (such as MP3, and WAVE audio file formats, and plain "binary" disc images)
- TRACK
- INDEX
- Indicates an index (position) within the current FILE. The position is specified in mm:ss:ff (minute-second-frame) format. There are 75 such frames per second of audio. In the context of cue sheets, "frames" refer to CD sectors, despite a different, lower-level structure in CDs also being known as frames.[6] INDEX 01 is required and denotes the start of the track, while INDEX 00 is optional and denotes the pregap. The pregap of Track 1 is used for Hidden Track One Audio (HTOA). Optional higher-numbered indexes (02 through 99) are also allowed.
- PREGAP and POSTGAP
- Indicates the length of a track's pregap or postgap, which is not stored in any data file. The length is specified in the same minute-second-frame format as for INDEX.
CD-Text and other metadata commands
[edit]- REM
- Adds a comment that usually has no bearing on the written CD at all, with the exception of some applications that use it to store additional metadata (e.g. Exact Audio Copy writes some additional fields, which foobar2000 can read). REM should not appear on a line by itself as some applications regard it as a syntax error.
- CDTEXTFILE
- Identifies a file containing CD-Text information
- FLAGS
- Sets subcode flags of a track
- CATALOG
- ISRC
- Define the ISRC of the current TRACK
- TITLE, PERFORMER and SONGWRITER
- CD-Text metadata; applies to the whole disc or a specific track, depending on the context
Non-standard cue sheets
[edit]Multiple FILEs with gaps
[edit]CD ripping programs normally offer the option of creating a separate file for each audio track, with the (pre)gap portion of a track placed at the end of the preceding track's file. This coincides with normal playback operation – the beginning of each file is the beginning of a track, not the gap preceding it – and with the layout described in the disc's table of contents, which doesn't specify gap information at all.
The cue sheet format, as specified in the CDRWIN Users Manual,[4] doesn't support file sets of this type; rather, it's designed with the expectation that all of the audio data exists in a single file (CDRWIN only creates cue sheets for that kind of rip) or in separate files, but only with the gap portions of the audio either removed or placed at the beginning of the files.
In order to allow cue sheets to be used to burn a CD from ordinary file sets which have the gap portion at the end of each file, the CD ripping & burning program Exact Audio Copy (EAC) allows the creation of cue sheets that relax the CDRWIN Users Manual's restriction on where FILE commands can be used.[7] This non-conforming cue sheet format, intended only for burning CDs with EAC, is not supported by some other pieces of software, such as the media player foobar2000, which allows the use of cue sheets as playlists.
Non-wav files before WAVE
[edit]A number of programs, including VLC and Foobar2000, allow the use of WavPack and FLAC files before a WAVE filetype. This sort of file is also created by EAC.
Examples
[edit]The MP3 file "Faithless - Live in Berlin.mp3", contains a live recording of the band Faithless. At this concert, Faithless performed eight songs in the order shown below. Therefore, the track listing is as follows:
- Faithless – Reverence
- Faithless – She's My Baby
- Faithless – Take the Long Way Home
- Faithless – Insomnia
- Faithless – Bring the Family Back
- Faithless – Salva Mea
- Faithless – Dirty Old Man
- Faithless – God Is a DJ
Since the MP3 is one file containing the entire performance, burning it to a CD as-is would make it inconvenient to skip to individual songs. To design the cue sheet, one must first find the points in the MP3 at which each song starts. The times are cumulative: each track must have a later time than the previous one.
The first five lines denote the disc information. This is followed by the information for each track, indented from the rest. The INDEX 01 line reads the same for each track, with the exception of the time value that follows it. REM, TITLE and PERFORMER are optional.
REM GENRE Electronica REM DATE 1998 PERFORMER "Faithless" TITLE "Live in Berlin" FILE "Faithless - Live in Berlin.mp3" MP3 TRACK 01 AUDIO TITLE "Reverence" PERFORMER "Faithless" INDEX 01 00:00:00 TRACK 02 AUDIO TITLE "She's My Baby" PERFORMER "Faithless" INDEX 01 06:42:00 TRACK 03 AUDIO TITLE "Take the Long Way Home" PERFORMER "Faithless" INDEX 01 10:54:00 TRACK 04 AUDIO TITLE "Insomnia" PERFORMER "Faithless" INDEX 01 17:04:00 TRACK 05 AUDIO TITLE "Bring the Family Back" PERFORMER "Faithless" INDEX 01 25:44:00 TRACK 06 AUDIO TITLE "Salva Mea" PERFORMER "Faithless" INDEX 01 30:50:00 TRACK 07 AUDIO TITLE "Dirty Old Man" PERFORMER "Faithless" INDEX 01 38:24:00 TRACK 08 AUDIO TITLE "God Is a DJ" PERFORMER "Faithless" INDEX 01 42:35:00
An example of a cue sheet used in conjunction with a CD image file:
FILE "sampleimage.bin" BINARY
TRACK 01 MODE1/2352
INDEX 01 00:00:00
To convert a CD-ROM image to a format that can be mounted on Unix-like systems, the open source tool BinChunker can be used:[8]
$ bchunk image.bin image.cue output.iso
See also
[edit]- Comparison of audio player software#Metadata ability
- Comparison of video player software#Metadata ability
- Comparison of disc authoring software
- Exact Audio Copy (EAC) – a proprietary CD ripping program
- MusicBrainz Picard – a cross-platform MusicBrainz tag editor written in Python
- XSPF – an XML-based playlist format for digital media
References
[edit]- ^ a b "Cue sheet". Hydrogenaudio Knowledgebase. 23 May 2016. Retrieved 31 October 2016.
- ^ Roberts, Ron (30 August 1999). "SCSI Multimedia Commands – 2 (MMC-2) § 6.1.31" (PDF). Retrieved 31 October 2016.
- ^ Purdy, Kevin (11 October 2023). "CD-indexing cue files are the core of a serious Linux remote code exploit". Ars Technica. Retrieved 11 October 2023.
- ^ a b CDRWIN user's guide for Windows 95, 98 and NT (PDF). 3.8. Golden Hawk Technology. 1 November 2000. Appendix A: Cuesheet commands. Archived from the original (PDF) on 14 June 2007.
- ^ "Cue-Sheet Syntax". Archived from the original on 1 February 2016. Retrieved 31 October 2016.
- ^ McFadden, Andy (20 May 2004). "What's a frame? CIRC encoding? How does ECC work?". CD-Recordable FAQ - Section 2. Retrieved 31 October 2016.
- ^ Wiethoff, Andre (24 September 2010). "Why I hate EAC---Malformed CUE sheets". Archived from the original on 18 July 2011. Retrieved 31 October 2016.
- ^ tshrinivasan (8 May 2007). "HowTo: Mount Bin/Cue files in Linux". Going GNU. Archived from the original on 14 August 2024. Retrieved 14 August 2024.
External links
[edit]- Cue sheet page on the Hydrogenaudio Knowledgebase web site
- CUE sheet format documentation
Cue sheet (computing)
View on GrokipediaFILE to reference an associated audio or image file (supporting formats like BINARY, WAVE, MP3, or AIFF), TRACK to define a track's number and mode (e.g., AUDIO for standard audio tracks or MODE2/2352 for data), and INDEX to mark precise timings in minutes:seconds:frames (MSF) format, where frames represent 1/75th of a second.[2] Additional commands like TITLE, PERFORMER, and REM enable embedding of metadata and comments, while flags such as PRE (for pre-emphasis) or DCP (digital copy permitted) can denote track attributes.[1] This structure ensures compatibility across tools for audio archiving, where cue sheets help automate track extraction from monolithic WAV files, reducing manual errors and supporting conversions to formats like MP3 via utilities such as Shntool.[3]
Definition and Purpose
Overview
A cue sheet, commonly stored as a .cue file, is a plain-text metadata file that describes the layout and organization of tracks on a compact disc (CD), including details such as track start times and indices, and associations with underlying audio files.[1][2] This format allows software to interpret the structure of the disc without requiring the physical media, facilitating tasks like emulation and replication.[1] The primary purpose of a cue sheet is to enable the playback of audio rips—whether split into individual track files or combined into a single file—as if they were originating from the original CD, thereby preserving precise track boundaries, gaps, and associated metadata such as titles and performers.[4][1] It supports accurate reproduction in media players and burning applications, ensuring gapless playback and structural fidelity for archived or distributed audio content.[4] Cue sheets feature a human-readable, line-based structure composed of commands and parameters, making them straightforward to parse and edit.[2][1] Originating from CD image handling in burning software, they have become widely adopted for lossless audio formats like FLAC, where a single image file paired with a cue sheet maintains the album's integrity.[5] In scope, cue sheets are designed primarily for audio CDs, offering limited support for mixed-mode discs with data tracks, and they function as a de facto standard rather than a formal one, stemming from the CDRWIN software developed by Golden Hawk Technology.[5][1]Historical Development
The cue sheet format originated in the late 1990s, developed by Jeff Arnold at Golden Hawk Technology specifically for their CDRWIN software to facilitate disc-at-once (DAO) CD burning by describing the layout of tracks, indices, and metadata on optical discs.[6] This approach allowed for precise replication of CD structures, including audio tracks and gaps, which was essential for high-fidelity burning without track-at-once limitations. The format drew inspiration from the SEND CUE SHEET command defined in the SCSI Multimedia Commands (MMC) specification, particularly MMC-3, which standardized interactions for multimedia devices like CD drives, including support for CD-TEXT and indexing.[6] Introduced with CDRWIN version 3.x around 1999, cue sheets quickly gained traction as companion files to binary (.bin) disc images, enabling accurate CD creation and verification in early optical media workflows.[7] By the early 2000s, the format had evolved into a de facto standard for audio ripping applications, such as Exact Audio Copy (EAC), where it was used to preserve track boundaries, pregaps, and ISRC codes during extraction to uncompressed or lossless formats like WAV or FLAC.[8] Informal extensions emerged to accommodate these digital audio files, allowing cue sheets to reference non-CD sources while maintaining compatibility with burning tools.[9] Key milestones in adoption include its integration into media players like foobar2000 starting in the early 2000s, which supported cue sheets for playlist-like organization and playback of multi-track images, broadening its utility beyond burning.[10] Despite the rise of streaming services in the 2010s and 2020s, cue sheets have persisted as a vital tool for audio archiving, enabling lossless preservation of CD-era collections with full structural fidelity.[6] The format lacks formal standardization by bodies like ISO, relying instead on the original CDRWIN documentation—particularly Appendix A of its user's guide—as the widely accepted reference, which has ensured grassroots consistency across tools.[6]File Format and Syntax
Basic Structure
A CUE sheet file consists of an optional global section followed by one or more track sections, with the file ending implicitly after the last track definition.[1] The global section, if present, applies settings across the entire disc, while each track section describes an individual audio or data track on the CD.[11] Up to 99 tracks are supported, reflecting the standard capacity of compact discs.[1] Each line in the file begins with a keyword, such as FILE or TRACK, followed by one or more whitespace-separated parameters.[11] Whitespace includes spaces, tabs, newlines, and carriage returns, and the format is case-insensitive.[11] Comments are introduced by the REM keyword and extend until the end of the line, allowing them to appear in any section except between a keyword and its immediate parameters.[1] Parameters representing strings, such as filenames or metadata, can be unquoted for simple values without spaces or enclosed in single or double quotation marks if they contain whitespace, with quotes preserving internal spacing.[1] Time values, used for positions like indices or gaps—for example, in the INDEX command—are specified in MSF format as MM:SS:FF, where MM denotes minutes (00-99), SS seconds (00-59), and FF frames (00-74), with each field zero-padded to two digits and one frame equaling 1/75 of a second.[11] CUE sheets are plain text files, typically encoded in ASCII or UTF-8 to support international characters in metadata.[1] Line endings are flexible, accepting both Unix-style LF and Windows-style CRLF, as whitespace variations do not affect parsing.[11] The TRACK keyword initiates a new track section, specifying the track number and mode (e.g., AUDIO).[11] The FILE keyword defines the data file for the immediately following track or tracks until overridden, applying to subsequent sections without a new FILE declaration.[1]Core Commands
The core commands in a cue sheet form the backbone for specifying the layout of tracks on a CD image, including the association of data files, track boundaries, precise timings, inter-track gaps, and essential attributes. These commands enable software to reconstruct the original CD structure from individual files, ensuring accurate playback or burning by defining how audio or data sectors are organized across the disc. Unlike optional metadata, these commands are mandatory for basic functionality and must appear in a specific sequence: typically starting with FILE, followed by one or more TRACK blocks containing INDEX, PREGAP, POSTGAP, and FLAGS as needed.[6][1][2] The FILE command declares the path to an audio or data file that supplies content for subsequent tracks, along with its format to guide interpretation during processing. Its syntax isFILE "filename" filetype, where "filename" is the quoted file path (relative or absolute) and filetype specifies the encoding, such as BINARY for raw sector data, MOTOROLA for big-endian raw audio, AIFF for Apple/SGI audio files, WAVE for Microsoft WAV or compatible lossless formats like FLAC, or MP3 for compressed audio. For instance, FILE "audio_track.[wav](/page/WAV)" [WAVE](/page/WAV) associates a WAV file as the source for tracks until a new FILE command overrides it. Multiple FILE commands can be used to switch sources mid-disc, allowing hybrid audio-data layouts. This command must precede any TRACK definitions and supports up to 99 tracks per file, ensuring the cue sheet can handle multi-file CD images without ambiguity.[6][1][12]
The TRACK command initiates a new track entry, assigning it a number and mode to indicate whether it contains audio or data content. Its syntax is TRACK nn mode, with nn as the track number from 01 to 99 (must be sequential starting from 01) and mode as AUDIO for standard Red Book audio tracks (16-bit stereo at 44.1 kHz) or data modes like MODE1/2048 for 2048-byte ISO 9660 sectors in CD-ROM Mode 1. An example is TRACK 01 AUDIO, which starts the first audio track. Data modes such as MODE1/2352 include error correction headers for full 2352-byte sectors. Each TRACK block groups related INDEX, PREGAP, POSTGAP, and FLAGS commands, and at least one TRACK is required per FILE to define the disc's content flow. Track numbers beyond 99 are invalid, limiting cue sheets to standard CD capacities of up to 99 tracks.[1][2][12]
The INDEX command sets precise timing markers within a track, defining its start position or sub-index points relative to the file's beginning. Syntax is INDEX nn mm:ss:ff, where nn is the index number (00 to 99), and mm:ss:ff represents minutes:seconds:frames in MSF format (75 frames per second, totaling 1/75th of a second per frame). For example, INDEX 01 00:02:15 marks the primary start of the track at 2 minutes and 15 frames, while INDEX 00 00:00:00 defines a pregap endpoint at the file's zero point. INDEX 01 typically denotes the track's audible or data onset, and INDEX 00 specifies the pregap's end; multiple indices per track (e.g., INDEX 02 for sub-tracks) allow fine-grained navigation. Times must be non-decreasing within a track, enabling accurate sector addressing during CD emulation or burning. Pregaps defined via INDEX 00 and INDEX 01 use data from the current track's file between those times; if the times are equal, silence is inserted.[6][1][2]
The PREGAP and POSTGAP commands insert silent intervals to replicate CD pauses, ensuring proper spacing between tracks as on physical discs. PREGAP syntax is PREGAP mm:ss:ff, placed after TRACK and before INDEX, to add lead-in silence (e.g., PREGAP 00:02:00 for a 2-second pregap); it reconstructs omitted pauses in ripped files by padding with zeros. POSTGAP uses POSTGAP mm:ss:ff after INDEX to define lead-out silence (e.g., POSTGAP 00:00:02), though it is less commonly used and applies only to the track's end. Both use MSF timing, with durations up to the track's length, and only one of each per track; they are essential for audio CDs to maintain 2-second standard pregaps unless specified otherwise. In data modes, these gaps may include subchannel data but default to silence.[6][1][2]
The FLAGS command applies subcode attributes to a track, influencing playback or copying behavior during CD creation. Syntax is FLAGS flag1 [flag2 ...], positioned after TRACK and before INDEX, with flags such as PRE for audio pre-emphasis (high-frequency boost to reduce noise), DCP to prohibit digital copying, 4CH for quadraphonic sound, or SCMS for Serial Copy Management System enforcement. For example, FLAGS PRE DCP enables pre-emphasis and copy protection on an audio track. Flags are optional and track-specific, drawing from CD subchannel Q standards; invalid combinations (e.g., 4CH on non-audio) are ignored by compliant tools. They ensure the burned CD matches the original's copy control and audio processing, though support varies by burning software.[6][1][12]
Metadata and Advanced Commands
Cue sheets support optional metadata commands that embed descriptive information about the disc or individual tracks, enhancing compatibility with playback software and CD burning tools. The TITLE command specifies the name of the album or track, while the PERFORMER command identifies the artist or performer; both can be declared in the global section for the entire disc or within a track section for per-track details, using syntax such asTITLE "Album Name" or TITLE "Track Name".[2][13] These commands allow for multiple instances and are case-insensitive, facilitating organized metadata storage in plain text format.[2]
The ISRC command provides the International Standard Recording Code for a specific track, formatted as a 12-character string in the pattern CCOOOOYYSSSSS, where CC denotes the country code, OOOO the owner code, YY the year, and SSSSS the serial number (e.g., ISRC "USSM12345678").[13] This code uniquely identifies recordings and is placed within the relevant track section.[2]
CD-TEXT commands enable extended metadata through structured packets, supporting fields such as ARRANGER, COMPOSER, and SONGWRITER for track-specific credits (e.g., ARRANGER "John Doe", [COMPOSER](/page/Composer) "Jane Smith", SONGWRITER "Bob Jones").[2] These are organized within a CD_TEXT block that specifies language mappings and character sets compliant with the MMC-3 standard, as in:
CD_TEXT {
LANGUAGE_MAP {
0 : EN
}
LANGUAGE 0 {
TITLE "Track Title"
PERFORMER "Artist"
ARRANGER "Arranger"
COMPOSER "Composer"
SONGWRITER "Songwriter"
}
}
This block can apply globally or per track, allowing multilingual support and detailed attribution.[13][2]
The CATALOG command records the disc's 13-digit UPC or EAN code in the global section (e.g., CATALOG "1234567890123"), aiding in commercial identification and database lookups.[2] Additionally, the REM command permits arbitrary comments or custom tags throughout the file, such as REM GENRE "Rock" or REM COMMENT "Custom note", which are ignored during parsing but useful for documentation.[13][2]
Advanced features in cue sheets accommodate non-audio elements, including data tracks specified with modes like MODE2/2048 for 2048-byte sectors or MODE2/2324 for 2324-byte sectors (e.g., TRACK 01 MODE2/2048), enabling mixed-mode CDs with CD-ROM XA compatibility.[14] For hidden track one audio (HTOA), the INDEX 00 directive within the first track's section defines the pregap area as playable audio, as in:
TRACK 01 AUDIO
INDEX 00 00:02:00
INDEX 01 00:03:00
This positions hidden content before the official track start, preserving legacy CD layouts.[2][13]
Usage Scenarios
Audio Playback and Simulation
Cue sheets function as metadata playlists that map individual tracks to specific positions within one or more digital audio files, enabling software to treat a single large file—such as a concatenated FLAC—as virtually split into separate CD tracks for navigation and playback.[6] This mechanism allows users to replicate the structure of an original audio CD without physical media, where the cue sheet specifies track start times, durations, and transitions via INDEX commands in MM:SS:FF format.[15] Several media players provide native support for cue sheets to facilitate CD-like audio playback. For instance, foobar2000 interprets cue sheets to split and navigate tracks within image files, supporting gapless playback and metadata rendering from the sheet.[16] VLC media player loads cue sheets as playlists, allowing track-by-track selection and simulation of CD navigation, including handling of associated audio files in various formats.[17] Similarly, Kodi uses cue sheets to provide index and playlist information for large audio files, enabling users to browse and play individual tracks as if from a disc.[4] The use of cue sheets in playback offers key benefits for simulating authentic CD experiences, particularly in preserving audio elements like pregaps and postgaps. Pregaps, defined by INDEX 00 commands, insert silence or pauses before tracks (typically 2 seconds between tracks per Red Book standards), while postgaps handle transitions after tracks; these ensure accurate reproduction of track boundaries without altering the underlying audio data.[6] Hidden Track One Audio (HTOA), often embedded in the pregap of track 1, is maintained through precise timing in the cue sheet, allowing playback software to access hidden content that might otherwise be lost in simple file rips.[18] Overall, this simulation is crucial for exact CD emulation, supporting seamless track changes, countdown displays on players, and bit-perfect audio fidelity in environments requiring archival accuracy.[6] Hardware integration extends cue sheet functionality beyond software players to virtual and physical devices. Virtual drive tools like DAEMON Tools mount cue sheets paired with image files (e.g., BIN or WAV) as emulated optical media, presenting them to the operating system as insertable CDs for playback in any compatible application or game.[19] CD burners also utilize cue sheets during Disc-At-Once (DAO) mode to replicate exact layouts, including gaps and transitions, by transmitting the sheet's instructions via SCSI commands to the hardware.[15] Cue sheets are compatible with a range of audio formats, ensuring versatile and precise reproduction. Lossless formats like FLAC and APE (specified as WAVE in the cue sheet) allow for high-fidelity, bit-perfect playback when combined with the sheet, while lossy formats such as MP3 can be used for space-efficient storage without structural loss in track simulation.[6] This broad support maintains the integrity of the original CD's audio organization across different encoding methods.[15]Ripping and Burning Applications
Cue sheets play a crucial role in the ripping process by enabling software to extract CD content while preserving structural details. Tools such as Exact Audio Copy (EAC) utilize the "Copy Image And Create CUE Sheet" option during extraction to generate a cue sheet that records track positions, indices, International Standard Recording Codes (ISRC), and gaps between tracks, supporting both single-file and multi-file rips.[20] Similarly, CUETools' CUERipper component rips CDs to audio files accompanied by a cue sheet, detecting INDEX 00 positions for pregaps and handling gap information to maintain the original disc layout.[21][22] These cue sheets provide key benefits in ripping by ensuring accurate track splits and metadata retention, as the files encode precise boundaries and supplementary data like ISRC for identification.[20] They also facilitate error detection through integration with AccurateRip, a verification system that compares extracted audio checksums against a database of over 522 million rips to confirm lossless integrity and identify uncorrectable errors that drives might overlook.[23][24] In burning applications, cue sheets guide the recreation of CD layouts from image files. CDRWIN, developed by Golden Hawk Technology, pioneered cue sheet support for disc-at-once (DAO) burning with .bin or .iso images, allowing replication of the exact track structure and subchannel data as originally pressed.[25] ImgBurn similarly employs cue sheets to burn .bin/.cue or .iso/.cue pairs, supporting multi-track audio CDs and preserving subchannel elements like ISRC and CD-Text for faithful duplication. A common workflow involves ripping a CD using EAC to a single FLAC file with an accompanying cue sheet, which captures the full layout including gaps and indices, followed by burning the FLAC back to a CD-R via ImgBurn or EAC's integrated burning mode to achieve bit-perfect reproduction without quality loss.[20][26] The evolution of these tools underscores cue sheets' role in preservation, beginning with CDRWIN's introduction of the format in 1998 for advanced burning control, and extending to open-source options like CUETools in the early 2000s, which expanded ripping verification through community databases.[27][21]Variations and Limitations
Non-Standard Implementations
While the standard cue sheet specification restricts each track section to a single FILE command, limiting index positions to within one file, non-standard implementations in tools like Exact Audio Copy (EAC) enable INDEX 00 to span multiple files for gapless playback in multi-file rips.[8] This approach appends pregap audio from subsequent files to the end of the previous track's file, creating "non-compliant" cue sheets that preserve accurate ripping offsets but may cause playback issues in software expecting strict adherence to the spec.[6] For example, EAC's "Multiple WAV Files with Gaps" mode generates such sheets to handle pregaps without inserting silence, facilitating seamless album reconstruction.[8] Variations in gap flag handling further deviate from standards, where tools may omit PREGAP commands entirely or treat them as separate audio files, resulting in incompatible sheets across applications.[22] EAC, for instance, offers options to append gaps to prior tracks, prepend them as new files, or ignore them, leading to cue sheets that fail verification in tools like CUETools if gaps are not explicitly detected via INDEX 00 positions.[8] These inconsistencies arise because the original specification lacks explicit gap enforcement, prompting ripping software to implement workarounds that prioritize user-configured playback over universal compatibility.[18] Cue sheets see informal use for DVD video and audio tracks, often paired with .IMG or BIN image files, despite the absence of native commands for video sectors or multi-session structures in the spec.[28] Tools like ImgBurn and IsoBuster extend cue syntax to describe DVD layouts by treating video as data tracks, but this lacks standardization and can fail with protected or multi-layer discs due to cue's CD-centric design.[29] Such adaptations emerged in early 2000s burning software to simplify DVD backups, though they remain undocumented in the original CDRDAO specification and require manual adjustments for accurate emulation.[28] In mixed data-and-audio CDs, non-standard use of INDEX 00 extends to Hidden Track One Audio (HTOA), where the pregap before Track 1's INDEX 01 holds hidden audio content, often up to 6 seconds or more.[18] This deviates from the spec's intent for INDEX 00 as a simple silence marker, instead embedding playable audio in the pregap to conceal bonus material without altering track numbering.[30] Ripping tools like CUETools preserve HTOA by extracting it as a separate Track 00 file during conversion, ensuring the hidden content survives in image-based rips.[30] Specific tools exhibit quirks in handling non-standard cue sheets: foobar2000 ignores invalid gap placements, such as non-compliant INDEX 00 spans, to enable playback while discarding offset inaccuracies.[31] Conversely, CUETools normalizes deviant sheets by rewriting them into compliant formats during verification or conversion, adjusting file references and gaps to match the original disc layout without data loss.[21] These behaviors highlight how player and converter software prioritizes usability over strict spec compliance in real-world audio archiving.[31]Compatibility with Modern Formats
Cue sheets extend compatibility to modern lossless audio formats by treating them as equivalents to the original WAVE specification, allowing seamless integration with tools designed for CD emulation. For instance, formats like FLAC, WavPack, APE, and TAK are referenced in the FILE command using the WAVE datatype, such asFILE "album.flac" WAVE, which instructs compatible players and rippers to interpret the compressed lossless data as uncompressed PCM audio while preserving track boundaries and gaps.[15][1][32] This approach ensures bit-perfect playback of high-fidelity audio without requiring format-specific alterations to the cue syntax, as demonstrated in conversion tools like CUETools that handle these formats during ripping and splitting operations.[21]
Compressed audio formats receive partial direct support in cue sheets, with MP3 explicitly recognized via the FILE "track.mp3" MP3 declaration, enabling track indexing and basic playback in emulators. Ogg Vorbis files can similarly be referenced, often using the MP3 or WAVE datatype depending on player implementation, though this direct support may compromise gap accuracy due to variable bitrate encoding artifacts that disrupt precise inter-track timing. For AAC and M4A, compatibility is achieved through the WAVE alias in the FILE command, such as FILE "album.m4a" WAVE, allowing these formats to mimic CD audio structure but potentially introducing minor decoding overhead in less optimized players.[1][33]
In data and mixed-media scenarios, cue sheets incorporate MODE2 commands to define CD-ROM data tracks, supporting hybrid audio-data discs where non-audio content like ISO images follows audio sections in the same image file. This facilitates archival of mixed-content CDs, but support for DVD and Blu-ray remains limited, relying on third-party tools like Alcohol 120% to mount or burn extended cue-based images beyond standard CD constraints.[1][34][35]
Despite these extensions, cue sheets exhibit key limitations, lacking native support for streaming protocols or advanced container formats like MKV, which encapsulate multiple streams without CD-specific indexing. Playback fidelity thus depends heavily on the interpreting software's ability to extrapolate cue metadata, potentially leading to inconsistencies across devices. As of 2025, cue sheets retain relevance for archival purposes in media libraries such as JRiver Media Center, where they enable organized storage and playback of lossless collections, though gaps persist in handling multi-channel layouts or high-resolution audio metadata beyond stereo PCM.[36][37]
Practical Examples
Cue sheets are often generated by ripping software like Exact Audio Copy (EAC) to accompany a single large audio file containing multiple tracks. The following example shows a simple cue sheet for a two-track album ripped into one WAV file, including global metadata and per-track titles and performers.[6]REM GENRE Alternative
REM DATE 1991
REM DISCID 860B640B
REM COMMENT "ExactAudioCopy v0.95b4"
PERFORMER "My Bloody Valentine"
TITLE "[Loveless](/page/The_Loveless)"
FILE "My Bloody Valentine - [Loveless](/page/The_Loveless).wav" WAVE
TRACK 01 AUDIO
TITLE "[Only Shallow](/page/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
Another common scenario involves cue sheets for classical music compilations, where tracks from multiple movements are indexed within an MP3 file, with performer details for each. This example uses non-standard REM commands like IMAGE for cover art reference.[38]
REM GENRE Classical
REM DATE 1985
REM IMAGE vierjaargetijden.jpg
PERFORMER "Academy of St. Martin in the Fields"
TITLE "The Four Seasons (Neville Marriner)"
FILE "Academy of St. Martin in the Fields - The Four Seasons (Neville Marriner).mp3" WAVE
TRACK 01 AUDIO
TITLE "I. Allegro"
PERFORMER "The Four Seasons Concerto No.1 'Spring'"
INDEX 01 00:00:00
TRACK 02 AUDIO
TITLE "II. Largo"
PERFORMER "The Four Seasons Concerto No.1 'Spring'"
INDEX 01 03:13:15
TRACK 03 AUDIO
TITLE "III. Allegro"
PERFORMER "The Four Seasons Concerto No.1 'Spring'"
INDEX 01 06:43:07
For multi-file setups, cue sheets can reference separate audio files per track, useful when gaps are preserved as pregaps. This example demonstrates a two-track album with a pregap for the second track.[6]
FILE "The Specials - Singles - 01 - Gangsters.wav" [WAVE](/page/WAV)
TRACK 01 AUDIO
[TITLE](/page/Title) "Gangsters"
PERFORMER "[The Specials](/page/The_Specials)"
INDEX 01 00:00:00
FILE "The Specials - Singles - 02 - Rudi, A Message To You.wav" [WAVE](/page/WAV)
TRACK 02 AUDIO
[TITLE](/page/Title) "Rudi, A Message To You"
PERFORMER "[The Specials](/page/The_Specials)"
[PREGAP](/page/Pregap) 00:00:28
INDEX 01 00:00:00