> そもそも、あるソフト(この場合はMuse)がwaveデバイスで演奏中に、 > 後から排他モードのソフトが割り込んでくる方がお行儀が悪い、
もしかしたら気分を害されるような表現になってしまう かもしれませんが、
WASAPI 排他モードは OS に標準で組み込まれた機能です。 排他モードのソフトに割り込まれた側が適切にエラー処理を 行わずに強制終了 or フリーズしてしまうのもある意味行儀 が悪い、と言えます。
最初の投稿で少し書きましたが、対処方法はそんなに難しい ことではなくて、
waveOutWrite (またはその他の waveOut 系 API)の戻り値が MMSYSERR_NOERROR 以外を返して失敗したら処理を中断する
ざっくり書くとおそらくこれだけで解決します。戻り値の 詳細まで調べる必要はありません。API の呼び出し頻度から して、戻り値のチェックをしたところで高速化に影響すると も思えません。
> そのソフトは、別のソフトに支障がない状態を確認してから、
私の知る限り、WASAPI 対応のソフトでそこまで行うものを 見たことはありません。
WASAPI 対応の他のソフトに対応してもらうのを待つより、 自らのソフトの方で対策した方が確実かと思います。
もちろん、修正すべきかどうかは開発者様で判断されれば 良いことです。
なんか喧嘩腰に感じてしまったならごめんなさい。
おそらく Muse で VSTi を使った再生環境まで構築出来る人 なら、他のソフトによる WASAPI の再生環境も普通に構築出 来ると思います。私が遭遇した不具合を経験するのも、そう 珍しいこととも思えません。
もし似たような報告が他にも来て、対応する気持ちになった ときには、今回の私の投稿を参考にしてみて下さい。
もし開発者様の環境で、私が示した方法で再現が出来ない なら対策もしようがないと思いますし、再現できたとしても 解決方法として提示した方法が的外れな可能性はあります。
|