NowPlayingみたび。

Now Playing Plug-in 2.0 もういい加減に固定環境としてしまいたいのだけれど、iTunes(for Windows限定)の余りのダメさ加減にorzする毎日に耐えきれずWinAMP5へ出戻り。
 それに至るまでの結構な紆余曲折を以下に記す。 現在のメディアプレーヤを疑問なく使えてる人とかマカーの人とかにはウザイだけの話なのでスルー推奨。

1. “Multi-Plugin” を iTunes に導入

 先日来、iTunes for Windows の利用環境をかなりマシにしてくれる Multi-Plugin なるものを導入していた。特に素晴らしかったのが以下の三点。

  • 最小化時のメモリ占有率を抑える(うちでは起動時 44MB から最小 6MB 程度まで減少)
  • 最大化ボタンを Mini Player への切り替えボタンにする
  • プルダウンメニューを表示しない

 他にも自作スキンの適用や、8ポイントの汚いMS Pゴシックで表示される iTunese Music Store のフォントを変更できるなど細かな機能が実装されているが、この三点だけでも間違いなく導入の価値はあった。
 メモリ占有率については iTunes 6.0.3 で施された(Apple 曰く)安定性とパフォーマンスを向上させるための変更とトレードオフになるだろうし、高い CPU 占有率が改善されるわけでもないので「潤沢なメモリを搭載している人」にはメリットが薄いだろう。しかし、プルダウンメニューとショートカットキーでしか不可能だった MiniPlayer 化がワンクリックで可能になるのは大きなメリットだ。ボリュームスライダー上でしかホイールで音量調整できない標準画面に苛ついている人には福音のはず。マウスオーバーするだけでアクティブになる変態プルダウンメニューの非表示化に至ってはなにをかいわんや。
 楽曲の再生エンジンに foobar2000 を使えたり他のプログラムに WinAMP だと偽装できたりと、もはや存在自体が本体であるヘタレ iTunes(ひいては Apple)への嫌味としか思えないプログラムである。

2. “.NET R-Tune” を iTunesBlogger に適用

 本年1月末から利用していた iTunesBlogger.NET Framework を利用したアプリケーションである。その起動の遅さは凄まじく、5,000 曲以上を登録した iTunes 本体よりも時間を要するほど。単独起動した場合でも iTunes を引っ張ってくるから、うちの環境では再生できるようになるまで数分かかる勘定だ。Windows 再起動してるんじゃないんだから。
 そこで .NET R-Tune を。これは「.NET Framework を利用したアプリケーションの起動を高速化する」というまさにそのままのソフトなのだが、うさんくささにも関わらず実に有効だった。iTunesBlogger 自体の起動時間は10秒程度にまで短縮され、これなら許容範囲かと思える程度に。

3. “WinAMP iPod Support” を試す

 そもそも iTunes で一番難儀していたのはプレーヤとしての機能ではなかったのだ。導入する必要が生じたのは iPod Shuffle を買ったからである。iPod のライブラリ管理ソフトを使わなければいけないから、仕方なく「せめて少しでも他のことで楽しもう」とジャケット埋め込みやタグ整理にシコシコ時間を費やしたわけだ。
 しかし、その最も重要な iPod 管理においても iTunes for Windows は無茶をする。接続した瞬間にハネ上がる CPU 占有率はバックグラウンドにもかかわらずキーバッファをすっ飛ばすほどで、チャットの最中に同期なんざ始めようものなら数分に渡ってまともに日本語入力ができなくなる
 いい加減に業を煮やしていたところ、なんと WinAMP の新版で iPod が公式サポートされると言うではないか。それまでも ml_ipod というプラグインで iPod 管理機能は提供されていたが、機能的に疑問に思える部分が多くて導入には二の足を踏んでいた。公式サポートとなれば再検討の余地はある、ということで試してみた結果が凄かった。詳細は省くが、

  • 「オートフィル用リスト作成時」の CPU 占有率が iTunes の100%%から15~20%%に低下
  • 「転送時」の占有率が100%%から5%%以下に低下

 転送速度自体は USB1.1 の制限で変わらないだろうと思っていたら、それも若干高速に完了した。そんなのアリか、と思わず大声を出して笑ってしまうほど。

4. “Now Playing Plug-in 2.0” を試す

 速攻出戻り確定、となるはずだったのがしばらく時間を要した理由は「Now Playing」である。iTunes を導入して好転した状況は数えるほどしかなかったわけだが、その数少ないメリットとして「現在再生している曲をウェブに表示するための外部ユーティリティ」が上げられる。私の場合は先述の iTunesBlogger だ。
 性能最悪、しかし機能は大満足というこのユーティリティに対して WinAMP 側はかなり心許い。2004年11月から2005年3月まで使っていた Now Playing Plug-in は、ID3 タグに2バイト文字を含む楽曲でデータのデリミタを誤認識するのだ。他に何か、と思って探してみると当の Now Playing がバージョンアップしていることがわかった。期待でワクテカしながら速攻導入。
 はまる。
 2.0β からはデータの仕様が大きく変更されていた。受け側の Perl スクリプトも、iTunesBlogger に対応させたときのような簡易な変更では済まない。なにより送出するデータの形式・内容をユーザ側で変更できないという困ったちゃん。
 サポート掲示板を探ってなんとか暫定的に修正するも、β版ならではのバグも幾つか。クリティカルなものとしてはこの二点。

 そして送出されるデータには BASE64 エンコードされた埋め込みジャケットも(強制的に)含まれる。160ピクセル四方で統一しているうちの環境だと、曲が変わるたびに250KB程度のデータを CGI に処理させることになるわけだ。ただでさえコメントスパムの嵐で負荷率がはね上がっているこのサーバであまり無茶はしたくない。
 逆に日本語に関しては送出されるデータがプレーンな物に変わったようで、Perl での処理で対応できそうなのが幸いか。実際にやってみないとわからない部分ではあるが、少なくとも WinAMP 本体側での Unicode 対応はマシになっているようなのでプラグイン作者にも要望を出しやすくなったといえよう。せっかくの Amazon Web Service 対応も本国のみってのは悲しすぎるし。

5. WinAMPに出戻ってみて

 戻って気付いたのだが、たかが3ヶ月ほどで身体が iTunes に慣らされているようだ。WinAMP では(ALBUM LISTを使った)アルバム単位でのリスニングが基本になっていたのに、いつの間にかランダム再生を嗜好するようになっていた。
 もちろん WinAMP5 にもスマートプレイリストやシャッフルといった機能はあるのだが、それを積極的に利用はしていなかった。早速メディアライブラリに iTunes 側で作ったものと同様のリストを用意したが、WinAMP には Genre に関係なく設定されるグループという概念がないためにライブラリの修正を余儀なくされている。先述の2バイト問題を早々に解決しないことには不便なことになりそうだ。
 そしてもうひとつ、iTunes で便利だと思っていた機能。タグの修正がフォルダ構成やファイル名に直接反映されるという考え方。これは慣れると間違いなく便利だ。リップ&エンコード時にしか用がない機能ではあるが、いまだ大量に未整理&タグ無しのファイルを抱えている我が身としては「ライブラリ整理用ツール」としての iTunes をもうしばらく手放せないかもしれない。
 疲れたので今日はここまで。
 また続き書くかもしれんが、まあその時は適当にゆるーく。