[MaxTips_5]VSTプラグインを作る(AUも)

以前Maxでのプラグイン作成について聞かれたことがあったので、復習もかねて簡単にまとめてみます。

まず、プラグインの作成にはMaxMSP、ホストアプリへの読み込みには実行環境としてPluggoが必要です。

製品版の方にはMaxで作られた面白いプラグインが多数付属していますが、無償版のPluggo Runtimeでも問題なく自作プラグインを利用することができます。

出力は基本的にVSTプラグインという形になりますが、macの場合はAUプラグインとしても機能します。(後述)

では早速重要なポイントをおさらい

プラグイン作成に関するドキュメント、サンプルパッチは”/Applications/Pluggo/Development Materials/”下に入っています。

まず、オーディオ処理やメッセージの流れなど、プラグインの核になる部分は普段のMaxと全く同じ感じで構いません。

プラグイン定義や、オーディオ、MIDI、パラメータの受け渡しに関する部分でのみ特別なオブジェクトを使うことになります。

プラグイン関連オブジェクト

・plugin~、plugout~(オーディオの入出力)

・plugmidiin、plugmidiout(MIDIの入出力)

・plugconfig(プラグインの定義)

・plugsync~などの同期オブジェクト

・ppなどのパラメータ制御オブジェクト

少し面倒なのがplugconfigオブジェクトで、プラグインの表示や振る舞いに関する設定やプリセットの保存などに使います。

基本的に表示などの設定は、plugconfigオブジェクトをダブルクリックして出てくるエディタ上へのスクリプトの記述で行います。

様々なスクリプトの内容に関してはMaxBookに記載されていますので詳しくはそちらでお願いします。

MaxBookには記載されてませんが、

#C synth;

の一行を加えることで、プラグインがインストゥルメントとして認識されます。

文章ばかりになってしまったのでここからは実際のビルド方法までを画像メインで説明します。

サンプルパッチ ダウンロード

1、オーディオエフェクト(音の入出力、BPMの取得)

maxtips5-1.png

2、プラグインインストゥルメント(MIDI入力)

maxtips5-2.png

3、MIDIエフェクト(MIDI出力)

maxtips5-3.png

※テスト環境に使用したAbleton Liveではエフェクトプラグインを最上段に配置することができなかったので、MIDIエフェクトをインストゥルメントプラグインとして書き出し、音源となるシンセをエフェクトプラグインとして書き出すというややこしい方法をとりました。もし別に方法があれば是非教えてください。

※注 3のノートランダマイズに関しては、本来ランダマイズされたノートを記録して、ノートオフ情報を対応するノートナンバーに送る必要がありますが、なかなかめんどうな処理になりそうだったので今回は省いています。音源にポリシンセを用いた場合などはかなりの確率で音が出っぱなしになります。

ビルド手順

1、FileメニューからBuild Collective/Application/Plug-in…を選択

maxtips5-4.png

2、エクスターナルオブジェクトなど使用している外部ファイルを’Include’して’Build’

maxtips5-5.png

3、VSTプラグイン用のフォルダー(macなら”/Library/Audio/Plug-Ins/VST/”あたり)に’VST plug-in’フォーマットで保存

maxtips5-6.png

これでホストアプリを立ち上げると認識されるはずです。

作成したプラグインをAUプラグインとして使う

Maxで作ったプラグインをAudio Unitとして使うには、pluggoをインストールした際に一緒にインストールされているAudioUnit Scanというアプリケーションを使います。

maxtips5-7.png

起動するとVSTフォルダ内を検索し、Audio Unitとして認識できるようにしてくれます。

maxtips5-8.png

maxtips5-9.png

ときどきこのような警告が出ますが、これはプラグインの識別IDが重複しているときに現れます。

こんなときはplugconfigオブジェクトの uniqueid に続く3つの数字を変えてみてください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>