マイク入力(キャプチャデバイス)とWAVファイルデータをミックスして出力するように改造している。もう少しでできそうなのだがヤル気が萎えてきているせいで遅々として進まない。寒いせいだろうか。
マイク入力(キャプチャデバイス)とWAVファイルデータをミキサースレッドでミックスするのだが、キャプチャとWAVファイルのフォーマットが違うとフォーマットをあわせる処理をしてミックス処理しなくてはならない。大幅にコードを変えたのでまず全体が動くかどうか確かめたい。ので2ch・16ビット固定でとりあえず実装している。
普通は入力データをfloatかdoubleに変換してそれをミックスやフィルタ処理をした後に出力フォーマットに変換するのだろう。固定小数点で処理できないかな。そうすれば内部的に何も処理しなければビットパーフェクトになる。floatやdoubleに変換してしまうとビット・パーフェクトという点で難しくなる。でもマイクとWAVファイルデータをミックスする時点でビットパーフェクトもクソもないか。
フォーマット変換処理部分はXbyakを使って実行時にアセンブルすると簡潔で速いコードが書けそうな気もするのでトライしてみようと思う。