Условные операторы в синтаксисе сортировки foobar2000

935
August Janse

Мои музыкальные файлы помечены некоторыми пользовательскими тегами, которые по некоторым причинам не полностью стандартизированы. Вероятно, это связано с некоторыми особенностями моей установки 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

1 ответ на вопрос

0
August Janse

Actually, conditional statements work just fine in sort strings. However, $if3() should have its arguments separated with commas and nothing else. Using spaces caused various confusing problems. A working sort string is:

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

This is the same string as the one in the question, with proper syntax. It also uses %artistsortorder% and %album artist% as fallback fields for where there is no sorted album artist.

Похожие вопросы