「foobar2000」忘備録、Custom Database編。

Custom Databaseに保存なう。
レーティングって何だろう? 気安く言葉にしている割に、あんまり意味が分かっていない気がします。調べてみると株式だったり競馬だったりのページが引っ掛かるので訳が分からんですが、「物事の評価を数値で表して順位を付ける」みたいな感じらしい。
「foobar2000」だと「☆」での評価が該当します。

ぶっちゃけ特に必要性ありません。なくても困らないし、面倒臭がりなら端折ってもいいぐらい。まさに自己満足の産物……!
しかも私の場合、右クリックから入力できるのもにも関わらず、それを億劫がってレーティング用ボタンを用意する有様ですからね、「そこまでするぐらいなら最初からレーティング設定を入れなければいいのに」というツッコミに対し、返す言葉もありません。

foober05.jpg
数字ボタンでレーティング入力するよ!

でも右クリックから該当のコマンドを選ぶ手間と、マウスでレーティング用ボタンをポチっとなする手間はそんなに変わらないと思う……。
そんな私と同じ怠惰な考えを持つ方に、以下を書き残しておきます。

//レーティングボタン
$imagebutton($add($mul($get(Bp),1),$get(Bx)),$get(Byc),,,
$get(btn_path)hosi0_01.png,
$get(btn_path)hosi0_02.png,
CONTEXT:'Custom Database/Set Rating 0') //レーティング0

$imagebutton($add($mul($get(Bp),2),$get(Bx)),$get(Byc),,,
$get(btn_path)hosi1_01.png,
$get(btn_path)hosi1_02.png,
CONTEXT:'Custom Database/Set Rating 1') //レーティング1

$imagebutton($add($mul($get(Bp),3),$get(Bx)),$get(Byc),,,
$get(btn_path)hosi2_01.png,
$get(btn_path)hosi2_02.png,
CONTEXT:'Custom Database/Set Rating 2') //レーティング2

$imagebutton($add($mul($get(Bp),4),$get(Bx)),$get(Byc),,,
$get(btn_path)hosi3_01.png,
$get(btn_path)hosi3_02.png,
CONTEXT:'Custom Database/Set Rating 3') //レーティング3

$imagebutton($add($mul($get(Bp),5),$get(Bx)),$get(Byc),,,
$get(btn_path)hosi4_01.png,
$get(btn_path)hosi4_02.png,
CONTEXT:'Custom Database/Set Rating 4') //レーティング4

$imagebutton($add($mul($get(Bp),6),$get(Bx)),$get(Byc),,,
$get(btn_path)hosi5_01.png,
$get(btn_path)hosi5_02.png,
CONTEXT:'Custom Database/Set Rating 5') //レーティング5

ここで今回のテーマ、「Custom Database」が出てきました。
これはsplitterに配置して利用するPanel(コンポーネント)とは違い、裏でこっそり活躍する類のコンポーネントです。外部データベース(SQLite)に情報を保存してくれます。

似ている物として「Playback Statistics」というのもありますが、私は使っていないので何ともかんとも。ただ「Custom Database」の方は開発が止まってしまったとも……実際のところは分かりませんが、作者さんには頑張ってほしいので、感謝と応援を込めドリップコーヒーのお供えをしておきます。
例によって例の如く、お供えした珈琲は後で私が(以下略)

コンポーネントの入手先はこちら。
blog.99ravens.net::Custom Database(リンク切れ)
「Func User Interface」の作者さんでもあるんですね。

設定はPreferences→Custom Databaseで行います。予めある程度の変数設定が用意されているので、それを参考にしましょう。

「Fields」タブ 「Action」タブ
画像クリックで元の大きさの画像が見られます。

上記の画面が設定画面ですが、まずは左の画面「Fields」の部分で変数を作ります。そして右の画面「Action」で変数の更新方法などを設定。「Database」タブはファイルが存在しない場合に情報をどうするか、変数が消された情報はどうするかなど、コンポーネントの設定となっています。

付属のテキストファイルに詳しい解説が載っているので、何はともあれ目を通してみましょう。私の説明なんて要らない気がする……。

「Fields」タブ
画像クリックで元の大きさの画像が見られます。

