たとえば、ここは2個用意して交互に利用してるけど、
ttp://www13.plala.or.jp/kymats/study/MULTIMEDIA/waveOut_multibuf.html
こんな感じで2個3個を順に利用させる。
ttp://www7a.biglobe.ne.jp/~lshen/EternalWindows/Sound/WAVE/WAVE04.html

入力側も同じように、マルチバッファリングで処理する。

入力--WAVEHDRのマルチバッファリング-->FIFO-->出力のWAVEHDRのマルチバッファリング


プログラムの開始時は、
1waveOutPrepareHeade/waveInPrepareHeade で WAVEHDRを全部登録
2,waveOutPause
3,出力のWAVEHDRによるマルチバッファをwaveOutWriteで全部埋めて
4,入力のWAVEHDRによるマルチバッファを連続してwaveInAddBuffer
5,waveInStart

以後は、コールバックか窓メッセージで
最初の MM_WIM_DATA で waveOutRestar

入力はMM_WIM_DATA$3C0 出力はMM_WOM_DONE $3BD
それぞれ 帰ってくる WAVEHDRを再利用する
片方ではFIFOに書き出し、片方ではFIFOから読み出す。
どっちかの処理でエフェクトをかければいい