Home > foobar2000

foobar2000 Archive

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  • Comments (Close): -
  • TrackBack (Close): -

foobar2000のタイトル

foobar2000のウィンドウのタイトルバーに表示するタイトルの設定にちょっと手間がかかったので、メモ。

タイトルの設定は、Preference > Default User Interfaceの「Window Title」に Title Formattingを入力する。

デフォルトのタイトル(foobar2000 v0.9.5.4)

[%album artist% - ]['['%album%[ CD%discnumber%][ #%tracknumber%]']' ]%title%[ '//' %track artist%]

例: Various Artists - [The Rose That Grew from Concrete #09] Can U C The Pride In The Panther (Female Version) // Mos Def

デフォルトのタイトルは、アルバムアーティストと曲のアーティストが異なる時だけ曲のアーティストを表示する。

カスタマイズしたタイトル

$if( %rating%, ★, )%title%[ - %artist%][ / %album%[ '('Disk%discnumber%')'] #%tracknumber%$if($stricmp(%artist%,%album artist%),, - %album artist%)]

例: ★Can U C The Pride In The Panther (Female Version) - Mos Def / The Rose That Grew from Concrete #09 - Various Artists

レートが付けられている時「★」を表示。曲のアーティストとアルバムアーティストが異なる時だけアルバムアーティストを表示する。曲のアーティストをアルバムアーティストより前に表示したかった。(曲のアーティストとアルバムアーティストが同じ場合はあまり変わらないが、違う場合デフォルトのタイトルではアルバムアーティストが先に表示されてしまう。)

[...]
フィールド、関数の結果が存在すれば、値を返す。
$replace(文字列a, 文字列b, 文字列c)
文字列a内の文字列bを文字列cに置換する
$padcut(文字列, 数値)
文字列の先頭から数値の長さまでを返す。
%artist%
$if3($meta(artist), $meta(album artist), $meta(composer), $meta(performer) )
artist, album artist, composer, performer の順にフィールドの値を返す。前にあるものが優先される。
%album artist%
$if3($meta(album artist), $meta(artist), $meta(composer), $meta(performer) )
album artist, artist, composer, performer の順にフィールドの値を返す。前にあるものが優先される。
$stricmp(文字列a, 文字列b)
文字列aと文字列bが同じならば true、違えば falseを返す。文字列の大文字小文字を区別しない。
$if(条件, a, b)
条件が trueならば aを実行、falseならば bを実行。

参考にしたページ

foobar2000でのレートの設定 (2)

Karafuto Blog: foobar2000 v0.9.5.3にバージョンアップで書いたように、foobar2000 v0.9.5.3では foo_custominfo(外部データベースに情報を保存するコンポーネント)を使えないので、Karafuto Blog: foobar2000でのレートの設定で書いた方法ではレートを記録できなくなった。

仕方がないので、ファイルのタグにレートを記録することにした。コンテキストメニューのプロパティからフィールド(タグ情報)の編集をしてもいいが手数がかかるので、Masstaggerを使い、ショットカットキーを設定する。この方法で問題はないが、タグに書きこむため、レートを設定する時にプログレスバーが一瞬現れる。

Masstaggerの Actionの作成

Masstagger(Manage Scripts)を使い、レートを設定する Actionを作り、保存する。そうすることで、コンテキストメニューの Taggingの Scriptsから作成した Actionを実行することができるようになる。

Masstagger

  1. コンテキストメニュー > Tagging > Manage Scriptsを選び、'Masstagger'のウィンドウを開く。
  2. 'Actions to perform'のテキストエリアに何かが書いてあれば、Clearで消す。Addを押し、Actionを追加する。
  3. 'Select action type'メニューから「Set value...」を選択、OKを押す。
  4. 'Set value'ダイアログの Field nameに「RATING」、Field valueに「1」と入力して、OKを押すと、Actionが作成される。
  5. 戻った'Masstagger'の Scriptsのテキストボックスに「RATING 1」と名前を書き、Saveを押して、保存する。

後は、欲しいレートの数だけ作成、保存する。レートの数と名前だけを変えればいいので、

  1. 'Masstagger'で作成したレートの Actionを表示したまま(消した場合は、Scriptsのテキストボックスから作成した Actionを選び、Loadを押すと表示される)、'Actions to perform'のテキストエリアの Actionをダブルクリックする。
  2. 'Set value'ダイアログの Field valueに「1(前の数)」を「2(変更したい数)」に書き換え、OKを押す。
  3. 'Masstagger'の Scriptsのテキストボックスに「RATING 2」と名前を書き換え、Saveを押して、保存する。

レートなしは「RATING 0」でも良いのだが、私は RATINGタグを削除するようにしている。

  1. 'Masstagger'のウィンドウを開く(コンテキストメニュー > Tagging > Manage Scripts)。
  2. 'Actions to perform'のテキストエリアに何かが書いてあれば、Clearで消す。Addを押し、Actionを追加する。
  3. 'Select action type'メニューから「Remove field...」を選択、OKを押す。
  4. 'Select field to remove'メニューから「RATING」を選び、OKを押すと、Actionが作成される。
  5. 'Masstagger'の Scriptsのテキストボックスに「Remove RATING」と名前を書き、Saveを押して、保存する。

ショートカットキーの設定

ここまでの設定でコンテキストメニュー > Tagging > Scriptsから Actionを選ぶことでレートを記録することができるが、ショートカットキーならさらに楽になるので、ショートカットキーを設定する。

Preference > General > Keyboard Shortcuts

Ctrl+1
Scripts : RATING 1
Ctrl+2
Scripts : RATING 2
Ctrl+3
Scripts : RATING 3
Ctrl+4
Scripts : RATING 4
Ctrl+5
Scripts : RATING 5
Ctrl+0
Scripts : Remove RATING

foobar2000 v0.9.5.3にバージョンアップ

foobar2000 v0.9.5.3にすると使えなくなるコンポーネントがあるということで迷っていたが、更新することにした。

v0.9.5.3 から、metadb_display_hook API を使用しているコンポーネントが使えなくなりました。 具体的には、以下のコンポーネントが使えなくなっています。

また、以下のコンポーネントは使用できますが、foobar2000 起動時に警告が出ます。

v0.9.5.3 まとめ - foobar2000 Wiki

上に該当する私が使っていたコンポーネント

Playlist Tree Panel(プレイリストを自動的に作成)
便利だったけどなあ。
foo_custominfo(外部データベースに情報を保存する)
レートと再生回数(Playback Statistics Custom)の記録に使っていた。タグに直接書きこむようにした。
cwbowron's title format hooks(TitleFormattingの関数を追加)
タイトルバーに曲のインデックス番号を表示するのに使用していた。外の方法は知らない。

参考

Database Searchとソート

Database Searchはファイルのデータベースである Media Library(database.fpl)から検索できる foobar2000のコンポーネント。

プレイリストを自動的に作成するPlaylist TreeColumns UIからしか利用できないので、この Database Searchとソートで何とかPlaylist Treeに近づけられないかと試している。

Database Search

  1. メニューの Library > Database Searchから Database Searchの検索ダイアログを開く。
  2. Search、Format、Filter、Patternに入力して検索する。
  3. 検索した結果を Ctrl+Enter(または右クリックから Send to Playlist...を選択)を押して、検索された曲を新しいプレイリストに送る。

ソート

TitleFormattingによるソート
プレイリストの曲を選択して、メニューの Edit > Sort > Sort by ...(あるいは右クリックメニューの Sort > Sort by ...)から Sort by ...のダイアログを開き、Title Formattingを入力して実行する。
無作為にソート
プレイリストの曲を選択して、メニューの Edit > Sort > Randomize(あるいは右クリックメニューの Sort > Randomize)を選ぶ。
逆順にソート
プレイリストの曲を選択して、メニューの Edit > Sort > Reverse(あるいは右クリックメニューの Sort > Reverse)を選ぶ。

設定例

ランダムに曲を選ぶ

すべての曲を選び、無作為にソートする。

Database Search
Search:
Media Library
Format:
 
(Filter:)
All items
Pattern:
 
Sort
Randomize
再生回数の多い曲

すべての曲を選び、再生回数でソートする。

Database Search
Search:
Media Library
Format:
 
(Filter:)
All items
Pattern:
 
Sort
Sort by ... %play_counter%
Reverse

曲数を減らすなら、再生回数が10回以上(任意)の曲を選び、再生回数でソートする。

Database Search
Search:
Media Library
Format:
 
(Filter:)
Query
Pattern:
%play_counter% GREATER 9
Sort
Sort by ... %play_counter%
Reverse
レートが高い曲

ratingフィールドが 4以上の曲を選び、レートでソートする。

Database Search
Search:
Media Library
Format:
 
(Filter:)
Query
Pattern:
%rating% GREATER 3
Sort
Sort by ... %rating%
Reverse
Hip-Hop

ジャンルが 'Hip-Hop'か 'Rap'の曲を選び、無作為にソートする。

Database Search
Search:
Media Library
Format:
Genre ([%genre%])
(Filter:)
Find any word
Pattern:
hip-hop rap
Sort
Randomize
Kanye Westの絡んだ曲

フィールド(アーティスト、タイトル、その他)のどれかに 'Kanye West'が含まれている曲を選び、無作為にソートする。

Database Search
Search:
Media Library
Format:
 
(Filter:)
query
Pattern:
* HAS "kanye west"
Sort
Randomize

問題点

  • 曲の数が選べない。foobar2000はある程度曲数が多くてもフリーズしないが。
  • すべての条件を覚えられない。パターンにいちいち入力するのが面倒。AutoHotkeyUWSCなどのスクリプトを使えば何とかなるかも。

参考にしたページ

foobar2000のバルーンチップ

foobar2000のバルーンチップ

タスクトレイ(通知領域)に出るfoobar2000のバルーンチップが意外と使えた。

バルーンチップが出ると、そこにフォーカスが行くと勝手に決め込んでいた。が、バルーンチップが出てもアクティブなウィンドウにフォーカスは残る。パソコンの操作をしているとバルーンチップは消える。

設定

Preferences > Display > Default User Interfaceの System Notification Areaの「Always show notification area icon」と「Show balloon tooltip on song change」にチェックを入れる。

使っているうちに気になったこと

  • 邪魔になることがあって、すぐに消えてほしいことがあるが、消すにはバルーンをクリックしなければならない。
  • バルーンが消えた後、トラック名を知りたくなった時バルーンを出すには、一時停止する必要がある。
  • 曲のインデックス番号(プレイリストでの順番)が出ない。標準で用意されている '%playlist_number%'と'%list_index%'では表示されない。foobar2000のタイトルで使用しているcwbowron's title format hooksコンポーネントを使った '%cwb_playing_index%'でもうまく番号を拾えない。(普通に曲を流していると、番号が一つ少ない。停止、次の曲、前の曲にすると0になる。一時停止にした時だけ番号が合う。こうなるのは'%cwb_playing_index%'が曲の再生が始まった時は 0または前の番号を返し、0.何秒かしてから再生曲の番号が返るようになっているので、曲が始まった時に表示されるバルーンチップではどうしようもないようだ。)
  • 良い点も書いておくと、ウィンドウのタイトルからはみ出すような長いものもすべてが表示される。ということは、それだけ場所もとるのでやっぱり邪魔になるか。

Home > foobar2000

おまかせリンク(R)
全記事表示リンク
Search
Meta
Feeds

Page Top

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。