如何在foobar2000中创建一个动态播放列表

在foobar2000中创建一个智能列表,能省去手动添加新增专辑文件夹的麻烦。

首先,第一段我会说一些有用没用的废话。
这里我会以foobar2000 v1.6.16 Asion Plus版为例,因为这个是1.x系列的最后一个非官方汉化版
之所以选择Asion大神的Plus版而不选择英文原版或者更新的2.x YeYo汉化版
是因为Asion Plus版集成了一些官方没有的插件,而2.x YeYo目前缺少一些好用的预设本人用不习惯
不过我相信智能列表的创建方法应该都是一样的
说来惭愧,我正式转战用foobar2000差不多就是千千静听停更的那个时候,也不知道是多少年前的事了,可能暴露年龄了,毕竟很多人都不知道千千静听是什么东西,更别说Winamp,但是人家Winamp还活的好好的
不过当时我也只是把foobar2000当成一个普通的播放器,而且我电脑依然还一直保存着最后一个官方纯净的千千静听5.7绿色版

以前每次下载了新的CD资源转换成MP3后都要手动添加到foobar2000的播放列表中
手动添加倒不是什么麻烦事,主要是添加时随着文件数量越来越多,扫描的效率逐渐变低
直到现在我才想起是不是可以创建动态列表呢?结果百度一看还真的可以。
首先确认自己的音乐库文件夹的位置,比如我的在“G:\音楽”中
然后建议里面的内容根据自己的喜好或听歌习惯进行子文件夹的分类存放
比如“BanG Dream!”、“ラブライブ!”、“I've Sound”等等等等
如果你再仔细一些,里面还可以再按照专辑进行细分
这样之后当你需要添加新专辑时只需新建一个文件夹把音乐文件放进去就好
foobar2000的智能播放列表会实时的自动更新指定路径下的音乐

第一步是建立媒体库的监听,运行foobar2000找到“媒体库”菜单,选择“配置”命令

第二步,在“参数选项”窗口的左边树状图中找到“媒体库”选项,右边的“音乐文件夹”添加你的音乐库路径

比如“G:\音楽”,或者也可以单独把里面子文件夹一个一个添加去,此时它的状态是“等待”
点击下面的“应用”,让它的状态变成“正在监视”为止,这里耗时会根据自己音乐库中音乐的多少有所不同,反正按完“应用”在没变成“正在监视”之前就不要乱动

第三步,找到下方“已安装的媒体库视图”,点击“搜索”,然后点右边的“激活”
打开“媒体库搜索”窗口,搜索栏中输入 %path% HAS "G:\音楽"
这里你应该根据自己的情况替换自己库的路径,之后我就不再重复提醒了
这个表达式的意思就是返回 路径字段 %path% 中包含了 G:\音楽 这个字符串的所有项目
路径字段是一种元数据字段,它不是一个固定的值,而根据语法 %path% 就表示了媒体库中所有项目的完整路径集合
HAS 是运算符,意思是选择前者中包含了后者的项目
因为之前添加的媒体库好了都是 "G:\音楽" 这个位置下的,所以字符串 "G:\音楽" 所返回的结果正好就是全部文件
这个字符串两边加了半角的引号要为了防止有些路径包含空格会让整个表达式无法识别

补充一个从外面进入媒体库搜索的方法:

第四步,当你填写完正确的表达式后,下方就会列出全部符合条件的歌曲
搜索栏右边有三个按钮,"x"用来清除搜索条件,"?"用于打开一个查询表达式帮助的网页,你可以在这里学一些其他的语法
第三个"..."则会打开一个菜单,然后选择“创建智能列表”,此时主窗体的播放列表框右边就会追加一个“新建播放列表”
注意,这个“新建播放列表”是智能列表,和直接右键创建的列表,或则专辑列表中创建的智能列表有所不同
右键创建的列表是普通列表,你在标题中右键时菜单中没有“智能列表”的选项
而专辑列表中创建智能列表只限同步创建时选择的路径,后面不能更改路径,只能进行内部文件的筛选
只有通过“搜索”创建的智能列表,它的路径是可以后期修改的表达器,所以更加灵活

第五步,通过“搜索”创建完智能列表后一个实时同步你的音乐库的动态播放列表就算创建完成了
如果你的目的只是创建一个容纳全部歌曲的列表,那你可以关闭选项,然后把列表改个心仪的名称,大功告成!
如果你有别的需求,只要音乐库中某几个文件夹中的歌曲放入智能列表那就先别急着关闭“搜索”界面
这里只是为了减少之后的重复步骤,先根据自己的需求多创建几个内容相同的智能列表,比如我要三个就先创建三个。之后只需要改个标题,改个修改表达式即可。

第六步,当你创建完你需要数量的智能列表后关闭其他窗口回到主界面。
在需要改动的智能列表标题处右键,菜单中会有“智能列表...”的选项,当然你也可以先改个心仪的列表标题
打开“智能列表属性”窗口,我们看“查询模版”后面的内容其实就是刚才创建时填写的表达式
之后的几个步骤,我会根据我实际遇到的几种不同的情况分开举例说明。

