2006/10/15

foobar2000的Tag系统详解 (v0.9.2 beta)

Foobar2000的Tag工具是目前世界上功能最强大的音乐文件标签编辑、管理系统,同时它也是foobar2000的最大亮点之一。
Tag (标签),故名思义就是存储着音乐相关信息的数据块。目前有许多不同的Tag信息类型,常用的有:TITLE(音乐名)、ARTIST(艺术家)、 ALBUM(唱片名)、TRUCKNUMBER(音轨序号)、DATE(创作日期)、GENRE(音乐类型)、COMPOSER(作曲家)、 PERFORMER(表演者)、COMMENT(注释)等等,当然foobar2000也允许用户自定义字段,比如可以自定义一个RATING(评分)用 来为音乐打分。人们常常将这些类型称之为“字段”,每一个字段都由一个字符串数据存储相关信息。不同格式的音乐文件对Tag的存储方式也不同,一般分为两 种,第一种是支持将Tag存入文件内部的,如MP3、FLAC、WV等;另一种是不支持将Tag存入文件内部,或存储的信息过少,一般利用外部文件进行存 储的,如WAV、APE等。MP3文件中存储的Tag信息格式又分为几种,foobar2000支持最常见的三种,一是ID3v1,这是被绝大播放器软件 所支持的老版本Tag信息,但不能自定义字段,而且每个字段所对应的数据长度也很有限。二是ID3v2,这是现在流行的新版本Tag信息,功能很完善,但 有一部分播放器并不支持读取或写入该类型的Tag信息。三是APEv2,这是由Monkey's Audio制定的Tag信息类型,原先用于ape文件,但后来被加入到mp3文件中,功能也很完善,但支持它的播放器就很少了。有关Tag的详细信息请参 考

foobar2000的Tag工具用法非常简单,全部集中在播放列表的菜单项“Tagging”中,下面就以“Tagging”子菜单项的顺序依次讲解Tag工具是使用方法。

1 Reload info from file(s):从播放列表中选定的一项或多项音乐的文件中重新读取Tag信息,并更新到屏幕上。

2 Reload info from file(s) if changed:将播放列表中选定的一项或多项音乐的Tag信息与其对应的原文件中存储的Tag信息进行比较,如果发现不同则重新从文件中读取Tag信 息,并更新到屏幕上。如果播放列表中的项目很多,使用这一功能来更新播放列表就会比“Reload info from file(s)”要快的多了,但实际结果是一样的。

3 MP3 tag types:设定MP3文件的Tag类型。会弹出类型选择对话框,勾选表示以该格式存储Tag信息,点击Update files后会将选定的所有文件的所有的信息进行转储。注意,如果仅选中ID3v1可能会造成部分不兼容的数据丢失。仅在选定的是MP3文件时才会出现此 项。

4 Get tags from freeDB:从freeDB网络自动获取选定的唱片的Tag信息。点击后会将选定音乐的曲目长度信息通过网络发送给freeDB,freeDB会按照这 些信息在全球数据库中查找相应的唱片,找到后会将唱片的Tag信息发送给用户。如果没有找到会弹出唱片未找到的提示对话框,如果找到了则会弹出Tag信息 写入对话框。注意,一般只有原版唱片才能找到匹配的项。

4.1 Matches:显示所有匹配的唱片的列表。
4.2 Artist:唱片的艺术家字段,ARTIST。对于所有选定的音乐都一致。可修改。
4.3 Various artists:如果获取的艺术家字段中存有多个艺术家,并以逗号“,”相隔,勾选此项后每个艺家都将分开存入不同的ARITIST字段。对于所有选定的音乐都一致。
4.4 Album:唱片的名称字段,ALBUM。对于所有选定的音乐都一致。可修改。
4.5 Year:唱片的创作时间字段,DATE。对于所有选定的音乐都一致。可修改。
4.6 Gener:唱片的音乐风格字段,GENER。对于所有选定的音乐都一致。可修改。
4.7 Track information:显示选定唱片的曲目信息列表。
4.8 Wipe out existing tags:勾选,会先将现存所有的Tag信息删除,再以选定的唱片Tag信息写入;不勾选,会保留现有的Tag信息,只替换同名的Tag信息和添加不存在的Tag信息。
4.9 Update Files:将选定的Tag信息更新到文件中并关闭对话框。
4.10 Settings:打开该功能的设置面板。相关内容请参阅foobar2000设置面板的介绍文章。
4.11 Close:关闭对话框,但不保存数据。

