オーディオプラグインの作成パート1:イントロダクション
Welcome! このチュートリアルシリーズでは、VST、VST3、AU、RTAS、AAX、またはスタンドアロンアプリケーションとして実行するオーディオプラグインを作成する方法を学習します。
オーディオプラグインは、ホストソフトウェア(Ableton Live、Logic、REAPERなど)にロードされるプログラムです。 彼らは、オーディオおよび/またはMIDIデータを処理し、グラフィカルユーザインタフェースを持つことができます。 ここに3つの例があります(U-He Zebra、Sonalksis FreeG、およびD16Decimort):
あなたが見ることができるように、GUIは通常、プラグインが受信データを処理する方法を変更するいくつかのコ プラグインには、すべてのノブの位置やその他の値を格納するプリセット(スクリーンショットではコンボとエミュレータと呼ばれます)があります。
簡単な歪みプラグインから始めます。 その後、この減算シンセサイザプラグインを段階的に作成します:
C++とWDL-OLライブラリを使用します。 それはCockos WDL(whittleと発音される)に基づいています。 それは基本的に最も重要なのは、私たちのために多くの仕事をします:
- 既製のXcode/Visual Studioプロジェクト
- 1つのコードベースからVST、AudioUnit、VST3、RTAS形式を作成します。
- 32/64ビット実行可能ファイルの作成
- プラグインをスタンドアロンのWin/Macアプリケーションとして実行させる
- オーディオプラグインで使用されるほとん このフォーラムのスレッドは、WDLを使用して行われたプラグインの多くのスクリーンショットを持っています。
異なるプラグイン形式はすべて多かれ少なかれ同じなので、通常はコードにたくさんのコピー&貼り付けがあります。 プログラマとして、あなたは乾燥したままにしたいので、遅かれ早かれ、さまざまな形式の抽象化レイヤーを書くことになります。 この作業はすでにWdlの一部であるIPlugの形で行われています。 これらは、オーディオプラグインの開発の迷惑な部分ですので、我々は今、次のような楽しいものに焦点を当てることができます:
- プラグインが着信オーディオ/MIDIを処理する方法
- プラグインがどのように見えるか
- ホストとの統合方法(オートメーション、プリセットなど。)
wdlについてのもう一つの良いことは、その寛容なライセンスです:あなたは商用アプリケーションのために自由に使用することができます。 詳細については、上記のリンクを参照してください。
これをどうするか
チェイスはキャッチよりも優れています。
プログラミングでは、結果はやりがいがありますが、旅は私たちが学ぶ場所です。 このチュートリアルシリーズでは、完璧なソリューションを使用して長いコードリストを提供するだけではありません。 私たちは、問題に直面するとすぐに動作し、それを改善するものから始めます。
欠点は、後でより良いものに置き換えるコードを書くことです。 プログラマとして、あなたはおそらくそれに慣れています。 最初の利点:私たちはちょうどそこにジャンプするのではなく、ステップバイステップのソリューションに近づくので、それは圧倒的ではありません。 第二の利点は、我々は道に沿って貴重なプログラミングの教訓を学ぶかもしれないということです。このシリーズは複雑な数学を手作業で計算することではありません。 それは彼らが太ったベースラインを作ることができるように、あなたの音楽プロデューサーの友人に与えることができる素晴ら必要なもの
- Xcode4以降を実行しているMac、またはVisual C++2010以降を実行しているWindowsシステム。 私はMacを使用しますが、Windows上のほぼすべての情報も使用できます。
- C++のいくつかの理解(構文、ポインタ、基本的なOOP、メモリ)。 C++は非常に難しいと聞いたことがあるかもしれませんが、高度なものをあまり使用するつもりはありません。
- 一般的な(デジタル)オーディオに関するいくつかの知識: 振幅と周波数が何を意味するのか、フィルタが何をするのか、オーディオがサンプルレートとビット深度でどのように保存されるのか。 あなたが前に音楽を録音または生産したことがあれば、あなたはおそらくうまく設定されています。
- デジタル信号処理とGUIプログラミングへの関心:これらは、このシリーズの二つの主要なトピックになります。 DSPに関する事前の知識がまったくない場合は、ある時点でいくつかのトピックを読む必要があるかもしれません。 私はそれが事実である時はいつでもそれ以上の読書タイプリンクを提供することを試みる。
役に立つリソース
後で役立つリンクをいくつか紹介します:
- Stack Overflow:あいまいなコンパイラ警告のようなものを検索し、それらが何を意味するのかを調べます。
- DSPガイド:非常に良い無料の本、おそらく私たちが使用するよりも多くをカバーしています。 途中のどこかでDSPの概念を理解していない場合は、それを参照してください。
次回は、私たちが始めるために必要なすべてを設定します!