プラグインのバスレイアウトがどんな風になっているか、Juce Plug-in Hostアプリで確認できるそうですね。
いろいろなバスレイアウトを試して確認してみましょう
チュートリアルでは、バスレイアウトの検証をmacのauval toolで行っています。そのため、そのあとのビルドしたPluginHostを利用して、バスレイアウトがどのようになるのかを確認する方法を見ていきます。今回は、チュートリアルで作成した「Juce Plug-in Host」の使い方のような内容になります。
チュートリアルページは次のページの「Testing With the Plugin Host」の項目となります。
こんな人の役に立つかも
・JUCEプログラミングに入門したい人
・VST、AUプラグイン開発の最初の一歩を踏み出したい人
・JUCEのチュートリアルをやっている人
HostPluginについて
JUCEには、プラグインのホストとして動作する「Juce Plug-In Host」というアプリケーションが存在します。今回は、このアプリを利用して、前回まで作成したバスレイアウトを確認していきます。
過去の記事にて、ビルドしていますので、ご参考ください。
頻繁に利用する場合、ビルドした実行形式ファイル(exe)をデスクトップなどにショートカットしておくとすぐに起動できて便利です。また、一度プラグイン自体のビルド先のフォルダをscanしておけば、プラグインをリビルドした際に、もう一度Plug-In Hostを起動すれば、プラグインの変更が反映されていますので、素早く検証ができます。
検証の方法
オーディオバスレイアウトがどのようになっているかをPluginHostアプリで確認します。
ビルドした「JUCE Plug-In Host」を開き、作成したプラグイン(GainPlugin)を読み込みます。
「Plugins」メニューから「CreatePlugin」を選択し、作成したプラグインを読み込むことができます。読み込むと次のようにプラグインが表示されます。
読み込んだプラグインの上で右クリックをすると、メニューが表示されます。「Configure Audio I/O」を選択します。
現在の設定は、GainPluginを呼び出すと、入力バスはステレオで、出力バスもステレオなので、次のように、それぞれ入出力の「Channnel Layout:」の項目に「Stereo」、「Stereo」と表示されていることがわかります。
GainPluginのバスレイアウトを変更
次のように、コンストラクタで、入力バスを「モノラル」、出力バスを「ステレオ」に変更し、プラグインをリビルドしました。
, AudioProcessor(BusesProperties().withInput("Input", juce::AudioChannelSet::mono(), true)
.withOutput("Output", juce::AudioChannelSet::stereo(), true))
Plug-InHostアプリで見てみると、入力「モノラル」出力「ステレオ」となっていることが確認できました。
無事、入出力が設定されているようです。
※ただ、今回はモノ→ステレオとオーディオバッファで何も設定をしていないので、Lチャンネルの音声はステレオのLにしか送出されていないような動作をしました。
Plug-In Hostアプリの入出力設定と検証
今まで、ホストとなるようなDAWを利用(Reper)してプラグインを検証してきましたが、ここになって、Plug-In Hostアプリにも入出力の設定ができるということに気づきました^^;
MIDI入力はまだ試していないのですが、音声入力は、次のように「Audio Input」を右クリックすることでパソコンのマイクなどに設定できますので、とりあえずの音声エフェクトをこのアプリだけで検証することができそうな雰囲気が出てきました。DAWなくて、フリーDAWインストールめんどくさい、という方の助けになるのではと思います。
これを少し改造して、適当な音声を発音するオシレータのようなものを設置すると、結構いい感じのプラグイン検証用アプリができそうです。
あふれんばかりのmax感・・・
バスレイアウトについて
バスレイアウト、という言葉に、今回のJUCEチュートリアルで初めて遭遇して、チュートリアルを見てきました。バスというとDAWではSendして音声にエフェクトをかけて、という高度な印象をうけていて、なにやらプラグイン内でも複雑なことをするのかな、と思っていました。
総合的には、「プラグインの入出力の設定」ということでよさそうでしょうか 笑
今回のチュートリアルで学んだことは、
①コンストラクタで音声の入出力設定
②IsBusesLayoutSupportで入出力の受け入れの決定
をする、という内容でした。
英語だととても難しく感じるのですが、内容としては、結構シンプルでした。
基本的なことなのでしっかり押さえておいてよいと思うよ~