
● X68Sound.dll について

48kHz 再生に対応しました。

以下のアクセス関数で引数 samprate に 22050, 44100, 48000 を指定することができます。


・extern "C" int X68Sound_Start(int samprate=44100, int opmflag=1, int adpcmflag=1,
                                int betw=5, int pcmbuf=5, int late=200, double rev=1.0);

・extern "C" int X68Sound_Samprate(int samprate=44100);

・extern "C" int X68Sound_StartPcm(int samprate=44100, int opmflag=1, int adpcmflag=1,
                                   int pcmbuf=5);


● X68Sound_2248.dll（仮バージョン） について

X68Sound.dllを使用するソフトが対応しないと48kHz再生はできませんので、
とりあえず X68Sound_2248.dll という22kHz指定時に強制的に48kHz再生する特別バージョンを用意しました。
"X68Sound.dll" とリネームして御利用下さい。
X68Sound.dllを使用するソフトが22kHzで再生しろと命令しているのに、
48kHzのPCMデータを生成して再生しますので、ソフトによっては誤動作します。
44.1kHz指定時はそのまま44.1kHzで再生します。


● 動作必要条件

X68Sound.dll は基本的に PentiumII クラス以上のCPUを必要とします。

　○48kHz 再生時
　　・PentiumII 233MHz 以上の処理速度を持った Windows95/98/Me/NT/2000/XP マシン
　　・48kHz 16bit ステレオPCM出力が出来るサウンドカード 
　○44.1kHz 再生時
　　・PentiumII 233MHz 以上の処理速度を持った Windows95/98/Me/NT/2000/XP マシン
　　・44.1kHz 16bit ステレオPCM出力が出来るサウンドカード 
　○22.05kHz 再生時
　　・Pentium 150MHz 以上の処理速度を持った Windows95/98/Me/NT/2000/XP マシン 
　　・22.05kHz 16bit ステレオPCM出力が出来るサウンドカード 

● 使用許諾契約
・本ソフトウェアの使用または使用不能から生じるいかなる損害（利益やデータの損失、
　その他の金銭的損失など）に関してm_puusanは一切責任を負わないこととします。 

● 注意事項
・プログラムは無保証。OSの処理が重くなりすぎてディスクがとぶ可能性もあるので、
　エミュレータ実行中はなるべくディスクアクセスを行わないで下さい。 
・YamahaやRolandのソフトシンセをインストールしている場合は、
　それらのミキサーデバイスを使用しないで下さい。「コントロールパネル」−
　「マルチメディア」のオーディオデバイスの再生デバイスにはサウンドカード標準の
  デバイス(「SB16 Wave Out」など)を選択して下さい。
・betw(タイマー間隔),late(発声の遅れ時間),rev(時間調整値)の各値は
  サウンドカードや環境に依存しますので、調整して御使用下さい。

● 配布条件
・X68Sound.zip は、これを利用するプログラムの付属品として配布する事は構いません。 
・X68Sound.zip 単体をフリーウェアサイト等に登録・紹介することは一切禁止します。 

                                                     m_puusan

----------------------------------------------------------------------------------

X68Sound.dll 20020615+3 について。

m_puusan様制作のX68Sound.dllを周波数可変モードで動作するように修正したDLLです。

ファイルのプロパティでバージョンが[2002.6.15.3]になっていれば周波数可変対応DLLです。
本家X68Sound.dllのバージョンは[2002.6.15.1]です。

変更点は、StartPCMとSetSamprateの規定外周波数チェックを外しただけです。
恐らく62500Hzから指定周波数へのオーバーサンプリングをするだけだと思います。
他の拡張X68Soundと同じく、44kHz/48kHz以外ではLPFは無効になります。
また、DLLでPCM再生をさせる場合Start関数を呼び出すことになると思いますが、この場合規定外周波数を求めると22kHzモードに強制的にオーバーライドされますので注意してください。MDXWinでご使用の場合は関係ありません。
ちなみに、MXDRVg.dll+X68Sound.dllでも上書きすれば周波数可変モードが使えるはずです。

初めてVCを触ったので本当に48kHz以上(実際は62.5kHz)の音が出ているのかどうかは分かりません。
VC++6.0を持っている知人に環境を借りたのですが、まさかこのWindows時代にTelnetでログインしてコンパイルするとは思いませんでした。（笑）

変更点。

inline int Opm::StartPcm(int samprate, int opmflag, int adpcmflag, int pcmbuf) {
inline int Opm::SetSamprate(int samprate) {
の２つの関数で規定外周波数の22kHzオーバーライドコードを削除。
22kHzを求められたときは22kHzで合成します。

以上。これだけです。

-------
History

Version 2002.6.15.3 2003/10/24

規定外周波数の22kHzオーバーライドコードを削除。

Version 2002.6.15.2 2003/08/27

とりあえずやってみた。動くかどうか甚だ不安。
