JUCEにはAudioIODeviceという基本クラスがあり、DirectSoundやASIOはこれを継承し、具象クラスとして実装されている。
以前にも書いたが、JUCEの作者はすでにWASPIの共有モードでのAudioIODevice具象クラスWASAPIIODeviceを作成している。掲示板で見る限り良好に動いているようだ。
http://www.rawmaterialsoftware.com/juceforum/viewtopic.php?t=4404
しかし、やはりWASAPIは排他モードで行ったほうが、よりレイテンシの低いサウンド再生ができるので、私は排他モードで動かすIODeviceに拘り実装を続けている。
もう少しで音を鳴らせるのだけれど、とにかく音だけを出したいっていう方針で進めてきたので、多少強引なコードになってしまっている。
デバッグしていて気づいたのだけれど、今の自分の実装だと「エンドポイントはステレオで、In・Outはサンプリングレートが同じで周波数も同じが前提!」というコードになってしまっているので融通が利かない。この部分をいろいろなデバイスに可能な限り柔軟にサポートできるようにしようかなと思っている。
もうすぐまとまった休みが取れる(9日間)ので、そのときに一気に実装してしまいたいなと考えている。