リアルタイム信号処理をしたい
ラバース  2018/01/01(Mon) 21:18
マイクで録音→信号処理→再生
この流れを行うプログラムを作りたいのです。
そこで2つ疑問に思ったことがあったので質問します。

考えたのがRecorderをループ無し終了するように初期化して、録音されたWaveを取り出して信号処理をしてSoundで再生するというもの。
以下が実際に考えたコードです。

Recorder rec;
rec.open(0, 1s, RecordingFormat::S44100,false);

Wave wav(1s, 44100);
Sound sound(wav);

rec.start();
while (System::Update()) {
if (rec.isEnded()) {
Wave recwav = rec.getWave();
for (size_t i = 0; i < recwav.lengthSample; i++) {
wav[i] = recwav[i];
}
rec.start();
// 波形処理
sound.stop();
sound.fill(wav);
sound.play();
}
}

疑問
1. 録音時間の指定で、SecondsFを用いずサンプル数で指定したい
2. そもそもこの方法では録音停止から波形コピー終了までの間のデータが抜け落ちるのでより良い方法はないか
記事編集
Reputeless  2018/01/04(Thu) 00:55
http://siv3d.jp/bbs/patio.cgi?read=118&ukey=0 が参考になると思います。
編集
件名
Re: リアルタイム信号処理をしたい
名前
コメント
画像添付


投稿修正キー (投稿を修正する時に使います)
画像認証 (右画像の数字を入力) 投稿キー

- WEB PATIO -