Puppy Linux導入記録 Pmusic

(作成 2013.02.08, update 2014.02.15)
 PmusicはPuppy Linux431JP2012に標準搭載されているオーディオプレーヤーです。Windows 2000のメディアプレーヤ9と比べると非常に簡素な外観なこと、また、マウスで曲を選択してから音が鳴り始めるまでに3~5秒位のタイムラグがあることが小生にとって低評価でした。所詮は軽量Linux、とりあえず音が出るレベルのおまけソフトという先入観を抱いていました。そして最大の欠点はmp3ファイル再生時、日本語のタイトルなどが文字化けすることです。これは楽曲を鑑賞する以前の問題です。このままではPmusicは使い物になりません。
 小生の場合、音楽ファイルの形式はmp3でWindowsのソフトで作成したものです。この時タイトルやアルバム名は手打ちで入力しました。よって日本語文字化けの原因はWindowsとLinuxの文字コートが異なるためと推察しました。mp3ファイルの中にはID3タグという曲名タイトルなどの情報が埋め込まれており、この部分を書き換えればPuppy Linuxでも日本語が文字化けせずに表示できるはずと考えました。そこで適当なツールを探した所、Easy Tagというソフトか見つかりました。以下は参考にしたサイトです。
MP3ファイルのID3タグの文字コードを変換するには
ubuntuとWindowsXP、両方の環境で文字化けしないMP3のID3タグを作成する

1.インストール

 まず、必要なファイルをダウンロードします。Easy Tagのサイトからeasytag-2.1.7.tar.bz2をダウンロードしました。続いてmp3ファイルを扱うためにはid3libというライブラリが必要なのでid3libのサイトからid3lib-3.8.3.tar.gzもダウンロードしました。(注: 小生の環境ではEasy Tagをインストールする前に/usr/lib/libid3tag.so.0.3.0のシンボリックリンクとして/usr/lib/libid3tag.soを作成する必要がありました。)これらのファイルを解凍後、コンパイルします。両ファイルは./configure→make→make installで何の問題もなくインストールできました。この時、/usr/local/binディレクトリにid3info,id3convert,id3tag,id3cpというファイルが作成されますがPuppy Linux431ではこれらのファイルはOSインストール当初から/usr/binディレクトリにあるので重複しています。後々問題が起こらないように/usr/local/binディレクトリ側のファイルを削除しました。
 次にPmusicでのID3タグの表示方法について調べてみました。PmusicはID3タグを表示するときはバックグラウンドで/usr/bin/id3infoを起動します。このid3infoはID3タグのフォーマットがID3v1形式で文字コードがUTF-8のみ日本語表示に対応しているようです。従ってEasy Tagの設定ではID3タグの読み込み時の文字セットを日本語Shift-JIS、ID3v1タグの書き込み文字セットをUnicode(UTF-8)とし変換します。この方法でPmusicでmp3ファイルのタイトル名などの日本語表示が可能になりました。逆に変換後のmp3ファイルをWindowsメディアプレーヤーで読み込むと文字化けします。またID3v1タグは登録可能な文字列数が少ないので変換後長いタイトル名は後端の文字が削除されたり文字化けしました。

2.Pmusicでアルバムリストを作成する

 mp3ファイルのID3タグが日本語されたのでアルバムリスト(Pmusicではコレクションと呼ぶ)の作成が可能になりました。「ファイル」→「インデックスを更新」→「Update indexタブで対象ディレクトリを選択」→「Filtersタブに移動」→「プログレスバーを表示、プレイリストを表示、index also...にチェックマーク、Don't index directoriesを選択」→「開始ボタンをクリック」でPmusicはID3タグの内容を解読しアルバム単位にmp3ファイルをまとめたリスト(コレクション)を作成します。アルバム名をクリックするとアルバム内の全曲が再生されます。これはWindowsメディアプレーヤ9と同等の機能です。その他、再生回数が多い曲のリスト、過去に再生した曲の履歴などを表示する機能があります。

3.使用した感想

 日本語化とアルバムリストができたのでPmusicの操作性は格段に良くなりました。ただし小生のPCはオフィス業務専用機の仕様です。オーディオ機能は貧弱なので低音質を気分晴らしに聞くだけと思っていました。まぁ、せっかく日本語化したということでしばらくPmusicでmp3音楽を聞いていましたがどうやらWindowsメディアプレーヤ9よりも音質が良いことに気が付きました。特にボーカルの声の伸びが気持ちよく感じます。アルバムを繰り返し聞いているうちに時間があっというまに過ぎてしまいます。過去に駄作と思ったアルバムをPmusicで聴き直すと全く別の名曲に聞こえます。音源のmp3とPCは同一なのにOSと再生ソフトが異なるとここまで音質が異なってしまうことに驚きました。小生の環境では「ファイル」→「Retrovol-Sound mixer」でPCMのボリューム設定がMAX付近になっていると音割れ発生及び低音が出なくなりますので80%位が音質が良いです。
 Pmusicがmp3を再生するときはバックグラウンドで以下のコマンドを実行しています。
