【実験】X68030+060turbo+MercuryUnit+RaSCSI+mp3play.xで、mp3再生はできるのか?

2021/04/25

060turboで、mp3のリアルタイム再生はできるのか?

以前にどこかで、「X68000でmp3再生ができる!」という話を思い出して、実験してみました。

用意したハードウェア

今となっては、普通の68ユーザでは用意するのが難しいものばかりですが。

・X68030(25MHz)
・060turbo replica(XC68060RC50)(もちろん replicaでなくもOK)
・RaSCSI(ベアメタル版)外付け(mp3データを格納)(普通の外付けSCSI-HDでもいけるかも?)
・まーきゅりーゆにっとv4(もちろん、Mercury-UnitでもOK) ※ツクモ電機製TS-6BGAでもいけるらしい(未確認)

用意したソフトウェア

twitter経由で、こちらのツール「mp3play.x」を教えていただきました。

mp3play.x

Index of /g0org/x68tools/audio/mpeg :
ここからダウンロードします。

MP3P049.LZH 一番タイムスタンプの新しい(1999/1/6)、こちらを利用してみました。

1999年製のようです。UNIX版からの移植ってのも時代を感じますね。

ところで、1999年といえば、わたしが初めて携帯mp3プレイヤーの「MPMAN」を買いました。64MBしかデータが入りませんでした。

ASCII.jp:まもなく「Winamp」が提供終了! MP3全盛期を振り返る (3/4)

意外と格好いい。iPodとかでる遥か前。現場からは以上です。

用意したmp3

私も制作に参加したこちらのサントラアルバムから。

超連射68K オリジナルサウンドトラック COMPLETE EDITION | プロジェクトEGG | EGG MUSIC :

るざりんさんアレンジの、こちら「Planet the E.A.R.T.H (STAGE 1) Self-Remake Version」をエンコードしています。

実験開始!!

中々、060turboパワーを体感する機会が少ないので楽しみです。

まずはいきなり、用意したmp3データはオンメモリではなく、RaSCSIに入れて実験しました。

Streamエラーや、Skipなどと表示される

いくつか手持ちのmp3を再生してみたところ、エラーが出て止まってしまいました。

確かに一概にmp3といっても、かなり細かい違いやエンコードの種類があるので、仕方ないですね。

そして、粘り強くあれこれ再生を試しているとうまく再生できるデータを発見しました

どんなmp3だと再生できるのか?

mp3について詳しく調べられるツール(MediaInfo)を使って、再生できたデータとできないデータを比較してみます。

MediaInfo のダウンロードと使い方 – k本的に無料ソフト・フリーソフト :

再生できたデータ(古いmp3)

再生できないデータ(普段、iTunesなどでエンコードしてるmp3)

周波数は同じなので、一番怪しいビットレートを疑ったのですが、違いました。

そろそろ勘の良い方は気づかれてるかもしれませんが、なぜ古いmp3だと再生できるのか?

再生できない原因は可変ビットレートでした

答えは、可変ビットレート(VBR)でした。

そんなのありましたね。。。すっかり忘れていました!

最近のデータやプレイヤーではVBRには当たり前に対応してますが、1999年当時にも存在はあったのかもしれませんが、この再生ツールでは考慮されなかったのでしょう。

VBRのmp3を一度ベタなWAVに戻して、固定ビットレートのmp3に変換し直します。

iTunesではなぜかうまくできなかったので、検索したら出てきた「SCMPX」を利用しました。

CH3’s homepage :

だいぶ懐かしいインターフェース。当時、よく使いました。そして、Windows10でも動きました。

午後のこ~だ~、も試しましたが、Windows10でうまく動きませんでした。ひたすらに懐かしい!

続・実験開始!

やっと再生できるデータがわかったのです、再生してみます。

A:\>mp3play -mu -debug 再生したいMP3ファイル名.mp3

mp3playの実行オプションは、MercuryUnitを指定する-muオプションと、デバッグ表示させる-dオプションのみです。

time > cycle、だと、追いついていない、ということらしいです。

とりあえずキャッシュON

A:\>cache on

これだと、つっかえながらの再生になってしまいます。

ハイメモリで再生プログラムを実行する

どうやら、再生プログラム(mp3play.x)をハイメモリで動作させる必要があるようです。

060highを使う場合

A:\>060high 1 0
A:\>mp3play -mu -debug 再生したいMP3ファイル名.mp3

060high.x – 060turbo 関連 – 特定のハードウェア用のソフトウェア – ソフトウェアライブラリ – X68000 LIBRARY :

060loadhighを使う場合

A:\>060loadhigh mp3play -mu -debug 再生したいMP3ファイル名.mp3

060loadhigh.x – 060turbo 関連 – 特定のハードウェア用のソフトウェア – ソフトウェアライブラリ – X68000 LIBRARY :

実験成功!

128kbpsのデータで、なんとか、time < cycleでついていっていますね。

RAMディスクを使ってみる。

やはりビットレートを上げると再生が厳しくなります。

そこで、mp3データをRAMディスクに置くと256kbpsでもギリギリなんとかついていけます。

320kbpsは、さすがに厳しそうですが、禁断の060tubro75MHzにすればいけるのかも?

96kbpsにして、-m(モノラル)オプションを付けるともう少し低スペックの68でも再生できそうです。

もちろん、再生中はX68030は、他のことがなんにもできませんのでBGM利用には向かないです。

今回の実験はここまで

もし、可変ビットレートも再生する方法が見つかったら、また実験するかもしれません。

それでは、次の実験テーマで会いましょう!