foob​​ar2000 排序语法中的条件语句

foob​​ar2000 排序语法中的条件语句

我的音乐文件带有一些自定义标签,出于某种原因,这些标签并不完全标准化。这可能是由于我的MusicBrainz Picard设置,但这不是重点。

无论如何,当按应等同的标签排序时,我希望每个曲目都按其实际拥有的一个标签排序。我的方法是:

$if3(%albumartistsortorder%, %albumartistsort%) $if3(%original release date%, %date%) %album% %disc% %track%

相反,似乎发生的情况是,排序只是忽略了条件并读取标签字段(包括参数),就好像它们不存在一样$if3()

第二种方法是编写自己的字段重映射。根据本指南,该%artist%字段实际上是

$if3($meta(artist),$meta(album artist),$meta(composer),$meta(performer))

如果我可以像这样定义自己的映射,那么我的问题就可以解决了。这可能吗,或者我还能做什么?

答案1

实际上,条件语句在排序字符串中工作得很好。但是,$if3()应该用逗号分隔其参数,而不要使用其他任何内容。使用空格会导致各种令人困惑的问题。有效的排序字符串是:

$if3(%albumartistsortorder%,%albumartistsort%,%artistsortorder%,%album artist%) $if3(%original release date%,%date%) %album% %disc% %track%

这与问题中的字符串相同,语法正确。它还使用%artistsortorder%%album artist%作为无排序专辑艺术家的后备字段。

相关内容