第七步,假设你需要的只是你音乐库中其中一的个文件夹
比如我的“G:\音楽”下有“BanG Dream!”文件夹
里面全部存放的都是邦邦相关的音乐,我现在只需要创建邦邦的专用列表,不需要其它的内容
这个例子很简单,因为目标很明确的只有一个子文件夹并且知道具体的路径
所以表达式就是 %path% HAS "G:\音楽\BanG Dream!"
其实就是将之前的字符串的范围精确到的子文件夹里,这样因为其他文件的位置不可能有这个字符串,自然就不可能被检索出来
然后“排序模版”中这里可以空着,或者填写比较通用的 %path_sort% ,强制排序一般不勾选,确定看结果

第八步,上个例子只是一个子文件夹,本质上和整个库一样没变,所以现在就看看如果是多个不同的子文件夹该怎么处理
同样的在我的“G:\音楽”下有五个关于“Love Live!”相关的子文件夹
由于歌曲其实太多,所以我根据企画分成了五个,比如“ラブライブ! School idol project”,“ラブライブ! サンシャイン!!”等等等等
首先把需要用到的五个表达式都一一的写下来,如下:
%path% HAS "G:\音楽\ラブライブ! School idol project"
%path% HAS "G:\音楽\ラブライブ! サンシャイン!!"
%path% HAS "G:\音楽\ラブライブ! 虹ヶ咲学園スクールアイドル同好会"
%path% HAS "G:\音楽\ラブライブ! スーパースター!!"
%path% HAS "G:\音楽\ラブライブ! 蓮ノ空女学院スクールアイドルクラブ"
之后根据语法用 OR 把这五个表达式串连起来就是:
%path% HAS "G:\音楽\ラブライブ! School idol project" OR %path% HAS "G:\音楽\ラブライブ! サンシャイン!!" OR %path% HAS "G:\音楽\ラブライブ! 虹ヶ咲学園スクールアイドル同好会" OR %path% HAS "G:\音楽\ラブライブ! スーパースター!!" OR %path% HAS "G:\音楽\ラブライブ! 蓮ノ空女学院スクールアイドルクラブ"
懂点逻辑表达式的都明白OR只有当两边都是False时结果才是False,否则只要有一方是True,整个结果就是Ture

但是如果这五个表达式串连之后实在才长了,不过仔细观察会发现在我的例子中,这些路径的前面都有一个特点,就是前面有一部分字符串是相同的
所以这里可以精简到如下表达式 %path% HAS "G:\音楽\ラブライブ!"

而输出的结果和前面五个串连之后的结果是相同的,虽然但是,毕竟这是个特殊的例子,所以下面举例一个不能精简的情况该如何?

第九步,假如果我想创建一个“拉邦结派”的播放列表又该怎么处理呢?
很明显,根据我的音乐库,“BanG Dream!”和“ラブライブ!”这些虽然都放在一起根本没法精简
如果使用前面相同部分就相当于返回整个库,会包含一些不需要的歌曲
所以这个时候运算符 OR 才该发挥关键的作用了
创建如下表达式:
%path% HAS "G:\音楽\BanG Dream!" OR %path% HAS "G:\音楽\ラブライブ!"

此时创建的列表就是同时包含拉拉和邦邦相关歌曲的智能播放列表啦

衍生一下,假设你的音乐库不只放在一个位置甚至不到同一个硬盘分区里,也能用此方法把不同库中的音乐整合到同一个智能列表中

如果你碰巧和我一样喜欢在专辑文件夹名称前加上这个专辑的发售日期
并且希望优先依据这个日期排序,其后才按照盘号或音轨号排序
则可以在“排序模版”中输入以下内容,并勾选强制排序
%directoryname% - %totaltracks% - %tracknumber%
就以拉邦为例,因为如果只用 %path_sort% 就是拉邦各顾各的堆叠在一块互不干涉
那怎么叫拉邦结派呢?因为是按发售日期存放的话她们之间必定会有时间上的穿插

但是……有个逼死强迫症的问题要说,如果你有些专辑里面又分了好多子文件夹就会影响排序
比如我,由于μ's的Solo Live! collection Memorial BOX和BOX II都是9张碟的大资源
因为里面歌实在太多了所以为了方便管理,我又在里面单独为每张碟建了一个子文件夹
结果就导致这部分在排序时会特别的靠后,14年的专辑莫名排到了23年的后面
原因是 %directoryname% 表示的是文件所在目录,子文件夹会让他们比其他的都多一层数据
当然解决方案也是有的,就是给每个音轨都加上盘号的信息然后一股脑全塞一个文件夹内
可我有些洁癖这太乱了我也接受不了,不如不改

如果你还想研究其它的排序方式,可以在“排序模版”右边的"?"处查看语法
本应写在前面的后言:
这篇文章献给同样喜欢本地音乐的你我他,也希望对入坑foobar的新人有所帮助。本人才疏学浅略懂皮毛,文笔简陋错字连篇,如能助人不胜荣幸!