CUE 文件及其格式说明
CUE 文件及其格式说明CUE 文件,即 CUESheets ,光盘镜像辅助文件。通常用于光盘刻录、音乐播放等等。比如用 EAC 刻录CD光盘,或者用 Foobar2000 播放整轨音乐文件。CUE 文件是非常好的音乐专辑信息载体,使用它可以使专辑信息和音乐文件分离,从而达到播放整轨 WAV、FLAC、APE 等文件的目的。 由于篇幅有限,本文只描述音乐文件播放相关的内容,因此和刻录有关的...
CUE 文件及其格式说明
CUE 文件,即 CUESheets ,光盘镜像辅助文件。通常用于光盘刻录、音乐播放等等。比如用 EAC 刻录CD光盘,或者用 Foobar2000 播放整轨音乐文件。
CUE 文件是非常好的音乐专辑信息载体,使用它可以使专辑信息和音乐文件分离,从而达到播放整轨 WAV、FLAC、APE 等文件的目的。
由于篇幅有限,本文只描述音乐文件播放相关的内容,因此和刻录有关的信息可能不大详细,敬请原谅。
本文档分为三部分:
一、CUE 基本规范
二、CUE 命令参考
三、范例解析
==========================================================================================
一、CUE 基本规范
1、CUE 是使用 ANSI 编码文本 格式储存的,以 .cue 为后缀储存的文件。
2、其内容分为 Header 文件头,和 Tracks-Info 数据轨描述表两部分。其中 Header 文件头是可选的。
3、CUE 文件必须与文件内描述的数据文件位于同一目录下。(FLAC 音频文件可以内嵌 CUE 文件)
4、CUE 文件的修改与数据文件无关,因而 CUE 文件的丢失对数据文件无实质影响。
==========================================================================================
一、CUE 命令参考
首先我们来看看 Header 文件头,其常见格式如下:(文件头是可选的,其全部内容都不是必须的)
TITLE <cd-title>
PERFORMER <performer-name>
SONGWRITER <writer-name>
CATALOG <catalog-id>
REM DATE <date>
REM DISCID <discid-id>
REM GENRE <classes>
REM COMMENT <comments>
CDTEXTFILE <cd-text-file-name>
这里出现了如下命令:(也许你发现了,这些命令全部用大写,其实大小写没关系,但是为了格式化,所以命令再次统一用大写的)
TITLE、CATALOG、SONGWRITER、PERFORMER、REM、CDTEXTFILE
下面我们对上面的命令逐行分析,记住 头部信息全部都是可有可无的,当然有就最好不过了。
----------------------------------------------------------------------------------------------------
TITLE 命令(头部)
这条命令很明显,指定唱片标题。格式为:
TITLE <title>
比如MJ的专辑《Thriller》
TITLE "Thriller"
注意:
1、<title>必须小于80个字符。
2、对于长且有空格的名称,必须用半角双引号引起来。这里建议在任何情况下都把<title>用双引号引起来。
3、刻录时,如果刻录机不支持 CD-TEXT,则此命令将被忽略。但是在播放器里是有效的。
----------------------------------------------------------------------------------------------------
PERFORMER 命令(头部)
这条命令也很简单,指定唱片演唱者。格式为:
PERFORMER <performer-name>
比如MJ的专辑《Thriller》
PERFORMER "MichelleJackson"
注意:
1、<performer-name>必须小于80个字符。
2、对于长且有空格的名称,必须用半角双引号引起来。这里建议在任何情况下都把<performer-name>用双引号引起来。
3、刻录时,如果刻录机不支持 CD-TEXT,则此命令将被忽略。但是在播放器里是有效的。
----------------------------------------------------------------------------------------------------
SONGWRITER 命令(头部)
这条命令也很简单,指定唱片乐曲编曲者。格式为:
SONGWRITER <writer-name>
比如冯曦妤的歌曲《幸运儿》
SONGWRITER "冯曦妤"
注意:
1、<writer-name>必须小于80个字符。
2、对于长且有空格的名称,必须用半角双引号引起来。这里建议在任何情况下都把<writer-name>用双引号引起来。
3、刻录时,如果刻录机不支持 CD-TEXT,则此命令将被忽略。但是在播放器里是有效的。
----------------------------------------------------------------------------------------------------
REM 命令(头部)
这条命令表示注释,通常用来标明一些 CUE 阅读说明。格式为:
REM <comments>
比如
REM 这是说明哦。
但是 REM 命令通常不会被这么使用,因为 CUE 文件格式简单,不需要写什么注释。于是 REM 就被用来指定各种 CUE 的扩展命令,这些扩展命令一般也是用于头部信息(音轨信息部分也有,后面会提到),一般作用于 Foobar2000 等音乐播放器。下面将逐个说明:
REM GENRE <class-names>这个命令用于指定唱片、专辑的分类,建议后面的 <class-names> 用半角双引号引起来。例如贝多芬精选集里其中一张 CD:REM GENRE "Classical"
REM DISCID <cd-id>这个命令用于指定 CD 的唯一编号,建议后面的 <cd-id> 用半角双引号引起来。例如贝多芬精选集里其中一张 CD:REM DISCID "5C0D6808"
REM DATE <date>这个命令用于指定光盘的发行时间,精确到年。其中<date>可以用半角双引号引起来。例如,一张 2009 年发布的 CD:REM DATE 2009
REM COMMENT <comment-string>这个命令用于指定 CUE 的生成说明,建议后面的 <comment-string> 用半角双引号引起来。例如使用 EAC 生成的 CUE 文件一般都带如下类似信息:REM COMMENT "ExactAudioCopy v0.99pb4"
----------------------------------------------------------------------------------------------------
CATALOG 命令
这条命令用于指定唱片的唯一 EAN 编号。格式为:
CATALOG <catalog-id>
比如 George Michael 的专辑《Songs From The Last Century》。
CATALOG "7243848740251"
这是个比较重要的玩意儿,它表示这张唱片的身份证,是一个 13 位的数字,通常和唱片的 EAN 码一致。也就是说,这张唱片的唯一编号。世界上不会有两张唱片的 CATALOG 相同的。关于这个 CATALOG 码,要了解更多请参考百度百科。
注意:
1、<catalog-id> 必须为13个字符。
2、这里建议把 <catalog-id> 用半角双引号引起来。
3、注意本命令最多只能在 CUE 文件内出现一次,可以没有。通常位于头部。
----------------------------------------------------------------------------------------------------
CDTEXTFILE 命令
这条命令用于指定光盘上使用的 CD-TEXT 信息文件的名称,具体用途不在此说明,需要的请自行查阅相关文献。格式为:
CDTEXTFILE <cd-text-filename>
比如
CDTEXTFILE "cd-text1.cdt"
CDTEXTFILE "c:\cds\cd-text2.cdt"
注意:
1、<cd-text-filename> 可以是文件名,也可以包含文件路径。
2、如果 <cd-text-filename> 内包含空格,那么必须用半角双引号引起来。这里建议总是把 <cd-text-filename> 用半角双引号引起来。
3、如果刻录机不支持 CD-TEXT,那么此命令将被忽略。
----------------------------------------------------------------------------------------------------
至此,头部信息文件介绍完毕。下面开始介绍数据轨描述表部分。
数据轨描述表分为两部分:
一、核心部分,即下面格式中未被[]包含的内容,这一部分是必须存在的;
二、单轨描述信息,即下面格式中被[]包含的部分。
数据轨描述表的格式如下:(注意[]不是内容,只是表示其里面的内容为可选段)
FILE <data-file-name><file-type>
TRACK <track-id><track-data-type>
INDEX 01<track-begin-time>
[TITLE <track-title>]
[PERFORMER <performer-name>]
[SONGWRITER <writer-name>]
[ISRC <isrc-code>]
[FLAGS <flags>]
[PREGAP <pre-mute-time>]
[POSTGAP <post-mute-time>]
[REM REPLAYGAIN_TRACK_GAIN +/-*.** dB]
[REMREPLAYGAIN_TRACK_PEAK *.******]
[INDEX <index><track-begin-time>]
数据信息描述表格式如上所示,其中 FILE 命令可以有多条,而每条 FILE 命令下又可以有多条 TRACK 命令。下面介绍各条命令。
----------------------------------------------------------------------------------------------------
FILE 命令
这条命令用于声明一个数据文件。格式为:
FILE <data-file-name> <file-type>
其中 <data-file-name> 是位于 CUE 文件相同目录下的数据文件名称。<file-type> 为文件的数据类型:
<file-type> 说明
BINARY 二进制数据文件,必须是 Little-Endian 编码格式。
MOTOROLA 二进制数据文件,必须是 Big-Endian 编码格式。
AIFF AIFF 音频文件
WAVE WAVE 音频文件(WAV/FLAC/APE)
MP3 MP3 音频文件
不同的文件应该对应不同的文件类型。
比如:
FILE "01 - NikiNana (We're One).flac"WAVE
注意:
1、每个 CUE 文件内至少含有一条 FILE 命令。
2、<data-file-name> 必须用半角双引号引起来。
3、注意 <data-file-name> 必须与 CUE 文件位于相同目录下。
----------------------------------------------------------------------------------------------------
TRACK 命令
这条命令用于声明某个数据文件内的一条数据轨段。格式为:
TRACK <track-id> <track-data-type>
其中 <track-id> 是轨段编号,取值必须在 01 到 99 之内。<track-data-type> 为轨段的数据类型,与刻录机型号有关,一般为 AUDIO,其他 <track-data-type> 类型请自行查阅相关文献。
比如:
TRACK 01 AUDIO
注意:
1、每个 FILE 命令内至少含有一条 TRACK 命令。
2、<track-id> 即为播放器内识别的音轨号。
----------------------------------------------------------------------------------------------------
INDEX 命令
这条命令对某个数据文件内的一条数据轨进行分段。格式为:
INDEX <index> <begin-time>
其中 <index> 是子轨段编号,取值必须在 00 到 99 之内。<begin-time> 为子轨段的时间起点。对于<index>,其中00和01为比较特殊的点。00 为要跳过的轨内空白段,而 01 为轨段的有效起点。
比如一个 TRACK 和前一个 TRACK 之间有50秒的空档:
TRACK 01 AUDIO
INDEX 0100:00:00
REM 每个文件的第一个 TRACK 不能有 INDEX 00,其 INDEX 01必须为00:00:00。
TRACK 02 AUDIO
INDEX 0000:05:00
REM 此处跳过50s的空档,直接到05:50继续播放。
REM 因为 INDEX 01才是 TRACK 02的开始,所以 INDEX 00可以
REM 看作是 TRACK 01的有效结束时间。
INDEX 0100:05:50
注意:
1、每个 TRACK 命令内至少含有 INDEX 01。
2、每个文件第一个 TRACK 的 INDEX 01 都应从 00:00:00 开始,且不得有 INDEX 00。很多 CUE 文件无法被 Foobar2000 识别,就是因为这个错误。
----------------------------------------------------------------------------------------------------
PREGAP 命令
这条命令类似于 INDEX 00,但又略有所不同。格式为:
PREGAP <skip-time>
这条命令的作用和 INDEX 00 相似,但却又不相同。其中 <skip-time> 是要插入的空白时间长度。区别在于:
1、PREGAP 是在该轨段前硬性加入一段空白时间(数据全为0),常用于刻录中,Foobar2000 不支持。
2、PREGAP 是在轨段前插入真实数据,而 INDEX 00 只是跳过轨段内部的一段数据,因此两者不同。
3、PREGAP 可以用于文件的第一个 TRACK 中,而 INDEX 00 不可以。
比如:
TRACK 01 AUDIO
PREGAP 00:02:00
INDEX 0100:00:00
注意:
1、每个 TRACK 命令内最多只能有一条 PREGAP 命令。
2、PREGAP 必须位于 TRACK 命令后,所有 INDEX 命令之前。
----------------------------------------------------------------------------------------------------
POSTGAP 命令
这条命令类似于 INDEX 00,但又略有所不同。格式为:
POSTGAP <skip-time>
这条命令的作用和 INDEX 00 相似,但却又不相同。其中 <skip-time> 是要插入的空白时间长度。区别在于:
1、POSTGAP 是在该轨段后硬性加入一段空白时间(数据全为0),常用于刻录中,Foobar2000 不支持。
2、POSTGAP 是在轨段后插入真实数据,而 INDEX 00 只是跳过轨段内部的一段数据,因此两者不同。
3、POSTGAP 可以文件的第一个 TRACK 中,而 INDEX 00 不可以。
比如:
TRACK 01 AUDIO
INDEX 0100:00:00
POSTGAP 00:02:00
注意:
1、每个 TRACK 命令内最多只能有一条 POSTGAP 命令。
2、POSTGAP 必须位于所有 INDEX 命令之后。
----------------------------------------------------------------------------------------------------
TITLE、SONGWRITER、PERFORMER 命令
用于描述每条数据轨段的信息,用法参考 Header 部分。
注意:
1、在数据轨描述表内,这3条命令必须在 TRACK 命令后使用。
-----------------------------------------------------------
ISRC 命令
该命令指定数据轨的 ISRC 码(参考百度百科)。格式为:
ISRC <isrc-code>
例如 NightWish 的《Imaginearum》专辑里第1轨:
ISRC FI3SN1100001
注意:
1、该命令是单轨信息部分,必须出现在 TRACK 命令后面,且每轨只能有一条 ISRC 命令。
2、<isrc-code> 可以并建议用半角双引号引起来。
----------------------------------------------------------------------------------------------------
FALGS 命令
该命令指定数据轨的 SUBCODES,用于刻录中。格式为:
FLAGS <subcodes>
可用 SUBCODES 如下:
<subcode> 说明
DCP 允许数位复制。
PRE 允许预加重。
4CH 四声道音讯。
SCMS 连续复制管理系统。
例如 Bandari 的《Emerald Valley》专辑里第1轨:
FLAGS DCP
注意:
1、该命令是单轨信息部分,必须出现在 TRACK 命令后面,且每轨只能有一条 FLAGS 命令。
2、FLAGS 命令一次可以指定多条 subcode。
----------------------------------------------------------------------------------------------------
REM 命令
REM 命令在头部信息中已经描述过,此处对其扩展命令的用法进行补充说明,只用于 TRACK 命令中。格式为:
REM REPLAYGAIN_TRACK_GAIN +/- *.** dB这个命令用于指定音轨的增益回放信息,用于提高/降低音量。例如Groove Coverage的《21st Century》第02轨:REM REPLAYGAIN_TRACK_GAIN -10.22 dB
REM REPLAYGAIN_TRACK_PEAK *.******这个命令用于指定音轨的增益回放信息,指定音轨峰值。例如Groove Coverage的《21st Century》第02轨:REM REPLAYGAIN_TRACK_PEAK 0.977142
----------------------------------------------------------------------------------------------------
==========================================================================================
三、范例解析
实例1:(此处 /**/ 表示我的注释,注意 “/**/” 并非CUE内容
PERFORMER "Nightwish"/* 指定音乐光盘作者 */
TITLE "Nemo, CDS,Normal Version"/* 指定光盘标题 */
REM GENRE "HeavyMetal"/* 音乐分类 */
REM DATE 2004/* 发行年份 */
REM DISCID 3F054305/* 光盘 DISCID 编码 */
REM COMMENT "ExactAudioCopyv0.99pb4"/* CUE 生成信息 */
FILE "Nightwish -Nemo, CDS, Normal Version.ape" WAVE /* FILE 命令,指定音乐文件 */
TRACK 01 AUDIO /* 第一个音轨 */
TITLE "Nemo (From The Album 'Once')"/* 音轨标题 */
PERFORMER "Nightwish"/* 音乐演唱者 */
INDEX 0100:00:00/* 第一轨 INDEX 01 必须从 00:00:00 开始 */
TRACK 02 AUDIO /* 第二个音轨 */
TITLE "Planet Hell(From The Album 'Once')"/* 音轨标题 */
PERFORMER "Nightwish"/* 音乐演唱者 */
REM REPLAYGAIN_TRACK_GAIN -8.32 dB /* 音乐增益回放信息 */
REM REPLAYGAIN_TRACK_PEAK 0.977234/* 音乐增益回放信息 */
INDEX 0004:29:03/* 跳过两轨间的空档 */
INDEX 0104:29:04/* 第二个音轨的起点 */
实例2:
TITLE "Imaginaerum"
PERFORMER "Nightwish"
REM GENRE "SymphonicMetal"
REM DATE 2011
REM DISCID BA118E0D
REM COMMENT "ExactAudioCopyv1.0b3"
FILE "01 -Taikatalvi.flac"WAVE /* 第一个文件 */
TRACK 01 AUDIO /* 只有一个 TRACK */
TITLE "Taikatalvi"
PERFORMER "Nightwish"
REM REPLAYGAIN_TRACK_GAIN -5.14 dB
REM REPLAYGAIN_TRACK_PEAK 0.977142
ISRC FI3SN1100001 /* 指定音轨的 ISRC 编号 */
INDEX 0100:00:00/* 每个文件第一个 TRACK 的 INDEX 01 必须从 00:00:00 开始,且不能有 INDEX 00*/
FILE "02 -Storytime.flac" WAVE /* 第二个文件 */
TRACK 02 AUDIO /* 只有一个 TRACK */
TITLE "Storytime"
PERFORMER "Nightwish"
ISRC FI3SN1100002 /* 指定音轨的 ISRC 编号 */
INDEX 0100:00:00/* 每个文件第一个 TRACK 的 INDEX 01 必须从 00:00:00 开始,且不能有 INDEX 00*/
实例3:
TITLE "Example"
PERFORMER "Unknown"
FILE "exp1.wav" WAVE /* 第一个文件 */
TRACK 01 AUDIO /* 文件的第一个音轨 */
TITLE "Track 01"
INDEX 0100:00:00
TRACK 02 AUDIO /* 文件的第二个音轨 */
TITLE "Track 02"
INDEX 0000:04:49/* 跳过其中 7s 空白*/
INDEX 0100:04:56
FILE"exp2.wav" WAVE /* 第二个文件 */
TRACK 03 AUDIO /* 文件的第一个音轨 */
TITLE "Track 03"
INDEX 0100:00:00
更多推荐

所有评论(0)