「発車ベルスイッチ」で、サウンドの秒数が正しく表示できないバグが見つかりました。環境によるのかファイルによるのかわかりませんが、最も標準的なWAVEファイルを書き出すと思われる「アクセサリ」の「サウンドレコーダー」を使って保存したファイルでも表示がおかしくなります。そもそも、DirectSoundを利用するために利用している「VBDSND2.DLL」がおかしな値を返してきます。
また、ブログでも書きましたが、WindowsVistaで「発車ベルスイッチ」が正常に動作しません。以前、[258]で指摘いただきましたが、どうも[261]とは異なる状況のようです。「VBDSND2.DLL」に頼るのは卒業しないといけない時期が来た、ということかも知れません…。
・[36]
> 現バージョン(といっても2年近くも更新していません、すみません)
というわけで、「発車ベルスイッチ」の前回のバージョンアップから再び2年も経ってしまわないうちに新バージョンをば…と構想しています。
VB6.0から使えるDirectXは8.0までのようですが、既にSDKの入手が難しくなっているようです。と、2004年12月にダウンロードしておいたものがそのままハードディスクの中に見つかりました。
これにはVBで書かれたサンプルが入っているのですが、ちょっと見たところ極めて少ない量のコーディングで3Dサウンドも各種エフェクトも実装できるようです。マイクからの録音もできそうな感じです。
試しに「SoundFactory」の効果音CD「SOUND STAFF VOL.10」のトラック38「J-26」をWAVEファイル化したものを読み込み、DirectXにデフォルトで組み込まれている「ParamEQ」と「WavesReverb」のエフェクトを適用してみました。パラメータをそれなりにいじると(ParamEQ:Center=2000,Bandwidth=18,Gain=15、WavesReverb:ReverbTime=1600など)、中音域しか出ないスピーカーが階段のウラで鳴っている感じが出せました。いくつかの典型的なスピーカーの特性と駅舎の形態をプリセットしておけば、手軽にあちこちの駅の音環境を再現して遊べるのではないかと思います。
・http://www.soundfactory.co.jp/ssconte/SS10.html
※利用規約上、サウンドにエフェクトをかけただけでは配布できないようなので、音のサンプルは掲載できません。あしからず。DirectXのフィルターが使えるオーディオ編集ソフトを使って上記のエフェクトをかけていただき、それがリアルタイムで、プレーヤー側でできる、というのを想像していただければと思います。
マイク入力にリアルタイムでエフェクトをかけることができるのかどうかわからないのですが、もしできれば「誰がしゃべっても駅のアナウンス(or車内アナウンス)に聞こえる」というような機能をつけることもできるかも知れません。イベント等の出し物には重宝するのではないでしょうか。
現バージョンの「発車ベルスイッチ」で利用している「VBDSND2.DLL」は、2000年ごろ、DirectX6に合わせて作られています。DirectX8に対応するだけでかなり高度な機能が搭載できそうですので、「発車ベルスイッチ」の次期バージョンはDirectX8対応で新しく作るのがよさそうです。
「発車ベルスイッチ」には余計な飾りのウィンドウを追加せず、初版のようなシンプルな状態に戻したいと思います。その代わりに、より詳細かつ込み入った設定ができる、キーボード全体を使って次々に異なる音を再生できるようなソフトを別に作りたいと思っています。
なお、DirectX SDKのサンプルをコンパイルしたものをVistaで起動してみましたが、発車ベルスイッチの現バージョンと同様、「DirectMusicが初期化できません」というエラーが出てしまいました。私の環境ではVistaできちんと動くサウンドドライバが見当たらず、なかなか動作確認ができません。新しいPCを用意しようと画策中ですがすぐにできることでもなく(…)、Vistaにきちんと対応できるのは、Vistaの発売後しばらく経ってからということになるかも知れません。どうぞご了承ください。