Feb 23, 2013
Vine Mpd ppcについて覚書(6)不良cue sheetによる再生の不具合
前回は、mpdが順調に動作し始めたとこまで。
この覚書もだいぶリアルタイムでの状況進行に近づいてきている。
これから書くのは、2月中旬以降の話だ。
うちでは以前からCD1枚を1つのFLACファイルにしてNASに保存している。
今は持っているCDの一部だが徐々に増やすつもり。
リッピングに使うのはもっぱらEACで、cue sheetもリッピングと同時に作っていた。EACにはそういう機能があるのだ。
これをLAN経由で、Mac miniの「Audirvana Plus」を使って再生していた。
mpdでもcue sheetが使えるようになり、これは便利だと思っていたんだけど不具合が出てきた。
楽曲再生に際してトラックの開始がおかしくなる。
おかしくなるというのは、楽曲の途中から再生を開始するのだ。
それも前の曲の途中から再生される。
cue sheetを使って再生している時に限られるので、この関係で不具合があるんだろうと考えた。
分かりにくいので追記。
前の曲の途中から再生」というのは、前の曲が再生中に途切れて、続くトラックの頭が再生されるという意味。前の曲が途中から繰り返し再生されるという意味ではない。
Cue sheet - Hydrogenaudio Knowledgebase
cue sheetには「INDEX 01」という項目を必ず記載することになっていて、というのは、楽曲開始時間を指定する項目がこれにあたるから。
「INDEX 00」というのもあって、これを記載すると楽曲開始前の「ギャップ」を設定できる。
CD再生してるとき、ときにトラックが始まる前に数秒間の無音があって、プレーヤーの再生時間表示に「マイナス」が出ることがある。こういうのをWAVやFLACのファイルからCDを焼くときなどに反映させるのに、cue sheet上に「INDEX 00」の時間を記載し、指定しておくということらしい。
再生に問題があったcue sheetをエディタで確認してみたら、「INDEX 00」と「INDEX 01」に指定された時間が、酷いときには数分以上も違っていることが分かった。
つまり、トラック再生開始時間の前にあるのは数秒間の無音どころではなく、トラック開始の数分前の部分からトラック開始時間までの楽音。つまり、FLACファイル上にある前のトラックの途中からトラック開始時間までの部分、ということになっていた。
EACでcue sheetを作ったときにこうなったということになる。
なぜこんなことになったのかは、はっきりしない。
今まで、foober2000やAudirvanaで再生している分には全く気付かなかったので、これらのソフトは「index 01」しか読まないのかもしれない。
とりあえず「INDEX 00」は削除してもcue sheetの体裁としては問題がないということなので削除してみたら、mpdでの再生の問題もなくなった。
つまり、mpdはINDEX00を読んで再生したから再生の不具合が生じたということだ。
こうした不具合がうちだけのものなのかどうか、はっきりしない。
ネット上で検索してみても、検索が下手なのか?、ひっかかってこないのだ。
原因は分かったけど、ではどうするかが問題になる。
今までにCDをリップして作ったcue sheetは数百万枚数百枚。1枚ずつチェックしていては、とても終わらない。
それどころか、これからもリッピングは続ける予定なのだ。
EAC以外のリッピングソフトを使うのか。
正直、この半年の間に使い慣れてしまって換える気にならない。なにしろスピードが速いというのが僕のニーズにあっている。
EACでcue sheet作成の設定が出来ないかと考えたけど、ないようだ。
では、mpdのほうで「INDEX 00」を読まない設定に出来ないか。
調べたけど、よく分からない、、。
では、cue sheetの書き換えをコンピューターにしてもらおう。
人間がやるよりずっと早いはず。
Linuxは、数百枚のファイルの内容を一瞬で書き換えるコマンドを打つことが出来るはず。
しかし結局、僕が使った手段はApple Storeで「Jedit X standard」を買うことだった。
このエディタには複数ファイルの内容を検索して書き換える機能が付いている。
Mac mini上のJeditからNAS上のフォルダを選択し、ファイルの種類に「cue」を指定して、「INDEX 00 .+/n」を検索して「/n」に書き換えるように、としてクリックすると、INDEX 00とこれに続いて記載された時間を表す数列が、削除される。
ちなみに「.+」は1文字以上の文字列、「/n」は改行という意味。
これで、自宅NASにあったcue sheetの「INDEX 00」とそこに指定された時間は、数分間で削除された。非常に助かった。
途中で文字コードの指定でひっかかるファイルがいくつかあった。UTF-8でいいか?ということなので、いいよとenter。確認していないが多分問題ないだろう。
無料のお試し版「Jedit X Rev.2」で同様の操作が出来るかどうかは知らない。
ちなみに、EACでリッピングしてcue sheetを作った時点で同様の操作をするのには「Mery.exe」というエディタを使った。こっちはWindows用のフリーウェア。
やはり複数のファイルの中を検索して、文字列を一括で置換できる。
操作する内容も大体同じだ。
今後はこっちで処理してからNASに持っていくと思うので、Jeditは今後の出番は少ないかもしれないが、まあ、いい仕事してくれたので高いという気がしない。
追記。
何で自宅NASのファイルを修正するのにMeryを使わないのかということだけど、自宅のWindowsXPにMeryをインストールして使ってみたら、なぜか前述の捜査が出来なかった。マシンのスペックの問題かもしれない。自宅のマシンはペンティアム3だ。
どこでリップしてるかというと、実は職場。夜勤で仕事がない時間帯に、自宅から持ち込んだもっと使えるノートでリップしてる。普段見ないTVとかぼーっと見てるよりいいかと思って始めた。それ以外の時間でリップできる時間はない。
だからリッピングが高速にできるというニーズは切実なのだ。
仕事さぼってるわけじゃないけど、こんなことあんまり進んで公言したくはない。しかし行きがかり上仕方ないので書いた。
しかし、INDEX 00だけでは終わらなくて、実は「INDEX 02、INDEX 03、、、」というような記述があるcue sheetがあることが分かった。ちなみに、このようなシートはAudirvanaでも受け付けない。foobar2000で使えるかどうかは、不明だ。
これは、もしかしたらと思って「INDEX 02」をJeditで複数ファイル検索して、ひっかかった。
そんなに多数ではなかったので、検索結果からファイル自体を開いて削除した。
この際に、03、04、、、とかあるのに気付いた。
たぶん、02を飛び越えて03、、、とかいうcue sheetはないと思うのだけど、今の時点では検索していない。
ちなみにそういうcue sheetの一例。
こんな感じのファイル。
INDEX 00がないのは、Jeditで削除された後だからだ。
とりあえず、今回はここまで。
writeback message:
Caution!!!
Now, Anyone cannot post a comment.