現在?人閲覧中
これは何?
曲のリストを階層上に作る。Album List の機能上位版のようなもの。
bazquux からダウンロードできる。
用語解説
- クエリ (Query)
データベースから曲を抽出するための検索、およびその結果。デフォルトではこのアイコンで表される。
- フォルダ (Folder)
入れ物の役割を果たす。PC のフォルダと同じようなもの。デフォルトではこのアイコンで表される。
- リーフ (Leaf)
クエリの末端。ファイルそのものを表すことが多い。デフォルトではこのアイコンで表される。
- ノード (Node)
これらクエリ、フォルダ、リーフを全てひっくるめてノードと言う。
クエリ 解説
- Label (表示名)
この欄では Title Formatting は基本的には無効なので、$,%,(,),[,] などの文字をそのまま表示させたい場合、 ' で囲む必要は無い。Title Formatting を使いたい場合は @format<> で囲む必要がある。 - Source (曲情報の入手元)
Playlist Tree 独自の記法で記入する。- 例
@database
- 例
- Criteria
Query syntax を使って表示する曲の条件を記入する。- 例1
date EQUAL 2007
- 例2
%codec% IS MP3
- 例1
- Format
クエリの構造を書き込む。基本的には Title Formatting のルールが適用される。| で新しく階層を作ることが出来る。- 例
%album artist%|%album%|%title%
- 例
- Maximum
クエリに表示する曲(リーフ)の制限数。選択肢にある megs とはメガバイトのこと。 - Population Order
何によってソートするかを TitleFormatting で書き込む。Reverse で逆順にソートする。 - Sort by display name after populating
子ノードの名前順にソートする。これにチェックを入れている場合、Population Order を設定する必要は無い。 - Automatically Refresh
新しい曲が再生されるたびに、自動的に更新する。
関数一覧
- 注意
- Playlist Tree 特有の関数(以下、PT関数)はリーフでは使えない。これ以外にも、PT関数は本来の Title formatting の関数とは扱いが違う点が多い(PT関数の書き方を参照)。
- 整数値で 2^31-1(2147483647) を超える数は取得できない。
PT関数の書き方
PT関数は本来の Title formatting の関数と違い、特殊な書き方をしないと動作しないものが多い。
"$" または "%_" で始まるPT関数は、Label 欄では
@format<(PT関数を含んだスクリプト)>
Criteria 欄では
"@format<(PT関数を含んだスクリプト)>"
Format 欄では
@quote<@format<(PT関数を含んだスクリプト)>>
の形で記入する必要がある*1。
なお、Label 欄でも(PT関数を含んだスクリプト)の部分は Title formatting のルールが適用されるようになる。
- 例
- Label
Files (Playing Artist) @format<$ifgreater(%_itemcount%,0,'['%_itemcount%' items]',)>
- Criteria
artist IS "@format<$playing('%artist%')>"
- Format
%artist%' ('@quote<@format<%_size_abb%>>')'| @icon<5>%album%| %title%
- Label
Tags
%_name%
ノードの名前を返す。自ノードに対して直接使うとフリーズする。
- 例
- Format
@rgb<255,0,0>aaa|@quote<@format<$parent('%_name%')>>|%title%
- Format
%_displayname%
ノードの名前を返す。%_name% と違い、ノード名 @icon<> や @rgb<> などがあった場合は無視する。自ノードに対して直接使うとフリーズする。
- 例
- Format
@rgb<255,0,0>aaa|@quote<@format<$parent('%_displayname%')>>|%title%
- Format
%_size_abbr%
自ノード以下にあるリーフの合計ファイルサイズを返す。単位は"○○ GB" や "○○ MB" のように、自動的に調整される。
- 例
- Label
Total size (abbr) [@format<%_size_abbr%>]
- Format
%artist%| $if2(%album%,Unknown Album) '('@quote<@format<%_size_abbr%>>')'| %title%
単位を統一したい、ファイルサイズを詳細に表示したいというような場合には %_size% などを使う。
- Label
%_size_abb%
自ノード以下にあるリーフの合計ファイルサイズを返す。単位は"○○ G" や "○○ M" のように、自動的に調整される。
- 例
- Label
Total size (abb) [@format<%_size_abb%>]
- Format
%artist%| $if2(%album%,Unknown Album) '('@quote<@format<%_size_abb%>>')'| %title%
単位を統一したい、ファイルサイズを詳細に表示したいというような場合には %_size% などを使う。
- Label
%_size%
自ノード以下にあるリーフの合計ファイルサイズを、バイト数でそのまま返す。ただし、2^31-1(2147483647 ≒ 2GB) を超える場合は正常に取得できない。これより大きいファイルサイズを取得したい場合は %_size_abbr% か %_size_abb% を使う必要がある。
- 例 ("○.○○ GB" や "○○.○○ MB" のような形で表す)
- Label
Total size (original) (@format<%_size%> bytes)
- Format
%artist%| $if2(%album%,Unknown Album) '('@quote<@format<%_size%>>')'| %title%
- Label
%_play_length%
自ノード以下にあるリーフの総演奏時間を返す。単位は24時間以内ならば [hh:]mm:ss 、そうでなければ ">4 days" のように日付のみで返す。
- 例
- Label
play_length [@format<%_play_length%>]
- Format
%artist%| %album% '('@quote<@format<%_play_length%>>')'| %title%
表示方法が好みに合わない場合は、$sum('%_length_seconds%') を使って、例えば - Label
Total @format<$ifgreater(%_itemcount%,0,'['$replace($cwb_wdhms($sum('%_length_seconds%')),d, days,wk, weeks and)']','('No Item')')>
のようにする(上の例では cwbowron's hooks が必要)。
なお、$sum('%_length_seconds%') の値が 2^31-1(2147483647 ≒ 3310週間) を超える場合は正常に表示できない。
- Label
%_itemcount%
自ノード以下にある全てのリーフの数を返す。
- 例
- Label
play_length [@format<%_itemcount%>]
- Format
%artist%| %album% '('@quote<@format<%_itemcount%>>' items)'| %title%
- Label
%_foldercount%
子ノードの数を返す。%_itemcount%と違って直接の子しかカウントしない。
- 例
- Label
Folder Count (@format<%_foldercount%> items)
- Format
%artist% '('@quote<@format<%_foldercount%>>' items)'| %album% '('@quote<@format<%_foldercount%>>' items)'| %title%
- Label
%_folderindex%
親からみた自分のインデックス番号を返す。最初は 1 から。
- 例
- Label
Folder Index
- Format
@quote<@format<$num(%_folderindex%,2)>> - %artist%| @quote<@format<$num(%_folderindex%,2)>> - %album%| %title%
- Label
%_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>
ノードのアイコン画像を指定(変更)する。
- 例
- Label
icon test
- Format
@icon<5>a| @icon<10>b| %title%
- Label
$playing('tag')
演奏中トラックの指定したタグ情報を取得する。使用する際には、
$playing('%artist%')
のように ' で囲む必要がある。
- 例 (再生中のアーティストと同じ曲を抽出)
- Label
Playing Artist's Songs (@format<$playing('%artist%')>)
- Source
@database
- Criteria
artist IS "@format<$playing('%artist%')>"
- Format
%title%
- Automatically Refresh
- Label
$avg('tag')
自ノード以下の全リーフから指定したタグ情報を取得しその平均値を小数点2桁まで返す。使用する際には、
$avg('%_length_seconds%')
のように ' で囲む必要がある。少数部分の数を表示したくない場合は、
$num($avg('%_length_seconds%'),0)
のように $num() を使うと整数部分のみが表示される。
- 例
- Label
Average Length [@format<$avg('%_length_seconds%')> seconds]
- Format
%artist% '['@quote<@format<$avg('%_length_seconds%')>>' seconds]'| %album% '['@quote<@format<$avg('%_length_seconds%')>>' seconds]'| %title%
- Label
$sum('tag')
自ノード以下の全リーフから指定したタグ情報を取得しその合計値を返す。使用する際には、
$sum('%_length_seconds%')
のように ' で囲む必要がある。
- 例
- Label
Total Length [@format<$sum('%_length_seconds%')> seconds]
- Format
%artist% '['@quote<@format<$sum('%_length_seconds%')>>' seconds]'| %album% '['@quote<@format<$sum('%_length_seconds%')>>' seconds]'| %title%
- Label
@quote<>
関数内の文字はトークンとして解釈されない。Label 欄で @format<> とともに使う機会が多いと思われる
$parent('tag',n)
自分よりn階層上のノードからタグ情報を取得する。使う際には、
$parent('%_foldercount%',2)
のように ' で囲む必要がある。n を省略すると、一個上のノードを参照する。
同一フィールド内で一度でも$parentを使用すると、それ以降は $parent節の外でも祖先ノードを参照するバグ?がある。
@query<>
そのクエリの子ノードとしてクエリを作成する。フリーズしやすいので使用の際には注意。
@query<Label;Source;Criteria;Format;PopOrder;DisplayOrder>
のように書く。
$hidetext()
括弧でかまれた部分を表示しない。おそらくコメントアウト用途的なものだと思われる。
@hidden 系
- @hidden
自分より下のノード全体を隠す。自分自身は表示する(アイコンの色が薄くなって表示される)。 - @hidden2
自より下のノード全体、および自分自身を隠す。 - @hidden3
自分に直接ぶら下がる全リーフを隠すがサブフォルダは隠さない。また自分自身は表示される。これらは直後に半角スペースを入れないと動作しない。 - 例1
- Format
%album%|%artist% @hidden2 |%title%
- Format
- 例2
- Format
@quote<@format<$if($greater(%_foldercount%,8),@hidden ,)>>%album%|[$num(%tracknumber%,2)]%title%
- Format
@fakelevel
その階層だけを隠す。直後に半角スペースを入れないと動作しない。
@rgb<r,g,b>
ノードの文字色を指定する。設定で "Custom selection colors" を ON にしておく必要がある。文字列の途中から色を変えることは出来ない。
@limit<max>
子ノードの最大数を指定する。
- 例
- Format
%album%@limit<5> |[$num(%tracknumber%,2)]%title%
- Format
@default
ソースが@drop<>の時、元のディレクトリ構造を再現する。
Source
Source 欄で使える関数。
@database
@database
Media Library のデータベースから入手する。
@drop<>
@drop<(パス名)>
特定のパス内の曲を検索し入手する。"(パス名)"の部分に検索したいパス名を書き込む。
- 例
@drop<C:\WINDOWS\Media>
@node<>
@node<(ノード名)>
特定のノード内の曲を検索し入手する。"(ノード名)"の部分に検索したいノード名を書き込む。
@and,@or,@not
@node<> および @drop<> に対して使える論理演算子。
- @and
- 例
@node<a> @and @node<b>
"a" と "b" 、両方のノードにあるものを対象にする。
- 例
- @or
- 例
@node<a> @or @node<b>
"a" と "b" の、少なくとも一方のノードにあるものを対象にする。
- 例
- @not
- 例
@node<a> @not @node<b>
"a" というノードにあり、"b" というノードにないものを対象にする。
- 例
@playlists
@playlists
すべてのプレイリストにある曲を対象にする。プレイリストごとにクエリを作る。
@playlist<>
@playlist<(プレイリスト名)>
特定のプレイリスト内の曲を対象にする。"(プレイリスト名)"の部分にプレイリスト名を書き込む。
@scheme
@scheme
"Scheme" というプログラム言語を使ってクエリを作成できるようになる。
その他
$treenode(arg)
選択しているノードの情報を返す。Playlist Tree 外で Title Formatting の関数として使うことができる。arg 部分に入れることができるのは以下の通り。
- name
- displayname
- size
- duration
- itemcount
- foldercount
- overallindex
- isleaf
- isfolder
- isquery
- 例
$treenode(name)
設定画面 (Preferences)
Preferences - Media Library > Playlist Tree Panel から選択可能。
"Playlist Tree Panel"
(画像)
- Appearance (外観)
- Font , Text Color , Line Color, Back Color
順に フォント、文字の色、線の色、背景色 - Edge Style
枠のスタイル - no hscroll
スクロールバーを隠す - hide root
ルートフォルダを隠す - ''hide leaves
リーフを隠す - hide +/-
クエリやフォルダの横にある +/- マークを隠す
- Font , Text Color , Line Color, Back Color
- File Format
編集希望 - Folder Format
編集希望 - Default Query Format
クエリを作成する際に、"Format" 欄にデフォルトで入力されるスクリプト - Library Playlist
ライブラリプレイリスト名の設定- Activate library playlist when sending
ライブラリプレイリストに曲を送ったとき、そのプレイリストをアクティブにする - Rename library playlist when sending
編集希望
- Activate library playlist when sending
- Custom Colors
- Custom selection colors
ノードが選択されたときの背景や文字の色を変える(これを ON にすると、@rgb が使えるようになる)
- Custom selection colors
- Use Default Queries if no file loaded
編集希望 - Bitmaps
アイコン画像について(設定を有効にするには foobar2000 の再起動が必要)- Enable Bitmaps
アイコン画像を有効にする - Load Windows Bitmaps
ウィンドウズのアイコン画像を読み込む - Leaf,Folder,Query
それぞれのアイコンを変更 - foobar2000 icon path
foobar2000 のアイコンがあるパス名。絶対パスで入力する - Additional Bitmaps
好きなアイコン画像を追加できる。絶対パスで入力する。改行は Ctrl + Enter で
- Enable Bitmaps
"Mouse & Keyboard"
- Selection Actions
ノードを選択したときに実行するアクション - Double Click Actions
ノードをダブルクリックしたときに実行するアクション- Refresh Queries
ダブルクリックしたときにノードを更新する
- Refresh Queries
- Middle Click Actions
ノードを中クリックしたときに実行するアクション - Right Click Actions
ノードを右クリックしたときに実行するアクション- with Shift
ノードを Shift キー + 右クリックしたときに実行するアクション
- with Shift
- Enter
Enter キーを押したときに実行するアクション - Space
Space キーを押したときに実行するアクション - Process Keyboard Shortcuts
ノード選択時に General > Keyboard Shortcuts のキーボードショートカットを実行できるようにする - File Limit
編集希望
"Scheme"
編集希望
Tips
- クエリを編集し終わったときに、Shift を押しながら OK をクリックすると Refresh されない
外部リンク
- uninkoの日記
関数を詳細に、例を付けて解説している。説明は古いバージョンのものだが、関数の機能自体はあまり変わっていないので十分に使える。より詳しい解説を読みたい場合はおすすめ。 - Playlist_Tree_Tutorial
公式チュートリアル。英語。scheme などの解説がある。