Playlist Tree 解説

これ何?

曲のリストを階層上に作る。Album List の機能上位版のようなもの。 bazquux からダウンロードできる。

Figure06.png

用語解説

クエリ 解説

up954.png

関数一覧

PT関数の書き方

PT関数は本来の Title formatting の関数と違い、特殊な書き方をしないと動作しないものが多い。 "$" または "%_" で始まるPT関数は、Label 欄では

@format<(PT関数を含んだスクリプト)>

Criteria 欄では

"@format<(PT関数を含んだスクリプト)>"

Format 欄では

@quote<@format<(PT関数を含んだスクリプト)>>

の形で記入する必要がある*1。 なお、Label 欄でも(PT関数を含んだスクリプト)の部分は Title formatting のルールが適用されるようになる。

Tags

%_name%

ノードの名前を返す。自ノードに対して直接使うとフリーズする。

%_displayname%

ノードの名前を返す。%_name% と違い、ノード名 @icon<>@rgb<> などがあった場合は無視する。自ノードに対して直接使うとフリーズする。

%_size_abbr%

自ノード以下にあるリーフの合計ファイルサイズを返す。単位は"○○ GB" や "○○ MB" のように、自動的に調整される。

%_size_abb%

自ノード以下にあるリーフの合計ファイルサイズを返す。単位は"○○ G" や "○○ M" のように、自動的に調整される。

%_size%

自ノード以下にあるリーフの合計ファイルサイズを、バイト数でそのまま返す。ただし、2^31-1(2147483647 ≒ 2GB) を超える場合は正常に取得できない。これより大きいファイルサイズを取得したい場合は %_size_abbr%%_size_abb% を使う必要がある。

%_play_length%

自ノード以下にあるリーフの総演奏時間を返す。単位は24時間以内ならば [hh:]mm:ss 、そうでなければ ">4 days" のように日付のみで返す。

%_itemcount%

自ノード以下にある全てのリーフの数を返す。

%_foldercount%

子ノードの数を返す。%_itemcount%と違って直接の子しかカウントしない。

%_folderindex%

親からみた自分のインデックス番号を返す。最初は 1 から。

%_overallindex%

PlaylistTree全体におけるインデックス番号を返す。最初は 1 から(ルートフォルダは 0 )。

@quote<@format<$num(%_overallindex%,2)>> - %artist%|
@quote<@format<$num(%_overallindex%,2)>> - %album%|
%title%

%_nestlevel%

階層の深さを返す。@fakelevel で隠れた階層もカウントされる。

%_isquery%

クエリなら1を返す。

%_isleaf%

リーフなら1を返す。

%_isfolder%

フォルダなら1を返す。

Functions

@browse_as<>

(現在使用できない模様。)

%<tag>%

Album List のように、タグに複数の値が入っている場合は個別で判定してくれる。Playlist Tree では、%<tag1,tag2,tag3>% のように複数のタグを記述することもできる。 公式サイトではバグリストに入っている関数なので、使用する際には注意。

@format<>

"$" または "%_" で始まるPT関数を使用する際にこれで囲む。

@icon<index>

ノードのアイコン画像を指定(変更)する。

$playing('tag')

演奏中トラックの指定したタグ情報を取得する。使用する際には、

$playing('%artist%')

のように ' で囲む必要がある。

$avg('tag')

自ノード以下の全リーフから指定したタグ情報を取得しその平均値を小数点2桁まで返す。使用する際には、

$avg('%_length_seconds%')

のように ' で囲む必要がある。少数部分の数を表示したくない場合は、

$num($avg('%_length_seconds%'),0)

のように $num() を使うと整数部分のみが表示される。

$sum('tag')

自ノード以下の全リーフから指定したタグ情報を取得しその合計値を返す。使用する際には、

$sum('%_length_seconds%')

のように ' で囲む必要がある。

@quote<>

関数内の文字はトークンとして解釈されない。Label 欄で @format<> とともに使う機会が多いと思われる

$parent('tag',n)

自分よりn階層上のノードからタグ情報を取得する。使う際には、

$parent('%_foldercount%',2)

のように ' で囲む必要がある。n を省略すると、一個上のノードを参照する。 同一フィールド内で一度でも$parentを使用すると、それ以降は $parent節の外でも祖先ノードを参照するバグ?がある。

@query<>

そのクエリの子ノードとしてクエリを作成する。フリーズしやすいので使用の際には注意。

@query<Label;Source;Criteria;Format;PopOrder;DisplayOrder>

のように書く。

$hidetext()

括弧でかまれた部分を表示しない。おそらくコメントアウト用途的なものだと思われる。

@hidden 系

@fakelevel

その階層だけを隠す。直後に半角スペースを入れないと動作しない

@rgb<r,g,b>

ノードの文字色を指定する。設定で "Custom selection colors" を ON にしておく必要がある。文字列の途中から色を変えることは出来ない。

@limit<max>

子ノードの最大数を指定する。

@default

ソースが@drop<>の時、元のディレクトリ構造を再現する。

Source

Source 欄で使える関数。

@database

@database

Media Library のデータベースから入手する。

@drop<>

@drop<(パス名)>

特定のパス内の曲を検索し入手する。"(パス名)"の部分に検索したいパス名を書き込む。

@node<>

@node<(ノード名)>

特定のノード内の曲を検索し入手する。"(ノード名)"の部分に検索したいノード名を書き込む。

@and,@or,@not

@node<> および @drop<> に対して使える論理演算子。

@playlists

@playlists

すべてのプレイリストにある曲を対象にする。プレイリストごとにクエリを作る。

@playlist<>

@playlist<(プレイリスト名)>

特定のプレイリスト内の曲を対象にする。"(プレイリスト名)"の部分にプレイリスト名を書き込む。

@scheme

@scheme

"Scheme" というプログラム言語を使ってクエリを作成できるようになる。

その他

$treenode(arg)

選択しているノードの情報を返す。Playlist Tree 外で Title Formatting の関数として使うことができる。arg 部分に入れることができるのは以下の通り。

設定画面 (Preferences)

Preferences - Media Library > Playlist Tree Panel から選択可能。

"Playlist Tree Panel"

(画像)

"Mouse & Keyboard"

"Scheme"

編集希望

Tips

外部リンク


*1 この他にも様々な書き方があるが、この書き方が一番誤動作が少ないと思われる。

Last-modified: 2016-02-03 (水) 23:00:00