ディレイの実装例
ディレイは入力信号に数ミリ秒前の信号(ディレイ信号)を混ぜて出力するエフェクターです
パラメーターとして下記がよく利用されます。
パラメーター | 意味 | だいたいの範囲 |
---|---|---|
ディレイタイム | ディレイの時間 | 50ミリ秒~2秒程度 |
レベル | ディレイの効き具合(ディレイ信号の振幅) | 0~1の間 |
フィードバック | フィードバックの効き具合 | 0~1の範囲 |
実装は入力信号にディレイ信号を加えて出力します。ディレイ信号はリングバッファを使用して保存します。
リングバッファは「リングバッファについて」で作成したものを使用しています。
あくまで実装例ですのでいい音質のものがほしい場合は、ご自身で試行錯誤いただくようお願いします。
【実装イメージ】
上記はあくまで実装例です。
加えるディレイ信号やフィードバックで利用するディレイ信号を左右逆にしたり、フィルタをディレイ信号にかけてみるのも面白いかもしれません。
なお、for文の中やリアルタイム処理など音声処理中にディレイタイム(上記のtime変数)を変更するとクリップノイズのようなものが入る可能性があります。
変更時は一時的にディレイレベルを 0 にするか、ディレイタイムをゆっくり変更していく必要があります。
質問はコメント欄や掲示板、Twitterでいただけばとおもいます。
他のエフェクター実装例はこちらにもあります。 → エフェクターの簡単な実装例
■掲示板
■Twitterアカウント:@vstcpp URL:https://twitter.com/vstcpp