5 Rewrite file tags:将播放列表中存储的Tag信息重新写入到文件中。如果在foobar2000将一项或多项音乐打开后,又用别的软件将该音乐的Tag信息修改了,就可以用这项功能恢复到原先的Tag信息。

6 Remove tags from file(s):将所有的Tag信息从选定的音乐中删除。注意,此项执行后不可恢复,慎用!

7 Live show tagger:国外有一些人在网络上交易音乐时可能不会在音乐文件本身中存储任何Tag信息,而会用一种固定格式(etree或furthur)的文本来 描述音乐,一般存有唱片名、艺术家、曲目等信息,而这些信息一般是以TXT文本文件的形式存储在音乐的同目录或上层目录中。选定一些音乐后点击该项, Live show tagger会自动查找、匹配并打开选定音乐所对应的文本文件,然后按格式显示在对话框中。在该对话框中用户可以对Tag信息做一些方便的查看、编辑、整 理操作。这项功能对于foobar2000的国内用户来说可能没什么用处,这里就不再详细描述了。

8 View Text file:此功能尚未提供

9 Edit Text file:用外部默认编辑工具打开相关文本文件。

10 Edit Tags:这是foobar2000中最强大的标签批处理功能,可以极方便按照用户需要方式对大量音乐进行快速的一次性处理。选定多个音乐后点击此项会弹 出批处理对话框。对话框的左上是动作编辑器,用来设定编辑Tag的动作步骤。用户可以设置任意数量的步骤,foobar2000将按照顺序依次执行。左下 部是脚本存取工具,可以将此次编辑的动作步骤和数据存入脚本或脚本文件,也可以从脚本或脚本文件中读取动作步骤和数据。右边显示的是待处理的文件列表。下 面是对话框各部分的详细介绍。
10.1 Actions to perform列表框:按顺序显示出准备执行的动作步骤的名称。选定一项后用下方的按扭对其进行操作。
10.2 Add:添加一项动作。点击后会弹出对话框让用户选择需要添加的动作,每项动作都是针对所有选定的音乐(显示在右边的文件列表框中)进行的。
10.2.1 Add value:添加字段。点击后弹出添加字段对话框,在上方选择要添加的字段名,下方填入数据。执行时会为每一项音乐添加指定的相同的字段和数据。
10.2.2 Auto track number:自动音轨编号。执行时会按照选定音乐文件的顺序对它们的TRACKNUMBER字段进行编号,从1开始。
10.2.3 Copy value:复制字段。点击后弹出复制字段对话框,在上方选择被复制的字段(必须存在),在下方选择复制到的字段。执行时会将被复制的字段中的数据提取出 来,写入到复制到的字段数据中。如果复制到的字段存在,则会复盖原有数据;如果不存在,则会创建该字段。
10.2.4 Format value from other fields:从别的字段格式化一个新的数据填入到指定的字段中。点击后会弹出格式化对话框,在上面选择要写入数据的字段,在下面填入Title formatting。执行时会先按照指定的Title formatting从被处理的音乐中提取相关数据并进行格式处理,然后写入指定的字段中。如果复制到的字段存在,则会复盖原有数据;如果不存在,则会创 建该字段。
10.2.5 Guess values from filename:从文件名中推测字段值,此功能要求文件名有一定的规律性。点击后弹出推测设置对话框,用户需要按照文件名的格式填入Title formatting字符串。在执行时会按照指定的格式分析被处理音乐的文件名,并将提取出的数据写入相应的字段。比如文件名的格式都为“演唱者-曲 名”,则可填入Title formatting:“%artist%-%title%”,执行后文件名中的演唱者信息会被存入ARTIST字段,曲名信息会被存入TITLE字段
10.2.6 Guess values from other fields:从其它字段中推测未知的字段值。点击后弹出推测设置对话框,在上面的框中填入字段源的title formatting,在下面的框中填入推测格式的title formatting。执行时会先按照字段源指定title formatting从被处理的音乐中提取相关数据并进行格式处理使之成为源字符串,然后再以指定的猜测格式对源字符串进行分析,将提取出的数据写入到目 标字段。比如所选定的一些音乐没有ARTIST(演唱者)字段,但在TITLE(标题)字段中以“演唱者-曲名”的形式存有演唱者信息,则可在字段源中填 入“%title%”,在推测格式中填入“%artist%-%title%”。执行后TITLE字段会被重新赋予曲名信息,ARTIST字段会被赋予演 唱者信息。
10.2.7 Guess value from text fields:从文本文件中猜测相关信息。如上文所讲,文本文件的功能极少使用,这里就暂不提及了。当文本文件的应用普及后会对这些功能进行补充介绍。
10.2.8 Input data (one line per track):为选定的音乐手工输入数据,每行数据都将被赋予与之相应的音乐项。点击后弹出输入数据对话框,在上方填入输入数据的格式title formatting。在下方依次为选定的每一首音乐输入一行数据。执行时会按照指定的格式title formatting对输入的数据进行解析,然后将提取出的数据写入相应的字段。例如要为选定的每一首音乐手工赋予ARTIST(演唱者)字段和 TITLE(标题)字段,则可在格式中填入“%artist%-%title%”,在下方按照“演唱者-标题”的格式为每一首音乐输入一行信息。执行后每 行信息中的演唱者和标题信息会被写入到这行对应的音乐文件的ARTIST字段和TITLE字段。
10.2.9 Remove all except for:删除指定除字段外的其它所有字段。点击后弹出指定字段对话框,填入不想删除的字段名。字段不分大小写,之间以分号“;”相隔开。
10.2.10 Remove all fields:删除所有字段。
10.2.11 Remove fields:删除指定的字段。点击后弹出指定字段对话框,填入需要删除的字段名。字段不分大小写,之间以分号“;”相隔开。
10.2.12 Set value:为某字段设置相同的数据。点击后弹出设置字段对话框,在上方填入需要被设定值的字段名,在下方填入写入的数据。执行后会为每一首音乐中指定的字段写入相同的数据。
10.2.13 Split field by separator:按照分隔符切分字段并将数据存入同名字段中。点击后弹出切分字段对话框,在上方选择要切分的字段,在下面填入分隔符。执行时会按照指 定的分隔符将指定的字段中的每段数据存入同名的字段中。例如字段ARTIST中的数据为“Tom and Peter and Anna”,则在字段框中选中ARTIST,在分隔符框中填入“ and ”(注意前后要保留空格),执行后这首音乐会出现三个同名的ARTIST字段,数据分别为“Tom”、“Peter”和“Anna”。
10.3 Split multiple artist fields:将ARTIST字段中不同的艺术家存入到同名的ARTIST字段中。执行时会以逗号“,”为分隔符来识别不同的艺术家。
10.4 Script:脚本处理区,框中可以输入新的脚本名或选择已存在的脚本名。
10.5 Save:将当前的动作列表存入选定的脚本。
10.6 Load:从选定的脚本中读取动作列表,并替换当前的动作列表。
10.7 Add:从选定的脚步本中读取动作列表,添加到当前的动作列表后面。
10.8 Delete:删除选定的脚本。
10.9 Save to file:将当前的动作列表存入到文件中。
10.10 Load from file:从文件中读取动作列表,并替换当前的动作列表。
10.11 Add from file:从文件中读取动作列表,并添加到当前的动作列表后面。
10.12 Close this window when down:勾选,当全部处理结束后会自动关闭整个对话框。
10.13 Run:开始按照当前的动作列表依次进行处理。
10.14 Close:关闭对话框。

