3

オーディオディレイユニットを作成しています。基本的に、着信サンプルは循環バッファーに入り、書き込みポインターの後ろのサンプル数である読み取りポインターから選択されます。これらのポインターは、新しいサンプルごとに 1 ずつインクリメントされます。

さらに、非整数遅延を許容するために、実際には 1 サンプル離れた 2 つの読み取りポインターを持ち、双一次補間を使用して、浮動小数点遅延パラメーターに応じてそれらをブレンドします。(sinc補間などを使用できますが、まだ気にしていません。)

遅延が特定の値に設定されている場合、すべて正常に機能します。しかし、ユーザーがサウンドの再生中に遅延を変化させると、遅延タップの変更により、パチパチというノイズも明らかになります。おそらく、さまざまなサンプルで信号を拾い、オーディオ波形にランダムなステップの不連続性を導入しています。

この問題を回避する方法を知っている DSP オーディオ愛好家がいるかどうか疑問に思っていました。なぜなら、この効果が発生しないディレイ ボックスで遊んだことがあるからです。しかし、現時点では解決策が思いつきません。

4

3 に答える 3

3

ディレイを変更すると、常に何らかの歪みが生じます。欲しいものを選ぶだけです。

お気づきのように、ランダムな場所にドロップすると、あるサンプル値から次のサンプル値への急激なジャンプにより、多くの場合、可聴ポップが発生します。1 つのオプションは、オーディオを短時間だけミュートしてから、もう一度開始することです。それでも急すぎる場合は、数ミリ秒かけて値をゼロにスケールダウンし、数ミリ秒かけて新しいバッファ位置にスケールアップすることができます。(効果的に音量をすばやく下げて、新しい位置になったら元に戻します。)

Propellerhead の Reason は実際に録音のスピードアップとスローダウンをテープの遅延のようにシミュレートし、ヘッドを動かしています。これはかなり複雑です...新しいバッファの場所に到達するまで、バッファオーディオを動的に再サンプリングしています。

于 2013-10-12T23:24:49.950 に答える
0

サウンドの再生中にユーザーがディレイを変更すると、ディレイ タップの変更によるパチパチというノイズも明らかになります。おそらく、さまざまなサンプルで信号を拾い、オーディオ波形にランダムなステップの不連続性を導入しています。

うん。その通りです。これを回避する最も自然な方法は、遅延時間の変化を滑らかにすることだと思います。たとえば、200 ミリ秒の遅延から 500 ミリ秒にジャンプする代わりに、遅延効果は一定期間にわたって 200 ミリ秒から 500 ミリ秒にスムーズに変化する必要があります。このテクニックを使用すると、遅延時間がどれだけ速く変化するかに応じて、遅延オーディオが低下または上昇します。

この手法により、エイリアシングが発生する可能性があります (Bjorn Roche がコメントで示しているように)。それが問題である場合、1 つの解決策は、帯域制限された補間を使用することです。

于 2013-10-14T07:08:39.400 に答える