更新日: 2011 年 11 月 15 日
X68000 LIBRARY > ソフトウェアライブラリ > サウンド > ステレオ PCM 再生 > S44PLAY.X / FMPPLAY.X > S44PLAY.X / FMPPLAY.X の説明
S44PLAY.X / FMPPLAY.X の説明
説明
S44PLAY.X / FMPPLAY.X の添付ドキュメントです。
S44PLAY.DOC
──────────────────────────────────── Stereo PCM player with built-in OPM S44PLAY.X version 1.03 FMPPLAY.X version 1.03 2005/12/15 M.Kamada ──────────────────────────────────── ━< 概要 >━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ S44PLAY.X,FMPPLAY.X は、X680x0 の内蔵音源だけでステレオの PCM データを ステレオで再生するプログラムです。ADPCM 音源は一切使っておらず、FM 音源 だけで 2 チャンネル(ステレオ)の PCM 音源をエミュレートしています。 ● PCM データの供給方法 S44PLAY.X が再生できる PCM データの供給方法は、大きく分けて 3 種類あり ます。 (1) PCM データが入っているファイル(.s44/.pcm/.aif/.wav/.fmp など) (2) CD の音声トラック(CDDA) (3) PlayStation の CDXA 形式の音声データ(.STR/.XA/.X16/.X32 など) (1) PCM データが入っているファイル 拡張子が .s44 などの、PCM データが入っているファイルを再生できます。ス テレオのデータはステレオまたはモノラルで再生できます。 (2) CD の音声トラック(CDDA) CD-ROM ドライブがあれば、音楽 CD を再生することができます。X680x0 が CD プレイヤーになるわけです。 (3) PlayStation の CDXA 形式の音声データ(.STR/.XA/.X16/.X32 など) PlayStation のソフトの CD-ROM に含まれている CDXA 方式の圧縮音声データ を再生することができます。 FMPPLAY.X は拡張子が .fmp のファイルのみを再生できます。他の種類のデー タを一切扱わないようにすることで、プログラムを小さくしてあります。 ●必要なマシンパワーの目安 X68030 以上推奨ですが、X68000 でもまったく使えないというわけではありま せん。10MHz の X68000 で PCM データをディスクから読み込みながら再生する には、データをあらかじめ専用フォーマット(FMP ファイル)に変換しておくこ とと、サンプリング周波数をモノラルで 25kHz 前後、ステレオでは 12.5kHz 前 後に抑える必要があります。 X68030 以上の機種では、CD の音声トラックを読み込みながら再生するという 芸当が可能になります。さらに 040turbo や 060turbo を装着していれば、サン プリング周波数の変換方法を高品質なものにできるので、音質がよくなります。 CDXA の音声データをリアルタイムで再生するには、060turbo のパワーが必要 です。他の機種で CDXA の音声データを再生するには、データをあらかじめ FMP ファイルに変換しておく必要があります。 リアルタイム再生でフィルタを使用するには、040turbo または 060turbo の パワーが必要です。 ●音質について 内蔵音源で再生していることを考えればこれでもかなり良い音が出ていると言 えると思いますが、CD プレイヤーの音質に慣れている我々が音楽を観賞できる 音質とまでは言えないかも知れません(そもそも CD を再生するのにわざわざ X680x0 を使う必要はありませんが)。しかし、“音のデータを確認する”程度 の目的であれば、十分役に立つのではないかと思います。 FM 音源レジスタの応答が遅いために出力側のサンプリング周波数を十分に上 げられないことと、FM 音源の 1 チャンネルで出せる変位の幅が狭いので、特に 変位の大きい高周波成分を含んでいる音は再現性が悪くなります。そのため、例 えばボーカルが入っている曲では、高音が伸びが悪くなったり、摩擦音(特にサ 行の音)がノイジーになることがあります。 FM 音源レジスタの応答が遅いので、FM 音源を使って PCM 音源をエミュレー トする場合に再生できるサンプリング周波数は、最大でもモノラルで 50kHz 前 後、ステレオだと 25kHz 前後です。 S44PLAY.X はサンプリング周波数の変換ルーチンを内蔵しており、与えられた PCM データを FM 音源で再生できるサンプリング周波数に変換しながら再生する ことになっています。また、マシンパワーに応じてサンプリング周波数の変換ア ルゴリズムを選べるようになっています。 ●音量について S44PLAY.X は、デフォルトで音量が小さめに設定されています。これは FM 音 源の 1 チャンネルで出せる変位の幅が狭いためです。他の各種音源ドライバを 使用して音楽を再生する場合と比べて、ボリュームのツマミを音量を大きくする ほう(ツマミの印が 10 時〜 1 時くらい…ヘッドフォンのインピーダンスにも よります)に回さないとよく聞こえないかも知れません。-v<n> スイッチを指定 すればある程度は音量を大きくすることができますが、十分大きくなる前に音が 割れてしまうので、-v<n> スイッチで音量を大きくしたのでは綺麗に聞こえない 場合が多いと思います。 ━< 動作環境 >━━━━━━━━━━━━━━━━━━━━━━━━━━━━ S44PLAY.X,FMPPLAY.X は以下の環境で動作します。 X680x0 全機種(X68030 以上推奨) Human68k v3.0x FLOATn.X (大きなデータを変換する場合はハードディスクなどのストレージ) (CD から読み込む場合は CD-ROM ドライブ) 以下のような常駐ソフトウェアはなるべく外しておいて下さい。 各種音源ドライバ類 Timer-A または Timer-D 割り込みを使用する常駐ソフトウェア Timer-C 割り込みに寄生する常駐ソフトウェア 水平帰線または垂直帰線割り込みを使用する常駐ソフトウェア 特殊なマウスドライバ その他、常時割り込みや DMA 転送を使用する常駐ソフトウェア類 S44PLAY.X,FMPPLAY.X は Timer-C カウンタと Timer-D 割り込みを使用します (拡張操作モードの場合は Timer-A 割り込みも使用します)。なお、 CONFIG.SYS に PROCESS= の指定があると Human が Timer-D 割り込みを使用し ますが、この場合は S44PLAY.X,FMPPLAY.X は Timer-D 割り込みを Human から 奪って使います。 ━< 使い方 >━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ S44PLAY.X はコマンドラインで指定された PCM データをその場で再生または 専用フォーマットに変換します。各種の音源ドライバのように常駐することはあ りません。 > s44play [スイッチ] {ファイル名|トラック番号} … コマンドラインの前に環境変数 S44PLAY の内容が解釈されます。 FMPPLAY.X は拡張子が .fmp のファイルの再生専用です。データ変換モードは ありません。 > fmpplay [スイッチ] {ファイル名} … コマンドラインの前に環境変数 FMPPLAY の内容が解釈されます。 ●チャンネル数の指定(S44PLAY.X のみ) モノラル再生するかステレオ再生するかを選べるようになっています。 -mono モノラル再生モードにします。 モノラル再生モードでは、ステレオのデータもモノラルに変 換して再生します。 ステレオ→モノラル変換は、同じタイミングの left のデー タと right のデータを足して 2 で割ることで行います。 -left モノラル再生モードにします。 ステレオのデータは、左側の音を再生します。 -right モノラル再生モードにします。 ステレオのデータは、右側の音を再生します。 -diff モノラル再生モードにします。 ステレオのデータは、同じタイミングの left のデータから right のデータを引くことでモノラルに変換して再生します。 ステレオのデータで、中央で鳴っている音だけを消す効果が あります。データによっては綺麗に聞こえない場合があります。 -stereo ステレオ再生モードにします。 デフォルトでステレオ再生モードになっています。 モノラルのデータは常にモノラルで再生されます。 -left と -right と -diff は、CDXA/WAVE(Unsigned-8bit) のデータに対して は -mono と同じ結果になります。 なお、FMP フォーマットのデータはモノラル/ステレオを変換できません。 ●ボリュームの指定(S44PLAY.X のみ) 再生ボリュームを指定できます。 -v<n> ボリュームを n で指定します。n の範囲は 1〜1024 で、数 値が大きいほどボリュームが大きくなります。デフォルトは n=16 です。素材の音量が大きいときは n を小さくしないと音 が割れてしまいます。また、素材の音量が小さくても n をあ まり大きくすると音が割れてしまうので、そのような場合はヘ ッドフォン端子の音量のツマミを回して下さい。 FMP フォーマットのデータはボリュームを変更できません。FMP ファイルに変 換するときに -v<n> を指定してボリュームを決定しておく必要があります。 ●サンプリング周波数の変換方式の指定(S44PLAY.X のみ) S44PLAY.X では、PCM データの再生時のサンプリング間隔をμ秒単位でしか制 御することができません。そのため、通常は、素材のサンプリング間隔と異なる 間隔で再生するために、PCM→OPM 変換の際にサンプリング周波数も変換します。 そのアルゴリズムをスイッチで選択できるようになっています。 -lq Low Quality モードにします。 Low Quality モードでは、サンプリング周波数の変換を間引 き・重複で行います。サンプリング周波数が下がる(サンプリ ング間隔が長くなる)ときは入力データを間引き、サンプリン グ周波数が上がる(サンプリング間隔が短くなる)ときは入力 データを重複させて長さを合わせます。 68000 のときデフォルトです。 -hq High Quality モードにします。 High Quality モードでは、サンプリング周波数の変換を直 線補間で行います。入力データを直線で補間した上で、出力側 のサンプリング間隔で再サンプリングします。 68030 のときデフォルトです。 -sq Super Quality モードにします。 Super Quality モードでは、サンプリング周波数の変換を面 積補間で行います。入力データを直線で補間した上で、出力側 のサンプリング間隔で刻み、各断片の平均の変位(断片の面積 に比例する)を出力データとします。 68040/68060 のときデフォルトです。 サンプリング周波数の変換アルゴリズムが複雑になるほど、演算に時間がかか ります。高品位な変換アルゴリズムを使用する場合、リアルタイムに変換できな くても、あらかじめ FMP ファイルに変換しておけば再生できる場合があります。 ●入力側(データ)のサンプリング周波数の強制指定(S44PLAY.X のみ) -freq[=]<n> 入力データのサンプリング周波数を n Hz とみなします (n=1000〜100000)。 FMP フォーマットのデータに対しては、サンプリング周波数の強制指定は無効 です。 ●出力側(再生)のサンプリング周波数の指定(S44PLAY.X のみ) -int[=]<n> 出力側のサンプリング周波数を割り込み間隔(μs 単位)で 指定します(n=16〜80)。 割り込み間隔と出力側のサンプリング周波数の対応は、以下の通りです。 割り込み 出力側のサンプリ 備考 間隔(μs) ング周波数(Hz) モノラル/ステレオ 16 62500 31250 17 58824 29412 18 55556 27778 19 52632 26316 (68060のときデフォルト) 20 50000 25000 21 47619 23809 22 45455 22727 (68030のときデフォルト) 23 43478 21739 (68040のときデフォルト) 24 41667 20833 25 40000 20000 26 38462 19231 27 37037 18518 28 35714 17857 29 34483 17241 30 33333 16666 31 32258 16129 32 31250 15625 33 30303 15151 34 29412 14706 35 28571 14285 36 27778 13889 37 27027 13513 38 26316 13158 39 25641 12820 40 25000 12500 (68000のときデフォルト) 41 24390 12195 42 23810 11905 43 23256 11628 44 22727 11363 45 22222 11111 46 21739 10869 47 21277 10638 48 20833 10416 49 20408 10204 50 20000 10000 51 19608 9804 52 19231 9615 53 18868 9434 54 18519 9259 55 18182 9091 56 17857 8928 57 17544 8772 58 17241 8620 59 16949 8474 60 16667 8333 61 16393 8196 62 16129 8064 63 15873 7936 64 15625 7812 65 15385 7692 66 15152 7576 67 14925 7462 68 14706 7353 69 14493 7246 70 14286 7143 71 14085 7042 72 13889 6944 73 13699 6849 74 13514 6757 75 13333 6666 76 13158 6579 77 12987 6493 78 12821 6410 79 12658 6329 80 12500 6250 出力側のサンプリング周波数が高い場合、リアルタイムには変換できなくても、 あらかじめ FMP ファイルに変換しておけば再生できる場合があります。 FMP フォーマットのデータはサンプリング周波数を変更できません。FMP ファ イルを再生する場合は -int の指定は無効です。PCM データを FMP ファイルに 変換するときは -int[=]<n> を指定して再生時のサンプリング周波数を決めてお く必要があります。 ●フェードイン・フェードアウトの指定(S44PLAY.X,FMPPLAY.X) S44PLAY.X,FMPPLAY.X では PCM データの再生に FM 音源を使用しており、再 生中はキーオンしたままなので、FM 音源のエンベロープに関するレジスタを操 作することで簡単にフェードイン、フェードアウトができます。そこで、フェー ドイン、フェードアウトの速度を指定するスイッチを用意しました。 -fi[[=]<n>] -fi はフェードインの速度の指定です。n の範囲は 1〜31 で、n=1 のとき最も遅くフェードインします。n=31 で普通に 再生を開始します。デフォルトでは、再生開始時のノイズを軽 減するために、n=12 になっています。-fi だけ指定して n を 省略すると、n=3 が指定されたものとみなされます。 -fo[=]<n> -fo はフェードアウトの速度の指定です。n の範囲は 1〜31 で、n=1 のとき最も遅くフェードアウトします。デフォルトで は n=8 になっており、[F] キー(拡張操作モードのときは対 応しているボタン)を押すとフェードアウトが開始されます。 フェードアウトによって完全に無音になると、自動的に再生が 終了します。 ●フィルタの指定(S44PLAY.X のみ) 現在、S44PLAY.X には、低音部を強調するバスブースター(のようなもの)と、 高周波成分を減らすハイカットフィルタ(のようなもの)が仮実装されています。 いずれのフィルタも簡単なアルゴリズムを使用しており、仮実装なので最適化や 十分な調整は行われていません。 -bass バスブースターを使用します。 バスブースターは、サンプリング周波数の変換前に、各サン プリング位置の PCM データに、その前後合わせて 95 サンプ ルの PCM データの平均の 1.5 倍を加えます。 -hicut ハイカットフィルタを使用します。 ハイカットフィルタは、サンプリング周波数の変換前に、各 サンプリング位置の PCM データを、その前後合わせて 4 サン プルの PCM データの平均で置き換えます。 -bass と -hicut は同時に掛けられません。 -bass と -hicut は ADPCM/FMP/CDXA/WAVE(Unsigned-8bit) のデータには無効 です。 低音部の大きいデータにバスブースターを使用すると音が割れてしまうので注 意して下さい。 ハイカットフィルタを使用すると、高周波成分を多く含む摩擦音(特にサ行の 音)のノイズが軽減されるので、ボーカルの入っている曲やドラマ CD などが聴 きやすくなる場合があります。それ以外のデータでは、ハイカットフィルタの効 果はほとんどありません。 ●データ変換モードの指定(S44PLAY.X のみ) サンプリング周波数の変換方法や出力側のサンプリング周波数によっては通常 の PCM データをリアルタイムで再生することができませんが、あらかじめ PCM データを FMP ファイルに変換しておくことで、高音質再生が可能になる場合が あります。 -c <filename>[.fmp] データ変換モード(後述)にします。 ●その他(S44PLAY.X,FMPPLAY.X) -loop ループモードにします。 ループモードでは、パラメータで指定されたファイルや CD のトラックを繰り返し再生します。 -b<n> PCM バッファのサイズを約 n/6 MB にします。デフォルトは n=14(2411KB)です。バッファのサイズが小さすぎると滑らか に再生できないことがあります。また、最初にバッファを充填 してから再生を開始するので、バッファのサイズを大きくしす ぎると再生開始までに時間がかかります。 -onmem を指定した場合、-b<n> を指定しなければ、バッフ ァのサイズは確保できる最大のサイズになります。 なお、PCM データを 1 度に読み込むサイズは、通常はバッ ファサイズの 1/4 です。 CDXA の音声データを再生する場合は、バッファを大きめに 確保するようにして下さい。 -himem ハイメモリが使えればバッファをハイメモリに確保します。 デフォルトで有効なので指定する必要はありません。 -onmem オンメモリモードにします。 通常、PCMデータが大きいときはディスクからPCMデータを読 み込みながら再生しますが、オンメモリモードではデータの読 み込みと再生を別々に行います。 -b<n> を指定せずに -onmem を指定すると、PCM バッファの サイズが確保できる最大のサイズになります。バッファが大き いとバッファの充填に時間がかかるので、再生が始まるまでに 時間がかかる場合があります。 -tdpause Timer-D 割り込みを Human から奪って使います。Timer-D 割り込みが使用中でも、そのベクタが Human の内部を指して いる場合は強制的に奪って使います。デフォルトで有効なので 指定する必要はありません。 -silent サイレントモードにします。 サイレントモードでは、エラー以外のメッセージが一切表示 されません。 -extra 拡張操作モード(後述)にします。 -? -h -help 使用法を表示します。 ━< ファイルを再生する >━━━━━━━━━━━━━━━━━━━━━━━ S44PLAY.X は幾つかの種類の PCM ファイルを再生することができます。 > s44play [スイッチ] ファイル名[/再生範囲] … FMPPLAY.X は拡張子が .fmp のファイルに限って再生することができます。 > fmpplay [スイッチ] ファイル名[/再生範囲] … 指定されたファイルの指定された範囲を再生します。/再生範囲 を省略すると、 ファイルの先頭から末尾まで再生します。 不正なオフセットを指定しないように注意して下さい。例えば、拡張子が .s44 のファイルならば、4 の倍数を指定しないと正しく再生できません。また、 ステレオの FMP ファイルを再生するときは偶数を指定する必要があります。 ファイル名の代わりに "-" を指定すると、標準入力から入力したデータを再 生します。この場合はフォーマットの強制指定(後述)が必要です。 ファイル名にはワイルドカードが使えます。 ファイル名と /再生範囲 は詰めて指定して下さい。 ●再生範囲の指定(S44PLAY.X,FMPPLAY.X) /-:N ファイルの先頭からオフセット N まで再生します。 /:N- オフセット N からファイルの末尾まで再生します。 /:N1-:N2 オフセット N1 からオフセット N2 まで再生します。 ●拡張子による自動判別(S44PLAY.X のみ) 次のフォーマットのファイルは拡張子で自動判別されます。 拡張子 チャンネル数 ビット数と エンディアン サンプリング 符号の有無 周波数(Hz) .m16 モノラル Signed-16bit Big-endian 16000 .m19 モノラル Signed-16bit Big-endian 18900 .m22 モノラル Signed-16bit Big-endian 22050 .m24 モノラル Signed-16bit Big-endian 24000 .m32 モノラル Signed-16bit Big-endian 32000 .m38 モノラル Signed-16bit Big-endian 37800 .m44 モノラル Signed-16bit Big-endian 44100 .m48 モノラル Signed-16bit Big-endian 48000 .s16 ステレオ Signed-16bit Big-endian 16000 .s19 ステレオ Signed-16bit Big-endian 18900 .s22 ステレオ Signed-16bit Big-endian 22050 .s24 ステレオ Signed-16bit Big-endian 24000 .s32 ステレオ Signed-16bit Big-endian 32000 .s38 ステレオ Signed-16bit Big-endian 37800 .s44 ステレオ Signed-16bit Big-endian 44100 .s48 ステレオ Signed-16bit Big-endian 48000 .pcm モノラル 4bit-ADPCM(MSM6258V) 15625 .p16 モノラル Signed-16bit Big-endian 15625 ●ヘッダによる自動判別(S44PLAY.X のみ) 次のフォーマットのファイルは、ヘッダ(ファイルの先頭に記録されている情 報)で自動判別されます。 フォーマット チャンネル数 ビット数と エンディアン サンプリング 符号の有無 周波数(Hz) WAVE モノラル Signed-16bit Little-endian 任意 WAVE ステレオ Signed-16bit Little-endian 任意 WAVE モノラル Unsigned-8bit - 任意 WAVE ステレオ Unsigned-8bit - 任意 AIFF モノラル Signed-16bit Big-endian 任意 AIFF ステレオ Signed-16bit Big-endian 任意 FMP モノラル - - - FMP ステレオ - - - ●フォーマットの強制指定(S44PLAY.X のみ) 拡張子が .s44 のファイルのようなヘッダのないファイルは、そのフォーマッ トをスイッチで強制的に指定することができます。特に、標準入力からヘッダの ないファイルを入力する場合は、拡張子が得られないので、フォーマットの指定 が必要です。 スイッチ チャンネル数 ビット数と エンディアン サンプリング 符号の有無 周波数(Hz) -m16 モノラル Signed-16bit Big-endian 16000 -m19 モノラル Signed-16bit Big-endian 18900 -m22 モノラル Signed-16bit Big-endian 22050 -m24 モノラル Signed-16bit Big-endian 24000 -m32 モノラル Signed-16bit Big-endian 32000 -m38 モノラル Signed-16bit Big-endian 37800 -m44 モノラル Signed-16bit Big-endian 44100 -m48 モノラル Signed-16bit Big-endian 48000 -s16 ステレオ Signed-16bit Big-endian 16000 -s19 ステレオ Signed-16bit Big-endian 18900 -s22 ステレオ Signed-16bit Big-endian 22050 -s24 ステレオ Signed-16bit Big-endian 24000 -s32 ステレオ Signed-16bit Big-endian 32000 -s38 ステレオ Signed-16bit Big-endian 37800 -s44 ステレオ Signed-16bit Big-endian 44100 -s48 ステレオ Signed-16bit Big-endian 48000 -pcm モノラル 4bit-ADPCM(MSM6258V) 15625 -p16 モノラル Signed-16bit Big-endian 15625 -xx フォーマットの強制指定を解除する フォーマットの強制指定はそれ以降に指定されたファイルに対して有効なので、 ファイル名の手前に記述する必要があります。 ●再生環境の制限(S44PLAY.X,FMPPLAY.X) S44PLAY.X は、ゲームのオープニングなどでバッチ処理で使用されることが考 えられます。しかも、動作環境(ハードウェア)によって再生できる PCM のサ ンプリング周波数が異なるので、機種毎に FMP ファイルを用意したい場合があ ります。機種の厳密な分類は他のプログラムに任せるとして、S44PLAY.X 自身も 簡単な機種判別再生機能(再生環境を制限する)を持っています。 -mac<n,…> 本体を制限します。n=0 のときは本体が X68000 のときだけ 再生、n=3 のときは本体が X68030 のときだけ再生します。 -mpu<n,…> MPU を制限します。 再生環境の制限はそれ以降に指定されたファイルに対して有効なので、ファイ ル名の手前に記述する必要があります。また、再生環境の制限はファイル名以外 の指定(CD の音声トラック番号の指定や出力側のサンプリング周波数の指定) には無効です。 ━< CD の音声トラックを再生する >━━━━━━━━━━━━━━━━━━ S44PLAY.X は CD-ROM ドライブを使って CD の音声トラックを内蔵音源で再生 することができます。ただし、CD-ROM ドライブの種類やマシンスペックによっ ては正常に再生できない場合があります。 > s44play [スイッチ] トラック番号 … FMPPLAY.X には CD の音声トラックを再生する機能はありません。 ●トラック番号の指定(S44PLAY.X のみ) N,… トラック N,… を再生します。 -N 最初のトラックからトラック N まで再生します。 N- トラック N から最後のトラックまで再生します。 N1-N2 トラック N1 からトラック N2 まで再生します。 all すべてのトラックを再生します。 例: > s44play 11 CD の音声トラック 11 を再生します。 ● CD-ROM ドライブの指定(S44PLAY.X のみ) -id[=]<n>[,<m>] SCSI-ID=<n>[,LUN=<m>] の CD-ROM ドライブを使います。 -id の指定がないときは、環境変数 CDROM を参照します。 いずれの指定もなければエラーです。 -sony SONY 系の CDDA 転送コマンドを使います。 -toshiba TOSHIBA 系の CDDA 転送コマンドを使います。 -sony または -toshiba の指定がないときは自動判別を試みます。自動判別で きなかった場合はデフォルトで SONY 系の CDDA 転送コマンドが使用されます。 エラーが出て再生できないときは、-sony または -toshiba を指定してみて下さ い。 ●転送速度(S44PLAY.X のみ) -normal CDDA を標準速で読み出します。CDU-561/CDU-55S で有効で す。 リアルタイム再生のときは標準速では転送が間に合わないの で指定しないで下さい。 -fast CDDA を倍速で読み出します。CDU-561/CDU-55S で有効です。 -ultra CDDA を最高速で読み出します。CDU-561/CDU-55S のときデ フォルトです。 CDU-561/CDU-55S 以外ではデフォルトで転送速度の設定を行いませんが、 -normal、-fast、-ultra のいずれかが指定された場合は CDU-561/CDU-55S と同 じコマンドで転送速度の設定を試みます。 ●その他(S44PLAY.X のみ) -l CD のトラックの一覧を表示します。CDC.x が常駐していて セットされている CD が CDCLIST にあるときは、CD 名と曲名 も表示されます。 -force メディア不良などによる回避できないエラーが発生しても再 生を続けます。リトライを繰り返しても特定のセクタが読み出 せないとき、通常は再生を中止しますが、-force を指定する とそのセクタの再生だけ諦めて直後のセクタに進みます。音は 途切れますが、最後まで再生することができます。 ━< CDXA の圧縮音声データを再生する >━━━━━━━━━━━━━━━━ S44PLAY.X は SONY の PlayStation のゲームソフトの音声データのなかで CDXA 方式で記録されたもの(.STR/.XA/.X16/.X32 など)を再生することができ ます。 ファイル名[/トラック番号] CDXA ファイルの指定された番号のトラックを再生します。 /トラック番号 を省略した場合は、すべてのトラックを再生し ます。 CDXA 方式の圧縮音声データには、多くの場合は .STR、.XA、.X16、.X32 など の拡張子がついています。.STR のファイルには動画(ムービー)が含まれてい るものもありますが、S44PLAY.X は音声トラックだけを再生します。 CDXA の音声データを再生する場合は、バッファを大きめに確保するようにし て下さい。 ファイル名にはワイルドカードが使えます。 例: > s44play foo.str foo.str の音声トラックを再生します。 FMPPLAY.X には CDXA 方式の圧縮音声データを再生する機能はありません。 ●トラック番号の指定(S44PLAY.X のみ) N トラック N を再生します。 -N 最初のトラックからトラック N まで再生します。 N- トラック N から最後のトラックまで再生します。 N1-N2 トラック N1 からトラック N2 まで再生します。 トラック番号は 0〜31 です。PlayStation のムービーデータの音声トラック は、トラック 1 に割り当てられている場合が多いようです。 例: > s44play *.xa/10- *.xa に該当するファイルのトラック 10 以降を再生します。 ━< CD-ROM ドライブの種類 >━━━━━━━━━━━━━━━━━━━━━ CDDA の転送コマンドには主に SONY 系と TOSHIBA 系と呼ばれる 2 種類があ ります。現在、S44PLAY.X がどちらの転送コマンドを使えばよいかを自動判別で きる CD-ROM ドライブは、Inquiry で以下のような識別子を返すものです('?' の部分は不定)。 SONY 系の CDDA 転送コマンドを使用するもの [SONY ???????????????????] [MATSHITAPD-1 LF?????????] [NAKAMICHMJ-5.16S????????] [NRC MBR-7???????????] [PIONEER CD-ROM DR-124X??] [PIONEER CD-ROM DR-U06S??] [TEAC CD-ROM CD-516S??] TOSHIBA 系の CDDA 転送コマンドを使用するもの [TOSHIBA ????????????????] 上記以外の Inquiry を返す CD-ROM ドライブの場合は、デフォルトで SONY 系の CDDA 転送コマンドを使用します。お手持ちのドライブで -sony または -toshiba を指定しないと再生できなかった場合は、-sony/-toshiba のどちらを 指定したかと Inquiry の表示を併せて教えて下さい。S44PLAY.X の次のバージ ョンから自動判別できるようにします。また、-sony/-toshiba のどちらを指定 しても再生できないドライブがあれば、その Inquiry も教えて下さい。 ━< 再生中のキー操作 >━━━━━━━━━━━━━━━━━━━━━━━━ 拡張操作モードでない場合、再生中は以下のキー操作が有効です(拡張操作モ ードのときのキー操作については後述します)。 [ESC] [Q] 再生を終了します。[ESC]/[Q] はきりのよいところで終了す るようになっているので、SCSI 機器のアクセス中などに止ま ることはありません。そのため、プログラムが終了するまでに やや時間がかかることがあります。 [CTRL+C] [BREAK] [INTERRUPT] 再生を強制終了します。SCSI アクセスがどのような状態に なっていても再生を中止することができますが、その後の操作 に支障をきたす可能性があります。なお、SCSI アクセス中に 強制終了してしまったときは、SCSI バスリセットを行うかど うか問い合わせます。 SCSI バスリセットを行ったときは、CD-ROM ドライブを含め て接続されているすべての SCSI 機器のアクセスランプがすべ て消えるまで何も操作しないようにして下さい(環境によりま すが、数秒〜数十秒かかります)。 POWER OFF POWER OFF(本体前面の POWER スイッチを OFF にする)で も再生を止められます。POWER OFF で再生を終了した場合は、 その後 20 秒待ってから電源が切れるようになっています。20 秒以内に POWER スイッチを ON に戻せば電源は切れません。 [TAB] 現在再生中のデータをスキップして、次のデータの再生を開 始します。 [F] フェードアウトを開始します。-fo[=]<n> でフェードアウト の速さを指定できます。フェードアウトによって完全に無音に なると、自動的に再生が終了します。 なお、キー入力割り込みの発生によって再生に必要な割り込みを取りこぼすこ とがないように、S44PLAY.X は再生中はキー入力割り込みもベクタごと乗っ取っ ています。キー入力の判定が IOCS コールを通っていないので、再生中はキー入 力まわりの常駐ソフトウェアは無効になります。SCTKEY.x などによる遠隔操作 もできません。 データ変換モードでは通常のキー操作が使えます。データ変換モードを [CTRL+C] などでアボートすると、未完成の出力ファイルは自動的に消去されま す。 ━< 拡張操作モード >━━━━━━━━━━━━━━━━━━━━━━━━━ -extra を指定すると拡張操作モードになります。拡張操作モードでは、キー だけでなく、パッドやマウスのボタン操作にも反応します。 [ESC] 再生を終了します。[ESC] はきりのよいところで終了するよ うになっているので、SCSI 機器のアクセス中などに止まるこ とはありません。そのため、プログラムが終了するまでにやや 時間がかかることがあります。 [BREAK] 再生を強制終了します。SCSI アクセスがどのような状態に なっていても再生を中止することができますが、その後の操作 に支障をきたす可能性があります。なお、SCSI アクセス中に 強制終了してしまったときは、SCSI バスリセットを行うかど うか問い合わせます。 SCSI バスリセットを行ったときは、CD-ROM ドライブを含め て接続されているすべての SCSI 機器のアクセスランプがすべ て消えるまで何も操作しないようにして下さい(環境によりま すが、数秒〜数十秒かかります)。 [リターン] [スペース] [ENTER] [XF1] [OPT.1] パッドのAボタン マウスの左ボタン これらのキーやボタンが押されると、フェードアウトを開始 します。-fo[=]<n> でフェードアウトの速さを指定できます。 フェードアウトによって完全に無音になると、自動的に再生が 終了します。 マウスデータの取得は IOCS コールを経由せずに行っているので、特殊なマウ スドライバは原則として使用できません。ただし、再生中にも 51.2ms 間隔でマ ウスデータの要求(([$09B6].l) をコール)を行っており、結果を IOCS のワー クで取得しているので、マウスドライバの種類によっては使える場合があるかも 知れません。 -extra と -silent を併用することで、ゲームのオープニングで主題歌を再生 するといった処理に S44PLAY.X,FMPPLAY.X を使用することができると思います。 例: > s44play -extra -silent -mac0 x0.fmp -mac3 x3.fmp X68000 のときは x0.fmp を、X68030 のときは x3.fmp を再 生します。ボタンが押されたらフェードアウトしてから終了し ます。 S44PLAY.X,FMPPLAY.X は Timer-D 割り込みと Timer-C カウンタを使用します が、拡張操作モードでは Timer-A 割り込みも使用します。なお、IOCS の _VDISPST は Timer-A をイベントカウントモードで使うので _VDISPST を使う常 駐ソフトウェアと S44PLAY.X,FMPPLAY.X の拡張操作モードは共存できません。 V-DISP 単体の割り込みは残っていので、V-DISP 単体の割り込みを使用する常駐 ソフトウェアとならば共存することができます。 ━< データ変換モード >━━━━━━━━━━━━━━━━━━━━━━━━ S44PLAY.X では -c <filename>[.fmp] を指定するとデータ変換モードになり ます。データ変換モードでは再生は行わず、入力された PCM データをすべて FMP フォーマットに変換して指定されたファイルに出力します。 データ変換モードでも、サンプリング周波数の変換方式の指定(-lq/-hq/-sq) や、ボリュームの指定(-v<n>)、出力側のサンプリング周波数の指定(-int<n>) などが有効です。FMP フォーマットのデータはボリュームやサンプリング周波数 を変更できないので、必要ならばデータを変換する際に指定しておく必要があり ます。 例: > s44play 46 -c track46.fmp -int25 -sq CD のトラック 46 を Super Quality モードで 20kHz の FMP フォーマットに変換してファイル track46.fmp に出力しま す。 データ変換モードはリアルタイム再生を伴わないので、サンプリング周波数の 変換アルゴリズムを高品質なものにしたり、再生時のサンプリング周波数を高く 設定することができます。データ変換モードで時間をかけて生成した FMP ファ イルを再び S44PLAY.X のパラメータに指定することで、リアルタイム変換では 処理が間に合わないような高い品質で再生できる場合があります。 FMP ファイルの中にモノラルのデータとステレオのデータを混在させることは できません。データ変換モードで先頭のデータがモノラルのときは、-mono を指 定していなくても自動的に -mono が指定されたものとみなして変換を開始しま す。最初に指定されたデータがステレオのデータで、-mono を指定しなかったと き、2 番目以降にモノラルのデータが指定されているとエラーになります。 FMPPLAY.X にはデータ変換モードはありません。 ━< CDC.x への対応 >━━━━━━━━━━━━━━━━━━━━━━━━━ S44PLAY.X は CDC.x(TNB 製作所作)の CD 名と曲名を検索する機能に対応し ています。 S44PLAY.X で CD の音声トラック(CDDA)の再生や CD のトラック一覧表示を 行うとき、CDC.x が常駐していて、セットされていた CD が CDCLIST に含まれ ていると、CD 名と曲名が表示されます。 ━< 終了コード >━━━━━━━━━━━━━━━━━━━━━━━━━━━ S44PLAY.X,FMPPLAY.X は、様々なエラーに対して、エラーメッセージを表示す るとともに終了コードでエラーの種類を返すようになっています。バッチ処理な どで役に立つかも知れません。 ●終了コード一覧 0 正常終了 1 ESC による中断 2 BREAK による中止 3 NMI による中止 4 SCSI-ID の指定がない 5 環境変数 CDROM の内容がおかしい 6 再生やリスト表示などの処理すべき引数がない 7 -id の指定がおかしい 10 -v の指定がおかしい 11 -v の指定が範囲外 12 -b の指定がおかしい 13 -b の指定が範囲外 14 未対応のスイッチ 15 トラックの情報が取得できない 17 Timer-A が VDISP カウンタとして使用中 18 Timer-A 割り込みが使用中 19 Timer-D 割り込みが使用中 20 メモリが確保できない 21 ファイルが見つからない 22 ファイル読み込みエラー 23 指定された SCSI-ID の装置が見つからない 24 INQUIRY の取得に失敗した 25 指定された SCSI-ID の装置は CD-ROM ドライブではない 26 未対応のドライブ 27 ブロックサイズの変更に失敗した 28 メディアの情報の取得に失敗した 29 メディアの準備ができていない 30 トラック番号の指定がおかしい 31 トラック番号の指定が範囲外 32 トラックの情報の取得に失敗した 33 CDDA の読み出しに失敗した 35 ファイルのフォーマットが不明 36 未対応の WAVE データ 37 システムエラー(TRAP#14)が発生した 38 引数が矛盾している(-l や -c が他の指定と重複している) 39 -c の指定がおかしい 40 未対応の FMP データ 41 .fmp ファイルの書き込みオープンに失敗した 42 .fmp ファイルの書き込みエラー 43 ディスクフル 44 -mono 指定なしでモノラルデータを変換しようとした 47 CTRL+C による中止 48 POWER OFF による中止 49 -fi の指定がおかしい 50 -fi の指定が範囲外 51 -fo の指定がおかしい 52 -fo の指定が範囲外 53 引数が多すぎる 61 未対応の AIFF データ 62 -mac の指定がおかしい 63 -mpu の指定がおかしい 64 -int の指定がおかしい 65 -int の指定が範囲外 70 FMP ファイルのモノラル/ステレオを変換しようとした 82 再生範囲の指定が間違っている 83 再生範囲の指定が範囲外 84 -freq の指定がおかしい 85 -freq の指定が範囲外 ━< 注意事項 >━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Mach-2 または mach2p を使用されている場合は、同期転送を禁止して下さい。 S44PLAY.X,FMPPLAY.X は再生中だけ一時的に SCSI をソフト転送に切り替えるの で、同期転送モードになっていると正常に動作しません(ソフト転送に切り替え る理由は、バスマスタ転送中は割り込みを取りこぼして正常に再生できなくなる からです)。 データを変換しながらの再生には、68030 以上の MPU が必要です。68000 で PCM データを再生する場合は、あらかじめ FMP ファイルに変換してから再生し て下さい。FMP ファイルに変換してあれば、-int40 でディスクから読み込みな がらの再生が可能です。 CD の音声トラックを読み込みながらの再生には、音声トラックを 2 倍速以上 で取り込める CD-ROM ドライブが必要です。 再生中に PCM データが入っているメディアを抜かないように注意して下さい。 使用中のメディアを抜いてしまうと、その後の操作に支障をきたす可能性があり ます。 原則として、音源ドライバ類をすべて解除してから使用して下さい。 水平同期割り込みを使用する常駐ソフトウェアをすべて解除してから使用して 下さい。 垂直同期割り込みを使用する常駐ソフトウェアも、なるべく解除して下さい。 テキスト画面のスクロール(ラスタコピーを使用)もノイズの原因になります。 Timer-D 割り込みと Timer-C カウンタを使います。拡張操作モードでは Timer-A 割り込みも使います。 ━< FMP フォーマット >━━━━━━━━━━━━━━━━━━━━━━━━ FMP(FM-PCM)フォーマットは PCM データを FM 音源の TL レジスタに垂れ流 せる状態に変換したものです。 通常の PCM データ(拡張子が .s44 のファイルなど)を再生する場合はサン プリング周波数や PCM→OPM の変換を行わなければならないので再生の負荷が大 きくなりますが、FMP フォーマットのデータは変換を伴わないので遅い機種でも 再生できる場合があります。 ● FMP フォーマットの概要 FMP フォーマットのデータは、FM 音源 LSI(YM2151)の TL レジスタに直接 書き込む数値を時間の順序で並べたものです。ステレオの場合は left0→right0 →left1→right1→…の順序になります。ここで、leftN と rightN を再生する タイミングがサンプリング間隔の半分だけずれていることに注意して下さい(拡 張子が .s44 のファイルでは leftN と rightN が同時に再生されますが、FMP フォーマットの leftN と rightN は同時に再生されません)。 FM 音源 LSI(YM2151)の TL レジスタは 7 ビットで、$7F が最小、$00 が最 大の変位を表します。FMP フォーマット(v0.80)では、+ 側の変位と - 側の変 位を共に $7F〜$01 で表現し、$FF が出てきたときに符号を反転することになっ ています。なお、$00 は再生エンジンが内部で制御コードとして使用するので、 FMP フォーマットのデータとしては使えません。 ━< FMP ファイル >━━━━━━━━━━━━━━━━━━━━━━━━━━ FMP フォーマットのデータにヘッダを付けてファイルとして出力したものが、 FMP ファイルです。FMP ファイルの拡張子は .fmp を推奨しています。 ● FMP ファイルの構造 FMP ファイルは次のような構造になっています。 第 1 識別子(ファイルの種類を表す) .dc.l 'FMP ' 以降はセパレータ($1A)まで任意の文字列 S44PLAY.X でセーブした場合は次のようになる 1 行目はプログラムの識別文字列(タイトル) .dc.b 'S44PLAY.X 〜',13,10 2 行目は環境変数 S44PLAY の内容 .dc.b 'set S44PLAY=〜',13,10 3 行目は環境変数 CDROM の内容 .dc.b 'set CDROM=〜',13,10 4 行目はフルパスの実行ファイル名とコマンドライン .dc.b 'A:\BIN\S44PLAY.X 〜',13,10 セパレータ .dc.b $1A 第 2 識別子(以下の構造を表す) .dc.l 'S44P' FMP フォーマットのバージョン(現在は 0.80 のみ存在する) .dc.l '0.80' ヘッダのサイズ .dc.l 4+4 ;データ本体のサイズ以降を含まない ヘッダ チャンネル数 .dc.l ? ;1=モノラル,2=ステレオ サンプリング周波数(Hz) .dc.l ? ;44100など (バージョンが上がったときは、新しい項目をここに挿入する) データ本体のサイズ .dc.l ? データ本体 .dc.b 〜 ;FMPフォーマットのデータ 補足: ロングワードのフィールドはすべて Big-endian(Motorola 並び)です。 注意: 第 2 識別子以降に .dc.l で表記した項目がありますが、ファイルの先 頭からのオフセットが偶数になっているとは限りません。 ━< 技術的なことは… >━━━━━━━━━━━━━━━━━━━━━━━━ S44PLAY.X,FMPPLAY.X の技術的なことに関しては、激光電脳倶楽部 Vol.6 お よび Vol.7(満開製作所)または Oh!X 1999 年夏号(ソフトバンク)の関連記 事で解説しています。興味のある方はそちらを参照して下さい。 ━< お願い >━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ MPU の種類に応じてサンプリング周波数の変換方式や出力側のサンプリング周 波数のデフォルトが設定されていますが、調整が十分ではないので、デフォルト のままでは正常に再生できない場合があると思われます。また、逆にデフォルト の設定よりも高音質で再生できる場合があるかも知れません。 そこで、S44PLAY.X,FMPPLAY.X でうまく再生できなかった設定(コマンドライ ンスイッチの指定)と再生できた設定を、ハードウェアの環境と共に教えて下さ い。 動作状況の報告には以下の項目を含めて、なるべく詳しくお願いします。 綺麗に再生できたかどうか ファイルの再生か、CD の音声トラックの再生か、CDXA の再生か ファイルならばどの種類のファイルか まったく鳴らないか、途切れ途切れに鳴るか 鳴ってもノイズしか聞こえない状態かどうか ESC で復帰できるかどうか BREAK で復帰できるかどうか -mono/-stereo の指定 -lq/-hq/-sq の指定 -int の指定 -b の指定 -extra の指定の有無 -onmem の指定の有無 CD の音声トラックまたは CDXA の再生ならば、-sony/-toshiba の設定 CD の音声トラックの再生ならば、-force を指定するとどうなるか 再生はできなくても -c を指定すれば変換できるかどうか -c で変換できた場合は、その FMP ファイルを再生できるかどうか S44PLAY.X,FMPPLAY.X の表示内容(すべて) デバイスドライバと常駐プログラムの種類と設定(わかる範囲で) ハードウェアの環境の報告には、少なくとも以下の項目を含めて下さい。 本体の種類 例: X68000PRO[HD] バスクロック 例: 10MHz 例: 15MHz MPU アクセラレータの種類 例: 060turbo 例: Xellent30PRO MPU の種類 例: 68000 例: 68060 MPU の動作周波数 例: 16MHz 例: 33MHz SCSI インタフェイスの種類 例: 本体内蔵 例: CZ-6BS1 例: Mach-2(6415) CD-ROM ドライブの種類(機種名と Inquiry による識別子) 例: CDS-E [SONY CD-ROM CDU-55S \x00] S44PLAY.X は、CD-ROM ドライブの種類の自動判別に失敗した場合などに Inquiry を表示するようになっています。-sony/-toshiba を指定しないと CD の音声トラックを再生できなかったときは、再生できたときの -sony/-toshiba の指定と再生できなかったときの Inquiry の表示を報告していただければ、次 のバージョンから自動判別できるようにします。 ━< 今後の構想 >━━━━━━━━━━━━━━━━━━━━━━━━━━━ データの再生範囲を細かく指定できるようにする。 フィルタの種類やパラメータを増やす。 -sq のときの再生開始時のノイズを軽減する。現在はデフォルトで -fi12 に することで軽減しています。 その他。 ━< お約束 >━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ S44PLAY.X は、マシンのパワー不足を補うために、FMP フォーマット(特殊な フォーマットでしかも変換前のデータよりもかなり劣化しているので S44PLAY.X 以外では利用価値がほとんどない状態)でのみ、音のデータをファイルに出力す ることができる仕様になっています。短絡的に言うと CDDA や PlayStation の ソフトの CDXA データを FMP フォーマットに変換してファイルに出力すること ができるということになりますが、生成された FMP ファイルの利用は個人的な 範囲に限られます。市販の音楽 CD やゲームソフトのデータを FMP ファイルに 変換して他の人に渡したりインターネットなどで公開することは違法行為であっ て、著作権保持者だけでなく行為者の身内も含む多くの人に多大な迷惑をかける ことになるので、絶対にやってはいけません。そのような違法行為をされて結果 的にどのような事態になろうとも、私は一切責任を負いません。 S44PLAY.X,FMPPLAY.X は X680x0 のパワーを最大限に引き出して音のデータを 再生するためのプログラムです。正しく利用して下さい。 S44PLAY.X,FMPPLAY.X は正しく動作することを期待して作成しましたが、無保 証です。万が一、S44PLAY.X,FMPPLAY.X を使用することで結果的に損害を被った としても、S44PLAY.X,FMPPLAY.X を使用した人の責任になります。 ━< 配布規定 >━━━━━━━━━━━━━━━━━━━━━━━━━━━━ S44PLAY.X,FMPPLAY.X はフリーウェアです。配布に関しては、合法的かつ常識 的な範囲内であれば、特に制限は設けません。 ━< 謝辞 >━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ FM 音源で PCM データを再生する方法は、伊倉"DigitalJunkie"晴読氏が“志 村けんX”(月刊電脳倶楽部 VOL.78(1994 年 11 月号)掲載)や STPLAY.X (月刊電脳倶楽部 VOL.100(1996 年 9 月号)掲載)で使用された方法を元にし ています。同氏に感謝します。 CD の音声トラックを読み出す方法については、激光電脳倶楽部 VOL.2 に収録 されていた CD2PCMT.X v0.96A を参考にさせていただきました。作者の WATA 氏 および TNB 製作所さんに感謝します。 ADPCM→PCM 変換については、Oh!X 1992 年 6 月号「PCM8」(江藤啓氏著)、 ZVT.x v2.00(Z.NISHIKAWA 氏作)、PCM8A.x v1.01(philly 氏作)、PCM3PCM.x v2.15(NOZ 氏作)を参考にさせていただきました。各氏に感謝します。 S44PLAY.X,FMPPLAY.X の開発には以下のツールを使用しました。作者の方々に 感謝致します(敬称略)。 HAS060.X v3.09+87 Y.Nakamura/M.Kamada しゃれまっくす rel5c6 lika/homy/salt/peace/shuna/rima/sharl CDC.X v1.10H TNB製作所 動作報告を寄せて下さった皆さんにも感謝致します。 ━< 連絡先 >━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ S44PLAY.X,FMPPLAY.X に関する不具合の報告、感想、要望などは、下記までお 願いします。 E-mail: m_kamada@nifty.com ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ (EOF)