11 Copy info between files:将一个文件的Tag信息复制到另一个Tag文件中。选中至少两个文件后点击此项,会弹出复制信息对话框,在左边选中被复制Tag信息的文件, 在右边选中将被复制Tag信息到的文件。点击Run开始复制,结束后关闭对话框;点击Close,不复制直接关闭对话框。

12 Script:直接执行选定的脚本。与在Edit tags中执行脚本的方式一致。


另外,foobar2000还提供一项简单的编辑Tag信息的功能,也就是播放列表功能菜单里的Properties(属性)。当选中一项音乐和多项音乐时这个对话框是不一样的,先介绍单个音乐项的属性对话框。
1 Location:该音乐文件的完整文件名(包括路径)。
2 Subsong index:该音乐的音轨编号。
3 Meta data:以列表方式显示该音乐的所有字段及其相应数据。
4 Copy:将该音乐的所有字段及其相应数据以文本方式复制到剪贴板,每行一个字段。
5 Edit:编辑选中的字段数据。(在字段列表中双击也可实现编辑)
6 Add New:添加一个新的字段。
7 Remove:删除选定的字段。
8 最后一个按钮:点击后弹出额外的功能。“Remove all”,删除所有字段及其数据;“Remove all Except for”,删除指定的字段以外的其它所有字段,在弹出的对话框中填入不想删除的字段,以分号“;”相隔。
9 Length:该音乐的时间长度,格式为“分钟:秒.毫秒”
10 Replaygain:显示该音乐的RG数据。
11 Copy:将该音乐的RG数据以文本方式复制到剪贴板中,每行一条数据,空数据不复制。
12 Other info:显示该音乐的其它技术信息,比如采样率、位率、通道等。
13 Reload info from file:从文件中重新读取数据并更新到对话框中,未保存的改动将丢失。
14 Update file:以当前对话框中的数据更新文件。更新的数据仅包括字段列表中的信息,并且不可恢复。
15 Close:关闭对话框。


