チュートリアル:カスケードプラグインエフェクト
Create your own channel strip by learning how to daisy chain audio processors or plugins using an オーディオ・プロセッサ・グラフ. Learn how to use the オーディオ・プロセッサ・グラフ in both a plugin and standalone application context.
レベル:中級
プラットフォーム:Windows, macOS, Linux
クラス:AudioProcessor, AudioProcessorPlayer, AudioProcessorGraph, AudioProcessorGraph::AudioGraphIOProcessor, AudioProcessorGraph::Node, AudioDeviceManager,
はじめる
Download the demo project for this tutorial here: ピップ | ジップ. Unzip the project and open the first header file in the Projucer.
If you need help with this step, see チュートリアルProjucerパート1:Projucerを始める.
The demo project
このデモ・プロジェクトは、異なるオーディオ・プロセッサーを直列に適用できるチャンネル・ストリップをシミュレートしています。個別にバイパスできる3つのスロットと、オシレーター、ゲインコントロール、フィルターを含む3つの異なるプロセッサーから選択できる。このプラグインは、入力されたオーディオに処理を適用し、変更された信号を出力に伝搬します。
Setting up the AudioProcessorGraph
The オーディオ・プロセッサ・グラフ is a special type of オーディオプロセッサ that allows us to connect several オーディオプロセッサ objects together as nodes in a graph and play back the result of the combined processing. In order to wire-up graph nodes together, we have to add connections between channels of nodes in the order we wish to process the audio signal.
The オーディオ・プロセッサ・グラフ class also offers special node types for input and output handling of audio and midi signals within the graph. An example graph of the channel strip would look something like this when connected properly:
このブラウザではSVGを表示できません: 代わりにFirefox、Chrome、Safari、またはOperaをお試しください。
Let's start by setting up the main オーディオ・プロセッサ・グラフ to receive incoming signals and send them back to the corresponding output unprocessed.
In order to reduce the character count for nested classes used frequently in this tutorial, we first declare a 使用して
for the AudioGraphIOProcessor class and the Node class in the チュートリアルプロセッサー
class as follows:
using AudioGraphIOProcessor = juce::AudioProcessorGraph::AudioGraphIOProcessor;
using Node = juce::AudioProcessorGraph::Node;
次に、以下のようにクラス名を短縮してプライベート・メンバー変数を宣言する:
Node::Ptr audioInputNode;
Node::Ptr audioOutputNode;
Node::Ptr midiInputNode;
Node::Ptr midiOutputNode;
Here we create pointers to the main オーディオ・プロセッサ・グラフ as well as the input and output processor nodes which will be instantiated later on within the graph.
Next, in the チュートリアルプロセッサー
contructor we set the default bus properties for the plugin and instantiate the main オーディオ・プロセッサ・グラフ as shown here:
チュートリアルプロセッサ
: AudioProcessor (BusesProperties().withInput ("Input", juce::AudioChannelSet::stereo(), true)
.withOutput ("Output", juce::AudioChannelSet::stereo(), true))、
mainProcessor (new juce::AudioProcessorGraph())、