先日晒したRainmeterスキンにおけるWinAMPコントロールの新しい姿について、
「Rainmeterでどうやってアーティスト名やアルバム名をわけて表示してるんだ?」
と狂おしいぐらいに悩んだ人がいるかどうか定かではありませんが――(いるわけねぇw
前回は話が長くなるのでオミットした、そのへんのことについて記しておきます。
ぶっちゃけ、侍でアルバムジャケットを表示しているのと同じ方法です。
WinampにAMIPというプラグインをインストールして曲情報をテキストファイルで出力させ、
それをRainmeterに読み込ませて表示してるだけなのですよ。(天気予報スキンと同じ要領)
これは、侍がどうやってアルバムジャケットを表示しているのか調べ、その方法を応用すれば
Rainmeterでもできるんじゃないかと思いついて、やってみたらできちゃった次第です。
でもアーティスト名やアルバム名はともかく、ジャケット表示はちょっとした手間が必要で、
クリアしなければならない条件がいくつかあり、ちょっと実用的ではありません。
画像を全部用意するのもめんどくさすぎるし、これはスキンには搭載しないと思います。
(解決策はおぼろげに見えてますから、今後に期待ってことでw)
また、なぜかアーティスト名やアルバム名がまったく表示されないケースがありまして、
おそらくタグ情報のうちの「何か」が原因で引っかかっているのだと思いますが、
いまのところ解決方法は見つけられていません。まだまだ試行錯誤が必要なようです。
なお、気がついた人もいるかと思いますが、AMIPを使ってタグ情報を表示するこの方法で
作られた私のスキンは、侍のアルバムジャケット表示をしている環境では共存できません。
ま、スキンとAMIPの設定を変更すれば、できないことはないですけれどw
■追記
情報がまったく表示されない問題は、AMIPの設定を変更したら若干改善されました。
侍向けに説明されている設定だと、出力されるテキストは各情報ごとに改行されますが、
ファイル名には使えない文字(例えば「/」)で区切らせて改行せずに出力させてから、
Regexp="(.*?)/(.*?)/(.*?)"と抽出したら、表示できない曲がかなり減りました。
この調子で全部表示できるようにしたいところですね〜。
でもますます侍環境との共存は難しいものに‥‥って、両方使う人なんていないよね?
■さらに追記
良くなったと思ったら他の曲が表示できなくなってましたよ? マジかんべん。
AMIPで出力させる形とスキンの正規表現や文字コードの兼ね合いなのかなぁ‥‥。
どうも「☆」「〜」「↑」などの記号や同じ文字列が複数あると弱いような気がします。
正規表現は、正直わけわかりません。AMIPの区切りにへたな文字使うとおかしくなるし。
タグ情報であまり使われてなくて、正規表現でも使われない1byte文字なんてあるかなぁ?
でもなんで「(.*?)」だとダメで「(.*)」にすると良くなったり悪くなったりするんだろ?
それに、やっぱり文字で区切らず改行させたものを対象にする方がいいのかなぁと思って
やり直してみたけど、「\n」と「\n\r」で良くなったり悪くなったりするし‥‥。
わからないなりに調べて「^」と「$」とか「\A」と「\Z」を使って試してみたけどこれもダメ。
特にアルバム情報の表示に失敗しやすいようで、なぜかRainmeterのパスのようなものが
ケツについてたり、中途半端に切れたり、同じアルバム名でもタイトル名がちがうと全部
表示されたり途中で切れたり文字化けしたりと、なにがなにやら規則性が見出せません。
ホント、この手のことはちんぷんかんぷんなので、半日以上ああでもないこうでもないと
試行錯誤してるのに、どうにもこうにもうまく行かない状態です。あーしんどー。
■最後の追記
解決しましたーっ ‥‥ってもう疲れ果てましたよ (;´Д`)
専門的な知識がないから地道に、手持ちのmp3を300曲使って一曲一曲試してみた結果、
AMIPで出力したテキストから正規表現で抽出するときの‥‥なんていうのかなぁ‥‥
条件? ルール? そういうのがゆるいせいではないかと、気がつきました。
AMIPでは %1でアーティスト名、%2でタイトル名、%4でアルバム名を出力するのですが、
これを「%1<>%2<>%4」といった単純な書式で出して正規表現で抽出しようとしたところ、
300曲中75曲が正しく表示できませんでした。これでは全然使い物になりません。
(侍向けに紹介されている改行コードを挟む書式では、さらに文字化けも発生しました)
そこで試しに書式を「<artist>%1<title>%3<album>%4<closed>」としてみたところ
75曲中64曲が正しく表示されるようになり、「<<artist>>%1‥‥<<closed>>」と
「<〜>」を「<<〜>>」にしたら、残りの11曲中8曲が正しく表示されるようになりました。
300曲中3曲まで減らせれば、充分実用的でしょう。
(↑の<・>はバグるから全角で書いてますが、ホントは半角デスw)
ちなみにその3曲を見てみると、アーティスト名かタイトル名かアルバム名が極端に長く、
(団体で歌ってて10人以上の名前が列記されてたり、ゲームの副題が長々とついてるなど)
それらをID3V2のコメント欄に退避させて短くしたら、簡単に表示されるようになりました。
また、ファイル名が極端に長いのを短くしただけで表示されたものもありました。
「%1<>%2<>%4」でも、タグ情報中に「<>」を含んでる曲はないんだからちゃんと表示される
はずなんですが‥‥なんでだろ? 文字コードで見るとまぎらわしくなるのかな?
ま、そんなわけで、なんとかなりました。わかってしまえばなんてことはない、
正規表現で区分けしやすいように出力させてやればいいだけのことでした。あー疲れた。