「Fields」タブの「Name:」が変数名です。変数として利用する時は%で囲まないといけないので、「RATING_CD」の場合「%RATING_CD%」として利用します。
「Key:」というのがありますが、これは「何を情報のキーとするか」という野を指定しています……が、今ひとつ意味が分かりませんね。

例えばレーティング情報を変数に入力した後、ふと思い立ってファイルの場所を移動するとします。するとファイルのパス情報が変わるわけですから、入力した情報も消えてしまう、もしくは新しい物へと変わるわけです。
それだと困りますよね?
しかし「Key:」の「Custom」に独自のキー情報を入れておくことで、それをどうにかすることが可能になるのです。

上の画面だと「%artist%,%album%,%title%」となっているので、ファイルのパスは関係ありません。データベースはパス情報ではなく「アーティスト名、アルバム名、タイトル」によってどのファイルかを認識しているので、ファイルを移動させようが何の問題もないわけです。

そして私は「artistinfo」という変数を作っています。

Propeties

Display: artist info
Name: ARTIST_INFO_CD
key: Custom  %artist%

これは「アーティスト名の読み方」の情報を入力する為の変数として利用しています。何でそんなものをとお思いでしょうが、%artist%でのソートは「アルファベット・ひらがな・漢字」という順番でしか並べてくれません。読み方は無視されるわけです。そこでこの変数に読み方を入力してソート時に利用する事で、本当の「あいうえお順」にしようという魂胆なわけですよ。

アルバム名も同様の理由で読み方用の変数を作っていますが、それはさておき「Key:」の部分を見て下さい。「%artist%」だけです。つまり「%artist%」が同じなら、それら全てに入力した情報が適用されるのです。

「だから何?」と言いたくなるかもしれません。ですがちょっと待って下さい。こういう事なんです。

変数にアーティストの読みを入れる

データベースは%artist%でファイルを選別する

同じアーティスト名のタグを持つファイル達だけが残る

入力した情報がそれらのファイルに全て適用される

入力の手間がちょっと減る

アルバムの読み方の場合は「Key:」を「%album%」に変えるだけで、大まかな流れは同じです。曲数が膨大なら入力自体が面倒この上なしですが、上記で述べた「真のあいうえお順」を目指したいなら、これは必須項目。少しずつ入力してデータベース作りに勤しんで下さい。

聴いた回数のように、同じアーティストやアルバム名だからと言って全てに適用されては困る場合は、「%artist%,%album%,%title%」と複数のキーを用意すればいいわけです。この三つの条件が全て揃ったファイルにだけ適用されるのですから、まず複数に適用されることはありませんよね。

「Action」はまず「Set Rating 0」で説明していきます。

「Action」タブ
画像クリックで元の大きさの画像が見られます。

Propeties

Display: Set Rating 0
Field: RATING_CD
Update: ContextMenu
Set value: 0

「Display:」は名前です。右クリックメニューで表示される場合、ここの文字が表示されます。
「Field:」はどの変数についての設定かを指定し、「Update:」は「Contextmenu:」、つまり右クリックメニューで選択した時、「Set value:」で指定した値を入力するという内容になっています。

右クリック表示設定
画像クリックで元の大きさの画像が見られます。

上の画面のように、右クリックメニューは「Preferences - Display - Context Menu」で表示・非表示の設定が可能です。「Legacy Commands(unsorted)」の下が「Custom Database」で設定した変数を入力する部分となっています。

レーティングの部分にチェックが入っていないのは、私が右クリックからのレーティングを面倒がって、レーティング用のボタンを用意したからです。このように使わない設定はチェックボタンを外して非表示にし、右クリックメニューをスッキリさせておきましょう。

次に先程出てきた「artistinfo」だとこうなります。

Propeties

Display: artistinfo
Field: ARTIST_INFO_CD
Update: ContextMenu -> Dialog
Set value: %ARTIST_INFO_CD%

「Update:」が「ContextMenu -> Dialog」となっていますね? これはこのコマンドを選択した際、入力用のダイアログが表示されるという意味です。「Set value: %ARTIST_INFO_CD%」となっており、もし既に情報が存在している場合、ダイアログには「%ARTIST_INFO_CD%」の内容が入力された状態で表示されます。

Propeties

Display: Play Counter
Field: PLAY_COUNT_CD
Update: Playback(auto count up)
Set value: 1

Timing: Playback percentage

percentage: 90%

