我的音乐文件带有一些自定义标签,出于某种原因,这些标签并不完全标准化。这可能是由于我的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%
作为无排序专辑艺术家的后备字段。