poly~のUIをbpatcherで作ると捗る

bpatcher小技まとめpoly~:実体毎に個別のメッセージ/シグナルを送信する を応用して、poly~で実体ごとに個別の処理を制御するUIをbpatcherで作成するとめんどくさいけど楽に作成することができる。

RAY.MTRもこの方法を用いて作成しているので、RAY.MTRの中身を見ながら解説する。

引数によってpoly~の実体を指定する

これに限る。poly~の実体番号を利用することで個別のメッセージ/シグナルを send/receiveで送受信することができるので、実体番号をbpatcherの引数に与えることで、 個々の実体を効率よく制御できる。

この部分で8chのサンプラー&各種エフェクトを実装している。

展開するとこんな感じで

個々はbpatcherをコピーしただけ。ただし引数が全て異なる

1つのbpatcher内部にはこれだけの処理が入っている。 これを全て1つのパッチファイルにコピペ繰り返して、send/receiveの置き換えをやっていくのは非常に手間がかかる。

bpatcherの引数による名前空間を使うと1箇所変更するだけで、この場合約50のsend/receiveが更新される。 とっても楽ちん

bpatcher側は送受信先を引数で指定し、

poly~側は実体番号で送受信先が決定される。

RAY.MTR自体もbpatcherから呼び出し、引数で名前空間を作っている。 RAY.MTRに与えている名前空間は #0_RAY_MTR 。内部の名前空間はこれを継承する設計になっているので、 内外を結ぶsend/receiveの名前は全て #0_RAY_MTR_xxx となっている。 他のパッチと衝突することはない。