神创天陆活动专区

CUE 文件及其格式说明

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

PERFORMER

SONGWRITER

CATALOG

REM DATE

REM DISCID

REM GENRE

REM COMMENT

CDTEXTFILE

这里出现了如下命令:(也许你发现了,这些命令全部用大写,其实大小写没关系,但是为了格式化,所以命令再次统一用大写的)

TITLE、CATALOG、SONGWRITER、PERFORMER、REM、CDTEXTFILE

下面我们对上面的命令逐行分析,记住 头部信息全部都是可有可无的,当然有就最好不过了。

----------------------------------------------------------------------------------------------------

TITLE 命令(头部)

这条命令很明显,指定唱片标题。格式为:

TITLE </p> <p>比如MJ的专辑《Thriller》</p> <p>TITLE "Thriller"</p> <p>注意:</p> <p>1、<title>必须小于80个字符。</p> <p>2、对于长且有空格的名称,必须用半角双引号引起来。这里建议在任何情况下都把<title>用双引号引起来。</p> <p>3、刻录时,如果刻录机不支持 CD-TEXT,则此命令将被忽略。但是在播放器里是有效的。</p> <p>----------------------------------------------------------------------------------------------------</p> <p>PERFORMER 命令(头部)</p> <p>这条命令也很简单,指定唱片演唱者。格式为:</p> <p>PERFORMER <performer-name></p> <p>比如MJ的专辑《Thriller》</p> <p>PERFORMER "MichelleJackson"</p> <p>注意:</p> <p>1、<performer-name>必须小于80个字符。</p> <p>2、对于长且有空格的名称,必须用半角双引号引起来。这里建议在任何情况下都把<performer-name>用双引号引起来。</p> <p>3、刻录时,如果刻录机不支持 CD-TEXT,则此命令将被忽略。但是在播放器里是有效的。</p> <p>----------------------------------------------------------------------------------------------------</p> <p>SONGWRITER 命令(头部)</p> <p>这条命令也很简单,指定唱片乐曲编曲者。格式为:</p> <p>SONGWRITER <writer-name></p> <p>比如冯曦妤的歌曲《幸运儿》</p> <p>SONGWRITER "冯曦妤"</p> <p>注意:</p> <p>1、<writer-name>必须小于80个字符。</p> <p>2、对于长且有空格的名称,必须用半角双引号引起来。这里建议在任何情况下都把<writer-name>用双引号引起来。</p> <p>3、刻录时,如果刻录机不支持 CD-TEXT,则此命令将被忽略。但是在播放器里是有效的。</p> <p>----------------------------------------------------------------------------------------------------</p> <p>REM 命令(头部)</p> <p>这条命令表示注释,通常用来标明一些 CUE 阅读说明。格式为:</p> <p>REM <comments></p> <p>比如</p> <p>REM 这是说明哦。</p> <p>但是 REM 命令通常不会被这么使用,因为 CUE 文件格式简单,不需要写什么注释。于是 REM 就被用来指定各种 CUE 的扩展命令,这些扩展命令一般也是用于头部信息(音轨信息部分也有,后面会提到),一般作用于 Foobar2000 等音乐播放器。下面将逐个说明:</p> <p>REM GENRE <class-names>这个命令用于指定唱片、专辑的分类,建议后面的 <class-names> 用半角双引号引起来。例如贝多芬精选集里其中一张 CD:REM GENRE "Classical"</p> <p>REM DISCID <cd-id>这个命令用于指定 CD 的唯一编号,建议后面的 <cd-id> 用半角双引号引起来。例如贝多芬精选集里其中一张 CD:REM DISCID "5C0D6808"</p> <p>REM DATE <date>这个命令用于指定光盘的发行时间,精确到年。其中<date>可以用半角双引号引起来。例如,一张 2009 年发布的 CD:REM DATE 2009</p> <p>REM COMMENT <comment-string>这个命令用于指定 CUE 的生成说明,建议后面的 <comment-string> 用半角双引号引起来。例如使用 EAC 生成的 CUE 文件一般都带如下类似信息:REM COMMENT "ExactAudioCopy v0.99pb4"</p> <p>----------------------------------------------------------------------------------------------------</p> <p>CATALOG 命令</p> <p>这条命令用于指定唱片的唯一 EAN 编号。格式为:</p> <p>CATALOG <catalog-id></p> <p>比如 George Michael 的专辑《Songs From The Last Century》。</p> <p>CATALOG "7243848740251"</p> <p>这是个比较重要的玩意儿,它表示这张唱片的身份证,是一个 13 位的数字,通常和唱片的 EAN 码一致。也就是说,这张唱片的唯一编号。世界上不会有两张唱片的 CATALOG 相同的。关于这个 CATALOG 码,要了解更多请参考百度百科。</p> <p>注意:</p> <p>1、<catalog-id> 必须为13个字符。</p> <p>2、这里建议把 <catalog-id> 用半角双引号引起来。</p> <p>3、注意本命令最多只能在 CUE 文件内出现一次,可以没有。通常位于头部。</p> <p>----------------------------------------------------------------------------------------------------</p> <p>CDTEXTFILE 命令</p> <p>这条命令用于指定光盘上使用的 CD-TEXT 信息文件的名称,具体用途不在此说明,需要的请自行查阅相关文献。格式为:</p> <p>CDTEXTFILE <cd-text-filename></p> <p>比如</p> <p>CDTEXTFILE "cd-text1.cdt"</p> <p>CDTEXTFILE "c:\cds\cd-text2.cdt"</p> <p>注意:</p> <p>1、<cd-text-filename> 可以是文件名,也可以包含文件路径。</p> <p>2、如果 <cd-text-filename> 内包含空格,那么必须用半角双引号引起来。这里建议总是把 <cd-text-filename> 用半角双引号引起来。</p> <p>3、如果刻录机不支持 CD-TEXT,那么此命令将被忽略。</p> <p>----------------------------------------------------------------------------------------------------</p> <p>至此,头部信息文件介绍完毕。下面开始介绍数据轨描述表部分。</p> <p>数据轨描述表分为两部分:</p> <p>一、核心部分,即下面格式中未被[]包含的内容,这一部分是必须存在的;</p> <p>二、单轨描述信息,即下面格式中被[]包含的部分。</p> <p>数据轨描述表的格式如下:(注意[]不是内容,只是表示其里面的内容为可选段)</p> <p>FILE <data-file-name><file-type></p> <p>TRACK <track-id><track-data-type></p> <p>INDEX 01<track-begin-time></p> <p>[TITLE <track-title>]</p> <p>[PERFORMER <performer-name>]</p> <p>[SONGWRITER <writer-name>]</p> <p>[ISRC <isrc-code>]</p> <p>[FLAGS <flags>]</p> <p>[PREGAP <pre-mute-time>]</p> <p>[POSTGAP <post-mute-time>]</p> <p>[REM REPLAYGAIN_TRACK_GAIN +/-*.** dB]</p> <p>[REMREPLAYGAIN_TRACK_PEAK *.******]</p> <p>[INDEX <index><track-begin-time>]</p> <p>数据信息描述表格式如上所示,其中 FILE 命令可以有多条,而每条 FILE 命令下又可以有多条 TRACK 命令。下面介绍各条命令。</p> <p>----------------------------------------------------------------------------------------------------</p> <p>FILE 命令</p> <p>这条命令用于声明一个数据文件。格式为:</p> <p>FILE <data-file-name> <file-type></p> <p>其中 <data-file-name> 是位于 CUE 文件相同目录下的数据文件名称。<file-type> 为文件的数据类型:</p> <p><file-type> 说明</p> <p>BINARY 二进制数据文件,必须是 Little-Endian 编码格式。</p> <p>MOTOROLA 二进制数据文件,必须是 Big-Endian 编码格式。</p> <p>AIFF AIFF 音频文件</p> <p>WAVE WAVE 音频文件(WAV/FLAC/APE)</p> <p>MP3 MP3 音频文件</p> <p>不同的文件应该对应不同的文件类型。</p> <p>比如:</p> <p>FILE "01 - NikiNana (We're One).flac"WAVE</p> <p>注意:</p> <p>1、每个 CUE 文件内至少含有一条 FILE 命令。</p> <p>2、<data-file-name> 必须用半角双引号引起来。</p> <p>3、注意 <data-file-name> 必须与 CUE 文件位于相同目录下。</p> <p>----------------------------------------------------------------------------------------------------</p> <p>TRACK 命令</p> <p>这条命令用于声明某个数据文件内的一条数据轨段。格式为:</p> <p>TRACK <track-id> <track-data-type></p> <p>其中 <track-id> 是轨段编号,取值必须在 01 到 99 之内。<track-data-type> 为轨段的数据类型,与刻录机型号有关,一般为 AUDIO,其他 <track-data-type> 类型请自行查阅相关文献。</p> <p>比如:</p> <p>TRACK 01 AUDIO</p> <p>注意:</p> <p>1、每个 FILE 命令内至少含有一条 TRACK 命令。</p> <p>2、<track-id> 即为播放器内识别的音轨号。</p> <p>----------------------------------------------------------------------------------------------------</p> <p>INDEX 命令</p> <p>这条命令对某个数据文件内的一条数据轨进行分段。格式为:</p> <p>INDEX <index> <begin-time></p> <p>其中 <index> 是子轨段编号,取值必须在 00 到 99 之内。<begin-time> 为子轨段的时间起点。对于<index>,其中00和01为比较特殊的点。00 为要跳过的轨内空白段,而 01 为轨段的有效起点。</p> <p>比如一个 TRACK 和前一个 TRACK 之间有50秒的空档:</p> <p>TRACK 01 AUDIO</p> <p>INDEX 0100:00:00</p> <p>REM 每个文件的第一个 TRACK 不能有 INDEX 00,其 INDEX 01必须为00:00:00。</p> <p>TRACK 02 AUDIO</p> <p>INDEX 0000:05:00</p> <p>REM 此处跳过50s的空档,直接到05:50继续播放。</p> <p>REM 因为 INDEX 01才是 TRACK 02的开始,所以 INDEX 00可以</p> <p>REM 看作是 TRACK 01的有效结束时间。</p> <p>INDEX 0100:05:50</p> <p>注意:</p> <p>1、每个 TRACK 命令内至少含有 INDEX 01。</p> <p>2、每个文件第一个 TRACK 的 INDEX 01 都应从 00:00:00 开始,且不得有 INDEX 00。很多 CUE 文件无法被 Foobar2000 识别,就是因为这个错误。</p> <p>----------------------------------------------------------------------------------------------------</p> <p>PREGAP 命令</p> <p>这条命令类似于 INDEX 00,但又略有所不同。格式为:</p> <p>PREGAP <skip-time></p> <p>这条命令的作用和 INDEX 00 相似,但却又不相同。其中 <skip-time> 是要插入的空白时间长度。区别在于:</p> <p>1、PREGAP 是在该轨段前硬性加入一段空白时间(数据全为0),常用于刻录中,Foobar2000 不支持。</p> <p>2、PREGAP 是在轨段前插入真实数据,而 INDEX 00 只是跳过轨段内部的一段数据,因此两者不同。</p> <p>3、PREGAP 可以用于文件的第一个 TRACK 中,而 INDEX 00 不可以。</p> <p>比如:</p> <p>TRACK 01 AUDIO</p> <p>PREGAP 00:02:00</p> <p>INDEX 0100:00:00</p> <p>注意:</p> <p>1、每个 TRACK 命令内最多只能有一条 PREGAP 命令。</p> <p>2、PREGAP 必须位于 TRACK 命令后,所有 INDEX 命令之前。</p> <p>----------------------------------------------------------------------------------------------------</p> <p>POSTGAP 命令</p> <p>这条命令类似于 INDEX 00,但又略有所不同。格式为:</p> <p>POSTGAP <skip-time></p> <p>这条命令的作用和 INDEX 00 相似,但却又不相同。其中 <skip-time> 是要插入的空白时间长度。区别在于:</p> <p>1、POSTGAP 是在该轨段后硬性加入一段空白时间(数据全为0),常用于刻录中,Foobar2000 不支持。</p> <p>2、POSTGAP 是在轨段后插入真实数据,而 INDEX 00 只是跳过轨段内部的一段数据,因此两者不同。</p> <p>3、POSTGAP 可以文件的第一个 TRACK 中,而 INDEX 00 不可以。</p> <p>比如:</p> <p>TRACK 01 AUDIO</p> <p>INDEX 0100:00:00</p> <p>POSTGAP 00:02:00</p> <p>注意:</p> <p>1、每个 TRACK 命令内最多只能有一条 POSTGAP 命令。</p> <p>2、POSTGAP 必须位于所有 INDEX 命令之后。</p> <p>----------------------------------------------------------------------------------------------------</p> <p>TITLE、SONGWRITER、PERFORMER 命令</p> <p>用于描述每条数据轨段的信息,用法参考 Header 部分。</p> <p>注意:</p> <p>1、在数据轨描述表内,这3条命令必须在 TRACK 命令后使用。</p> <p>-----------------------------------------------------------</p> <p>ISRC 命令</p> <p>该命令指定数据轨的 ISRC 码(参考百度百科)。格式为:</p> <p>ISRC <isrc-code></p> <p>例如 NightWish 的《Imaginearum》专辑里第1轨:</p> <p>ISRC FI3SN1100001</p> <p>注意:</p> <p>1、该命令是单轨信息部分,必须出现在 TRACK 命令后面,且每轨只能有一条 ISRC 命令。</p> <p>2、<isrc-code> 可以并建议用半角双引号引起来。</p> <p>----------------------------------------------------------------------------------------------------</p> <p>FALGS 命令</p> <p>该命令指定数据轨的 SUBCODES,用于刻录中。格式为:</p> <p>FLAGS <subcodes></p> <p>可用 SUBCODES 如下:</p> <p><subcode> 说明</p> <p>DCP 允许数位复制。</p> <p>PRE 允许预加重。</p> <p>4CH 四声道音讯。</p> <p>SCMS 连续复制管理系统。</p> <p>例如 Bandari 的《Emerald Valley》专辑里第1轨:</p> <p>FLAGS DCP</p> <p>注意:</p> <p>1、该命令是单轨信息部分,必须出现在 TRACK 命令后面,且每轨只能有一条 FLAGS 命令。</p> <p>2、FLAGS 命令一次可以指定多条 subcode。</p> <p>----------------------------------------------------------------------------------------------------</p> <p>REM 命令</p> <p>REM 命令在头部信息中已经描述过,此处对其扩展命令的用法进行补充说明,只用于 TRACK 命令中。格式为:</p> <p>REM REPLAYGAIN_TRACK_GAIN +/- *.** dB这个命令用于指定音轨的增益回放信息,用于提高/降低音量。例如Groove Coverage的《21st Century》第02轨:REM REPLAYGAIN_TRACK_GAIN -10.22 dB</p> <p>REM REPLAYGAIN_TRACK_PEAK *.******这个命令用于指定音轨的增益回放信息,指定音轨峰值。例如Groove Coverage的《21st Century》第02轨:REM REPLAYGAIN_TRACK_PEAK 0.977142</p> <p>----------------------------------------------------------------------------------------------------</p> <p>==========================================================================================</p> <p>三、范例解析</p> <p>实例1:(此处 /**/ 表示我的注释,注意 “/**/” 并非CUE内容</p> <p>PERFORMER "Nightwish"/* 指定音乐光盘作者 */</p> <p>TITLE "Nemo, CDS,Normal Version"/* 指定光盘标题 */</p> <p>REM GENRE "HeavyMetal"/* 音乐分类 */</p> <p>REM DATE 2004/* 发行年份 */</p> <p>REM DISCID 3F054305/* 光盘 DISCID 编码 */</p> <p>REM COMMENT "ExactAudioCopyv0.99pb4"/* CUE 生成信息 */</p> <p>FILE "Nightwish -Nemo, CDS, Normal Version.ape" WAVE /* FILE 命令,指定音乐文件 */</p> <p>TRACK 01 AUDIO /* 第一个音轨 */</p> <p>TITLE "Nemo (From The Album 'Once')"/* 音轨标题 */</p> <p>PERFORMER "Nightwish"/* 音乐演唱者 */</p> <p>INDEX 0100:00:00/* 第一轨 INDEX 01 必须从 00:00:00 开始 */</p> <p>TRACK 02 AUDIO /* 第二个音轨 */</p> <p>TITLE "Planet Hell(From The Album 'Once')"/* 音轨标题 */</p> <p>PERFORMER "Nightwish"/* 音乐演唱者 */</p> <p>REM REPLAYGAIN_TRACK_GAIN -8.32 dB /* 音乐增益回放信息 */</p> <p>REM REPLAYGAIN_TRACK_PEAK 0.977234/* 音乐增益回放信息 */</p> <p>INDEX 0004:29:03/* 跳过两轨间的空档 */</p> <p>INDEX 0104:29:04/* 第二个音轨的起点 */</p> <p>实例2:</p> <p>TITLE "Imaginaerum"</p> <p>PERFORMER "Nightwish"</p> <p>REM GENRE "SymphonicMetal"</p> <p>REM DATE 2011</p> <p>REM DISCID BA118E0D</p> <p>REM COMMENT "ExactAudioCopyv1.0b3"</p> <p>FILE "01 -Taikatalvi.flac"WAVE /* 第一个文件 */</p> <p>TRACK 01 AUDIO /* 只有一个 TRACK */</p> <p>TITLE "Taikatalvi"</p> <p>PERFORMER "Nightwish"</p> <p>REM REPLAYGAIN_TRACK_GAIN -5.14 dB</p> <p>REM REPLAYGAIN_TRACK_PEAK 0.977142</p> <p>ISRC FI3SN1100001 /* 指定音轨的 ISRC 编号 */</p> <p>INDEX 0100:00:00/* 每个文件第一个 TRACK 的 INDEX 01 必须从 00:00:00 开始,且不能有 INDEX 00*/</p> <p>FILE "02 -Storytime.flac" WAVE /* 第二个文件 */</p> <p>TRACK 02 AUDIO /* 只有一个 TRACK */</p> <p>TITLE "Storytime"</p> <p>PERFORMER "Nightwish"</p> <p>ISRC FI3SN1100002 /* 指定音轨的 ISRC 编号 */</p> <p>INDEX 0100:00:00/* 每个文件第一个 TRACK 的 INDEX 01 必须从 00:00:00 开始,且不能有 INDEX 00*/</p> <p>实例3:</p> <p>TITLE "Example"</p> <p>PERFORMER "Unknown"</p> <p>FILE "exp1.wav" WAVE /* 第一个文件 */</p> <p>TRACK 01 AUDIO /* 文件的第一个音轨 */</p> <p>TITLE "Track 01"</p> <p>INDEX 0100:00:00</p> <p>TRACK 02 AUDIO /* 文件的第二个音轨 */</p> <p>TITLE "Track 02"</p> <p>INDEX 0000:04:49/* 跳过其中 7s 空白*/</p> <p>INDEX 0100:04:56</p> <p>FILE"exp2.wav" WAVE /* 第二个文件 */</p> <p>TRACK 03 AUDIO /* 文件的第一个音轨 */</p> <p>TITLE "Track 03"</p> <p>INDEX 0100:00:00</p> </p></section> <footer> <h5><em><a href="/23f6841fdc37190a/index.html">版本速报</a></em></h5> </footer> <nav> <div style="text-align: left;background:#f1f1f1;padding:20px;line-height:50px;"> <a href="/9c21a08d10a6cf37/4c83ecf040188f6d.html">朱一龙家庭背景曝光?明明有颜值,却靠实力吃饭?网友:我柠檬了</a><br><a href="/23f6841fdc37190a/3d2766e996e64a46.html">[讨论]关于PP数与掉落、经验、血量、伤害命中与密度的问题,以及最好的打宝/升级配置</a> </div> </nav> </article> </section> <aside> <dl class="function" id="newmodule"> <dt class="function_t">最新发表</dt><dd class="function_c"> <ul> <li><a title="星烬·烛耀山海:2025年5月4日盛大开启,探索神秘山海世界的全新冒险!" href="/9c21a08d10a6cf37/74c4f1ee1d4f52ff.html">星烬·烛耀山海:2025年5月4日盛大开启,探索神秘山海世界的全新冒险!</a></li> <li><a title="在线平均速度计算器" href="/9c21a08d10a6cf37/5609a8ded30c0d4c.html">在线平均速度计算器</a></li> <li><a title="《神魔仙尊》2025年4月22日盛大开启的跨服巅峰对决与豪华福利庆典" href="/23f6841fdc37190a/78f3f7e182cb2ee2.html">《神魔仙尊》2025年4月22日盛大开启的跨服巅峰对决与豪华福利庆典</a></li> <li><a title="《九霄缳神记》2025暑期盛典:跨服巅峰对决与限定神装掉落狂欢月" href="/7b869126f08b3c35/582ee28aaf022231.html">《九霄缳神记》2025暑期盛典:跨服巅峰对决与限定神装掉落狂欢月</a></li> <li><a title="弹壳特攻队2025春季大作战:勇者集结,赢取限定装备!" href="/7b869126f08b3c35/3695697df83ac7cc.html">弹壳特攻队2025春季大作战:勇者集结,赢取限定装备!</a></li> <li><a title="迅雷下载速度怎么提升?提高迅雷下载速度的七种方法" href="/23f6841fdc37190a/f050fbcfb8306d32.html">迅雷下载速度怎么提升?提高迅雷下载速度的七种方法</a></li> <li><a title="《武林英雄传》2025年4月3日全球武林争霸赛盛大开启" href="/23f6841fdc37190a/7c7cbae55e4c7ee1.html">《武林英雄传》2025年4月3日全球武林争霸赛盛大开启</a></li> <li><a title="城堡风暴:2025盛夏狂欢季·全服攻城战暨限定皮肤免费送活动" href="/9c21a08d10a6cf37/bbe0c67dbd948356.html">城堡风暴:2025盛夏狂欢季·全服攻城战暨限定皮肤免费送活动</a></li> <li><a title="摸金校尉之天字卷满V爆真充:限时开启,超值福利,畅玩无限!" href="/7b869126f08b3c35/1bcddc6a44a8ffdd.html">摸金校尉之天字卷满V爆真充:限时开启,超值福利,畅玩无限!</a></li> <li><a title="帝战迷失无限刀·2025跨服巅峰对决暨全服狂欢庆典活动说明" href="/23f6841fdc37190a/514695e390e16d66.html">帝战迷失无限刀·2025跨服巅峰对决暨全服狂欢庆典活动说明</a></li> </ul> </dd> </dl> <dl class="function" id="newmodule"> <dt class="function_t">友情链接</dt><dd class="function_c"> <div><script> var _mtj = _mtj || []; (function () { var mtj = document.createElement("script"); mtj.src = "https://node91.aizhantj.com:21233/tjjs/?k=gdvpk3plqch"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(mtj, s); })(); </script></div> </dd> </dl> </aside> </section> <aside id="extra"> </aside> </section> <footer> <h4>Copyright © 2022 神创天陆活动专区 All Rights Reserved.</h4> </footer> <script type="text/javascript" src="/static/js/san_praise_sdk.js"></script> </body> </html>