これは聴いた回数をカウントする為のものです。「Update:」の部分が「Playback(auto count up)」となっていますが、これは自分で情報を入力するのではなく、「Timing:」で指定した条件になると自動的に「Set value:」の値をカウントアップしていく、という設定です。
上記の内容だと、全体の90%を再生すると1カウントされます。

「Timing:」には「Playback percentage」と「Playback Seconds」があり、前者は「percentage:」で設定したパーセントで、後者は「Seconds:」で指定した秒数でと、使う側の望むタイミングでの更新ができるようになっています。
ただし使えるのは「Update: Playback」を選んだ時のみです。

Propeties

Display: First Played
Field: FIRST_PLAYED_CD
Update: Playback
Set value: $if2(%FIRST_PLAYED_CD%,%now%)

Timing: Playback percentage

percentage: 50%

こちらは「最初に聴いた日時」を保存する為の設定です。50%なので半分以上聞かないと保存されません。「%now%」は「Custom Database」で使える拡張TFで、現在の日時を返してくれます。

「Set value: $if2(%FIRST_PLAYED_CD%,%now%)」を見ると分かりますが、TF記述です。title formatting referenceで調べてみると、「$if2(a,else)」というのがありました。aが一度だけ演算され、その後で通常の$if式を実行するらしいです。

つまり最初に「%FIRST_PLAYED_CD%」を表示しようとし、情報がある場合はそのまま「%FIRST_PLAYED_CD%」内の情報を、「%FIRST_PLAYED_CD%」の情報がない場合は今現在の時刻を記録して表示する、という式なわけです。

Propeties

Display: Media Library Added
Field: ADDED_CD
Update: Media Library (Added)
Set value: $if2(%ADDED_CD%,%now%)

Propeties

Display: Media Library Removed
Field: ADDED_CD
Update: Media Library (Removed)
Set value:

上の二つは同じ変数「ADDED_CD」を利用していますが、役目は違います。

「Media Library Added」はメディアライブラリ、つまり「File→Preference→Media Library」を選び、「Music Folders」で指定したフォルダ内にファイルが登録された際、その日時を記憶する為の設定です。「$if2(%ADDED_CD%,%now%)」となっている通り、情報がない場合は現在の時刻が記録されるようになっています。
「Update: Media Library (Added)」は、ファイルがメディアライブラリに登録された時に更新される、という設定です。

対する「Media Library Removed」は、指定している変数こそ同じですが、「Update: Media Library (Removed)」となっているように、ファイルがメディアライブラリから削除された時に更新される設定です。
「Set value:」に何も入っていないように、メディアライブラリから削除された際に「ADDED_CD」、つまり登録された日時の情報を何もない状態にする、登録した情報を消す為の設定なんですね。

こうして色々と変数を用意してDatabase化させるだけでは、それが面倒臭がりな私が頑張るほどに役に立つものなのかと、疑問に思うかもしれません。何しろ地道に入力しなければいけませんし、手間も掛かりますからね。

ですがこれが後々、威力を発揮していくのです。嵐の前の静けさ、と言ったところでしょうか? 特に「Library Tree」で効力を発揮します。
……こんな事を書いておきながら、次は「EsPlaylist」のお話です。



今日はここまで。
関連記事

Comment

(編集・削除用)
管理者にだけ表示を許可

Trackback

URL
http://dejiseikatu.blog77.fc2.com/tb.php/48-1cfac2a5
この記事にトラックバック(FC2Blog User)

サイト内検索

月別アーカイブ

07  02  11  10  05  04  03  02  12  11  10  07  06  05  04  03  02  01  12  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10 

スピーカー。

利用してる所とか。

ネットで買い物するなら。



ここで古本買ってます。 ブックオフオンライン

QRコード

QR

FC2カウンター

プロフィール

番頭はん

Author:番頭はん
腐女子なのに時々それを忘れる駄目オタク。
一日に二杯の珈琲を与えないと、目に見えて機嫌が悪くなる。
このサイトについて

ランキングに参加中。

人気ブログランキングへ

メールで連絡を取りたい方はこちらからどうぞ。

Amazon検索

カテゴリ

ユーザータグ

お世話になってます。



リンクシェア アフィリエイト紹介プログラム

最新コメント

最新トラックバック

Copyright © 番頭はん