このリポジトリは、Joshua D. Reiss と Andrew P. McPherson による書籍『Audio Effects: Theory, Implementation and Application』の説明に基づいて実装されたオーディオ エフェクト プラグインのコレクションであり、貢献のある書籍に付属しているコードを例として挙げています。 Brecht De Man などによる実装。
実装されているオーディオ効果は次のとおりです。
テンプレート タイム ドメインは、線形および対数スライダー、トグル、コンボ ボックスを備えた汎用グラフィック ユーザー インターフェイスを実装します。このプロジェクトでは、オーディオ プロセッサと汎用エディタ (GUI) の両方で自動化可能なプラグイン パラメータを追加、セットアップ、使用するための多くの複雑さをカプセル化するオーディオ パラメータのカスタム クラスを導入します。このプラグインは入力に特に興味深い処理を適用するものではなく、タイム ドメイン オーディオ処理エフェクトのテンプレート プロジェクトにすぎません。
テンプレート周波数ドメインは、短時間フーリエ変換クラスを実装します。このプラグインは入力に処理を適用せず、オーバーラップ加算法を使用して入力ブロックを周波数ドメインに変換し、時間ドメインに戻すだけです。このプラグインは、周波数ドメインのオーディオ処理エフェクトのテンプレート プロジェクトとして使用されます。
Delay は、循環ディレイ ラインを使用したフィードバックとミックス コントロールを備えた基本的なディレイを実装します。単純な線形補間を使用して、端数の遅延時間を実現します。
ビブラートは、低周波発振器 (LFO) を使用して入力信号の遅延を変調し、ピッチの周期的な変動をシミュレートします。このプラグインでは、さまざまなタイプのサンプル補間が導入されています。
フランジャーは、入力信号のコピーを可変の遅延時間で遅延させ、オリジナルのサウンドと混合する、遅延ベースのオーディオ エフェクトをシミュレートします。これにより、このクラシックなオーディオ エフェクトの特徴的な「シューッという音」サウンドが生成されます。
コーラスは、さまざまなミュージシャンが同じ曲を同時に演奏するときに発生する現象をシミュレートします。つまり、ピッチと時間の小さな変化を持つ入力信号のコピーを作成し、単一のソースを多数の個別の録音であるかのように聞こえさせます。
ピンポン ディレイは、基本的なディレイのステレオ バージョンです。ピンポン ディレイでは、ディレイ信号が左チャンネルと右チャンネルの間でバウンスします。
パラメトリック EQ は、さまざまなタイプのパラメトリック フィルター (ローパス、ハイパス、ローシェルフ、ハイシェルフ、バンドパス、バンドストップ、ピーキング/ノッチ) を実装します。カットオフ周波数、品質係数 (帯域幅)、およびゲインに応じて、1 次および 2 次のフィルターを選択および調整できます。
ワウワウは、入力サウンドに音声のような文字を挿入するオーディオ エフェクトです。レゾナントローパス、バンドパス、またはピーキング/ノッチフィルターのカットオフ周波数をスライダーで変更するマニュアルモード、または、フィルターは、LFO、入力信号のエンベロープ、またはその両方の組み合わせで制御されます。
フェイザーは、カスケード構成でオールパス フィルターを使用して、入力信号に位相シフトを導入します。これらのシフトにより、フィルタリングされた信号が元の信号と混合されるときに周波数スペクトルにノッチが作成されます。フェイザーはフランジャーと同様のエフェクトを生成しますが、ノッチの位置をより細かく制御できる可能性があります。
トレモロはLFO を使用して入力信号の振幅を変調します。これは、信号レベルの小さな変動をシミュレートしたり、単一の持続音を一連の速い繰り返しに変えたりします。
リング変調は、入力信号に周期的な搬送波を乗算した結果です (トレモロに似ていますが、周波数が高くなります)。これは、非常に不調和なサウンドを作成する非線形オーディオ エフェクトです。
コンプレッサー/エキスパンダーは、 4 つのオーディオ プロセッサー (コンプレッサー、リミッター、エキスパンダー、ノイズ ゲート) を 1 つに実装します。コンプレッサー/リミッター構成は、スレッショルドよりも高いゲインを持つ入力サウンドのセクションを減衰させることにより、信号のダイナミック レンジを減少させます。エキスパンダー/ノイズ ゲート構成は、スレッショルドよりも低いゲインで入力サウンドのセクションを減衰することにより、ダイナミック レンジを増加します。
ディストーションは、入力サウンドに非線形変換を適用し、そのゲインを限界まで増加させ、耳障りな、ファジーな、またはザラザラしたサウンドを作成します。さまざまな非線形関数を選択し、出力ゲインを個別に制御して元のラウドネス レベルを復元することができます。ハイシェルフフィルターを使用して、出力サウンドのトーンを制御することもできます。
Robotization/Whisperization は、フェーズ ボコーダー アルゴリズムに基づいて 2 つのオーディオ エフェクトを実装します。このプラグインは音声サウンドで使用することを目的としています。ロボット化により、フォルマントを維持しながら信号に一定のピッチが適用され、その結果、ロボットの声のように聞こえます。ささやきは、フォルマントを維持しながら音程感を排除します。その結果、誰かがささやいているように聞こえます。
ピッチ シフトは、フェーズ ボコーダー アルゴリズムを使用して、持続時間を変更せずに入力信号のピッチを変更します。これは、ピッチシフトパラメータの継続的かつスムーズな変更を可能にするリアルタイム実装です。
パンすると、左右の 2 つのチャンネル間で音源の見かけの位置が変わります。これは 2 つのモードで使用できます。最初のモードでは、優先効果と正接の法則を使用して、左右の信号の時間遅延とゲインを調整します。標準のステレオ レイアウトを想定したスピーカーでの再生に適しています。 2 番目のモードは、頭部の球面モデルを使用して両耳間時間差 (ITD) と両耳間レベル差 (ILD) を推定します。ヘッドフォンでの再生に適しています。
これらのプラグインは、さまざまなプラットフォーム (Windows および macOS) および複数の形式 (VST、AU、RTAS、AAX など)、およびスタンドアロン アプリケーション用のオーディオ プラグインを構築するためのフレームワークを提供する JUCE を使用して実装されます。ターミナルで次のコマンドを実行すると、このリポジトリのクローンを作成し、すべてのプロジェクトのビルドに使用された JUCE の最新バージョンをチェックアウトできます。
git clone https://github.com/juandagilc/Audio-Effects.git
cd Audio-Effects/
git submodule update --init
コードは Juan Gil https://juangil.com/ によるものです。著作権 © 2017-2020 フアン・ギル。
このプログラムはフリー ソフトウェアです。Free Software Foundation が発行する GNU General Public License の条件 (ライセンスのバージョン 3、または (ユーザーの選択による) 以降のバージョン) に基づいて再配布したり、変更したりすることができます。
このプログラムは役立つことを期待して配布されていますが、いかなる保証もありません。商品性や特定目的への適合性についての暗黙の保証もありません。詳細については、GNU 一般公衆利用許諾書を参照してください。
このプログラムと一緒に GNU 一般公衆利用許諾書のコピーも受け取っているはずです。そうでない場合は、https://www.gnu.org/licenses/ を参照してください。