Pattrstorage

こちらでは、Max/MSPのパッチを使用したライブパフォーマンスを出来るようになるまでの過程、注意点等に絞り、経験則より紹介して行く予定です。

Cycling’74社のフォーラムは英語のみとなり、Max/MSPをこれから学ぼうという方には若干敷居が高い部分がありますが、多くのトラブルはフォーラムを探せば解決することが殆どです。まずは上記のフォーラムをSearchすることをお勧めします。

さて、Pattrstorageオブジェクト。

ライブで音色プリセットを切り替えたりする際、恐らくPresetとPattrstorageのどちらかを使用することになるでしょう。

ですが、Pattrstorageでは、Presetでは出来ないことが多く有ります。例えば、

① @changemode
② @subscribemode
③ 各データのPriorityの設定
④ @greedy

ライブパッチを組む際には、或るプリセットを呼び出した時のMaxメッセージの処理量が膨大になることが多々有り、パッチの不安定、フリーズの原因となります。

① @changemode [0(default) or 1] 1に設定すると、プリセット番号が呼び出された際、変化の無いパラメータをフィルターし、変化したもののみを呼び出します。
このことで、Max側で処理するメッセージの量をかなり削減することができます。

② @subscribemode [0(default) or 1] 1に設定すると、Subscription modeがオンになり、Pattrstorageに追随するパラメータを「subscribe/unsubscribe」メッセージにて自分で足して行くモードとなります。

※音色パラメータとシーケンスパターンのパラメータを別々の(複数の)Pattrstorageで管理したい場合、このAttributeはかなり有効です。
※Max5では、バグがあるのか、フリーズしてしまうユーザーがCycling’74のフォーラムに投稿しています。

③ Priority
PattrstorageオブジェクトをダブルクリックするとPattrstorageのClientリストが表示されます。2列目のPriorityは、プリセットが呼び出された際の各パラメータの呼び出しの優先度を設定できます。(0が最優先で、数字が増えるにつれ後に処理されることとなります)

優先順位の低いパラメータにはPriorityの順位を下げることで、プリセット呼び出しの際の負荷を軽減できます。

④ @greedy [0(default) or 1] 1に設定すると、bpatcher以下にあるScriptname付きのオブジェクトを探しに行ってくれ、clientリストに追加してくれます。
ライブパッチを組む際には、音の音色部分やシーケンス部分など、それぞれの機能に分けユニット単位でパッチを構築して行くことになると思います。このAttributeを使用することで、親パッチより下の階層のパラメータをコントロールできるようになります。

※親パッチから下の階層への方向のみ有効となり、上の階層へはscriptnameの付いたオブジェクトを探しに行ってくれません。