当选中多个音乐文件再点击Properties菜单项后会出现另一个对话框。
1 Metadata:显示这些音乐的所有字段及其相应数据。如果某字段在所有的音乐中都存在,而且数据也完全一致,则会显示该字段和数据;如果某字段仅在部分音乐中存在或每首音乐的该字段数据不尽相同,则会显示为“字段名=(varies/unchanged)”。
2 Reset:如果不小心错误的修改了某个字段的数据可以使用该按钮恢复到修改前的状态。注意,如果在修改数据后已经更新到了文件,则此功能无效。
3 Edit:编辑选定的字段。选中的所有音乐的数据都将被写入指定的数据。(双击字段列表中的字段项也可实现编辑功能)
4 Add new:添加一个新的字段,并写入数据。选中的所有音乐的数据都将添加此字段,写入的数据也一致。
5 Remove:删除选定的字段。该字段将从所有选中的所有音乐中删除。
6 最后一个按钮:有四项子功能。“Remove all”将所有字段从所有选中的音乐中删除;“Remove all except for”从所有选中的音乐中删除指定的字段以外的其它所有字段,在弹出的对话框中填入不想删除的字段,以分号“;”相隔;“Auto Track number”和“Input per-track values”这两项与Tag edit中的同名功能完全一致。
7 Total length:所有选定音乐的时间长度总和。
8 Total size:所有选定音乐的文件数据量大小。
9 Avg. bitrate:所有选定音乐平均的位率。
10 Reload info from files:从选中的文件中重新读取数据并更新到对话框中,未保存的改动将丢失。
11 Update files:以当前对话框中的数据更新到选中的文件。更新的数据仅包括字段列表中的信息,并且不可恢复。
12 Close:关闭对话框。


最 后不得不提的是,有一个很著名的插件“foo_infobox”也提供了很方便的Tag信息管理功能,位于播放列表菜单中,名为“File info”或“文件信息”(中文版)。它的特色有:一,对话框是非模态的,也就是允许用户边操作foobar2000的主界面边操作该对话框;二,提供自 动跟随播放列表指针的功能,当在播放列表中选定一首曲目后,打开的文件信息对话框会自动显示该曲目的Tag信息;三,提供代码页转换功能,可以对一些乱码 的Tag信息进行纠正。其操作方法与上面所说的Properties对话框类似,这里就不再赘述了。

2 条评论:

匿名 说...

看着这个东西觉得很眼熟,翻了翻,发现原来自己曾经注册过...
偶来啦,前段时间回家了,回来一看,你不但搬家了,还搞的很兴盛的样子...
顺利就好~~ 呵呵~

匿名 说...

晕~~果然是“详解”啊~!