クエリ

表示の書式を定義したり、グループ化したりする場合に使用する、フォーマットを指定する文字列です.
foobar2000 をお使いの方には、 TitleFormat と似たものだと言えば、わかりやすいかもしれません (同じではありません).
クエリは、目的によっては、特別にツリークエリグループクエリソートクエリと表現します.
クエリのなかでは、タグは % で囲んで指定します. % で囲まれていない文字は、そのまま表示されます. たとえば、標準の設定では、アルバムを表現するグループクエリは
%ARTIST% - %ALBUM%
と定義されています. これに対して、楽曲に ARTIST, ALBUM の各タグの値が適切に設定されていれば、
ArtistName - AlbumTitle
などという文字列に展開されます.

クエリコマンド

Version 4.4.0より, 簡単なコマンドを使用することができるようになりました. クエリコマンドについてはこちらを参照してください.

応用

クエリにはいくつか特別な表記を行うことができます.
!
ソート指定用の修飾です. % で囲まれた中、オプション引数部以外で ! (エクスクラメーション)を含めると、ソートの際に逆順として扱うようになります. "%!DATE%" の場合、日付の新しい順となります.
この指定は, 修飾したタグだけでなく, クエリ全体に効きます. "%!%%DATE%" でも意味は同じです.
@
この指定は オプション引数 NameWOArticle と同じです. % で囲まれた中、オプション引数部以外で使用できます. 例: "%@_GRPARTIST%"
[]
文字列を [] で囲んだ場合、そのなかで定義されているタグの値がすべて空であれば、 空文字が返ります.
タグ名のあとのオプション引数
タグは % で囲んで指定する、というのは先に述べた通りです. このとき、タグ名のあとに、カンマで区切って引数を渡すことができます. "%ARTIST,3%" というような形式です. 下表に、タグ名のあとに書ける引数を説明します.
なお, 下表では見やすさのため大文字・小文字を区別して表記していますが, 実際に構文解析する際には大文字・小文字は区別しません.
[]内は省略可能です.
形式 意味
n
(n は整数)
値の左側からn文字を取得します.
"%DATE,4%" の指定で、 DATE に "2013-01-10" が指定されていた場合、先頭4文字の "2013" だけが返ります.
nL
(n は整数)
値がn文字未満の場合, 右側にスペースを追加してn文字にして返します (左寄せ).
"%_KBPS,4L%" の指定で, _KBPS が "230" だとすると, 右側にスペースを1文字追加して, "230 " の4文字にします.
このスペースは, 固定ピッチのフォントを使用している場合に, 位置合わせに使用できます.
nR
(n は整数)
値がn文字未満の場合, 左側にスペースを追加してn文字にして返します (右寄せ).
"%_KBPS,4R%" の指定で, _KBPS が "230" だとすると, 左側にスペースを1文字追加して, " 230" の4文字にします.
このスペースは, 固定ピッチのフォントを使用している場合に, 位置合わせに使用できます.
NameInitial 人名の "姓, 名" の表記であるとみなして、これを "イニシャル. 姓" の表記に変換します.
NameIndexChar 人名の "姓, 名" の表記であるとみなして、姓から見出し用の先頭1文字をアルファベット大文字で抽出します. 先頭がアルファベットでない場合は '*' にします.
NameWOArticle 単語の先頭に英語の冠詞(TheとA)がついている場合, それを最後に回した文字列を作成します. "%ARTIST,NameWOArticle%" または "%@ARTIST%" の場合、"The Band" は "Band, The" となります.
NameFull 人名の "姓, 名" の表記であるとみなして、これを "名 姓" のフルネームに変換します.
Combine 詳細説明を参照してください. これを指定すると, 他のオプションは指定できません.
Upper 英字を大文字化します (いわゆる全角文字は対象外です).
Lower 英字を小文字化します (いわゆる全角文字は対象外です).
INT 整数変換したあと, それを文字列化します. "01" は "1" になります.
nINT
(n は整数)
整数変換したあと, それを文字列化します. その際に, nで指定した桁数未満の数値の場合, 先頭部を 0 で埋めます. "4INT"の場合, "01" は "0001" になります.
HMS 値を秒数とみなして、hh:mm:ss形式に変換します.
KILO[.n] 値を数値とみなして、1/1,000にします (小数点あり). ピリオドの後のnは小数点n桁固定を示します. 例: "KILO.1" = 小数点1桁固定指定
IKILO 値を整数とみなして、1/1,000にします (小数点なし).
MEGA[.n] 値を数値とみなして、1/1,000,000にします (小数点あり). ピリオドの後のnは小数点n桁固定を示します. 例: "MEGA.1" = 小数点1桁固定指定
IMEGA 値を整数とみなして、1/1,000,000にします (小数点なし).
GIGA[.n] 値を数値とみなして、1/1,000,000,000にします (小数点あり). ピリオドの後のnは小数点n桁固定を示します. 例: "GIGA.1" = 小数点1桁固定指定
IGIGA 値を整数とみなして、1/1,000,000,000にします (小数点なし).
KILOb[.n] 値を数値とみなして、1/1,024にします (小数点あり). ピリオドの後のnは小数点n桁固定を示します. 例: "KILOb.1" = 小数点1桁固定指定
IKILOb 値を整数とみなして、1/1,024にします (小数点なし).
MEGAb[.n] 値を数値とみなして、1/1,048,576にします (小数点あり). ピリオドの後のnは小数点n桁固定を示します. 例: "MEGAb.1" = 小数点1桁固定指定
IMEGAb 値を整数とみなして、1/1,048,576にします (小数点なし).
GIGAb[.n] 値を数値とみなして、1/1,073,741,824にします (小数点あり). ピリオドの後のnは小数点n桁固定を示します. 例: "GIGAb.1" = 小数点1桁固定指定
IGIGAb 値を整数とみなして、1/1,073,741,824にします (小数点なし).
NonZero 値を整数に変換し, 0 であれば空文字, 0以外であれば元の文字列を使用します.
SortAllMax グループ(アルバム)をソートする場合, 通常は(高速化のため)グループの先頭の曲の情報を使用してソートしますが, このオプションを指定すると, グループ内のすべての曲の最大の値を使用します. 最大の値は文字列比較で決められます.
SortAllMin SortAllMax の最小値版です.

複数の値とCombine の詳細説明

TuneBrowserは, ツリーのノード/グループを生成する際, ひとつのタグの値として ";" で区切られた複数の値があると, それらを分解して, 複数のグループを生成します.
たとえば演奏者 (PERFORMER) として "Abbado; Berlin PO" が指定されていると, これらは "Abbado" と "Berlin PO" のふたつに分解され, その曲はツリー上の "Abbado" からも表示させることができ, "Berlin PO" からも表示させることができます.
それでは都合が悪い場合, クエリのタグのオプションとして Combine をつけると, これらの値を分解せず, 表示用の区切り文字列(標準では " / ")でつなぎ直して, ひとつの値として扱います. 上の例では "Abbado / Berlin PO" となります.