# ffmpeg -i filename.mp3 -ss 0 -f au - | aplay
これはffmpegでmp3ファイルをデコードしそのデータをaplayに渡し音楽を再生していることになります。さてこのaplayという音楽再生コマンドですがPCオーディオの世界では有名らしくUbuntu + aplay でWAV音楽ファイルを再生すると高音質が得られるとのこと。小生も手持ちのCDからWAVファイルを作成しPuppy Linux431のaplayで再生してみました。なるほどmp3よりもクリアな音質です。Ubuntuではaplayで音楽を聴くために端末から手打ちでコマンドを入力したりWAVファイルを端末にドラッグアンドドロップする方法が紹介されています。一方Pmusicはaplayのコマンドを知らなくてもGUIで操作することができるのがメリットと思います。aplayを端末から直接使ってもPmusic経由で使っても小生の環境では音質の差は感じられません。

4.id3infoの改造

 上述のようにEasy TagでID3タグを変換することによってPmusicでmp3のID3タグ情報を日本語で表示することができました。一方、変換後のmp3ファイルをWindowsメディアプレーヤ9で開くと文字化けします。この問題を回避するにはPuppy Linux標準搭載のID3タグ解読コマンドのid3infoを改造しWindowsの文字コードでも文字化けせずに出力できるようにすることです。そうすればID3タグの変換無しにPmusicでダイレクトに日本語を表示することができます。Easy TagはこれをGUI環境で実現しているのでEasy TagのGUI部分を取り除き出力をid3infoに似せれば可能になると思いました。これ(id3info-easy-0.0.1.pet)は試作したPETパッケージです。このPETパッケージは既存の/usr/bin/id3infoを書き換えますのでインストール前に既存のid3infoをバックアップしてください。またベースがEasy Tagなので設定ファイルはEasy Tagと兼用しています。/root/.easytag/easytagrcが設定ファイルです。これでWindowsで作成したmp3ファイルをそのままPmusicで文字化けせずに表示できました。

スクリーンショット Pmusic 日本語化したID3タグの画面

(以下2014.02.15追加)Linuxで動作する他のオーディオプレーヤーを試用するため、およびPuppy Linux431JP2012にも慣れたため、Windowsとの兼用は不要となりました。現在はオリジナルのid3infoに戻しています。

5.CD player/ripper

 Puppy Linux431JP2012では「メニュー」→「マルチメディア」→「CD player/ripper」とメニューを進んでいくと音楽CDプレーヤーが起動します。このCDプレーヤーはPmusicの一機能です。欠点は二つあります。一つ目は小生の環境では再生を開始するとディスクが高速回転し、その騒音のため音楽を聴く気分になりません。二つ目はネットワークに接続しているときCDDBと言うデータベースに自動的にアクセスし曲名タイトルなどを表示するのですが日本語部分は?????と表示され文字化けします。
 二つ目の問題について調べてみるとPmusicはCDDBにアクセスするときバックグラウンドでcdda2wavというコマンドを実行しています。しかしPuppy Linux431JP2012標準装備のcdda2wavは日本語に対応していないことがわかりました。cdda2wavはcdrtoolsというCDドライブを扱うライブラリ群のひとつです。小生はcdrtools-3.01というバージョンのソースをダウンロードし自力でコンパイルしました。日本語化についてはネット上で調べてみるとprotoという変数に6を代入するとよいとのこと。結果は成功で日本語で表示されました。

pmusic

 CDプレーヤーの「Rip CD」ボタンを押すと音楽CDのデータを各種形式の音楽ファイルに変換(リッピング)できます。小生はmp3形式に変換しています。Pmusicは変換時に取得済みのCDDBデータをmp3のID3タグ情報とし埋め込みます。この方法で得られたmp3ファイルをPmusicや他の音楽再生ソフトで開くと曲名タイトルなどの情報が表示されるので便利です。

6.cdda-player

 PmusicでのCD再生時のドライブ回転による騒音は、リッピング機能を使ってデータを吸い出し、音声に変換処理後、再生しているのが原因です。Puppy Linux431JP2012標準装備でPmusic以外の音楽CD再生ソフトを探してみました。gxineは同様に騒音を発します。一方、端末から起動するソフトになりますがcdp,cdplay,cdda-playerは静かです。これらのソフトはCDドライブ→オーディオケーブル→PCのマザーボード(サウンドボード)を経由して音を鳴らす方式です。これはCDウォークマンにイヤホンジャックを接続しているのと同様な使い方となります。音に変換するためにデータをCPUで処理する必要がないのでCPUの負担はゼロ。貧弱なPC環境にはありがたいソフトです。
 cdp,cdplay,cdda-playerのうちcdda-playerはCDDB機能があります(とhelpに書いてある)のでcdda-playerを使ってみました。しかし音楽の再生はするもののCDDBから取得し表示されるはずの曲名タイトルなどはまったく表示できません。またまたソースからコンパイルすることにしました。cdda-playerはlibcdioというCD関連を扱うライブラリ群の一つです。小生はlibcdio-0.92バージョンのソースをダウンロードしました。肝心のcdda-playerのソースを見ると元々からCDDB機能が使えないようになっていました。同バージョンのlibcdioに同梱されているcd-infoというツールはCDDB情報が日本語で表示されます。そこでcd-infoのソースを参考にcdda-playerのソースを書き換えました。結果は成功です。キーボード操作や画面の配色をカスタマイズすればもっと使いやすいソフトになると思いました。

cdda-player

7.PETパッケージ

 cdda2wavの自作PETパッケージはこちらにあります。(cdda-playerも同梱しています。)
 cdda-playerのソースはこちらにあります。

戻る | 次へ | 目次
inserted by FC2 system