vvvv-Patchbox
vvvv-Patchbox
https://vvvv.org/contribution/vvvv-patchbox
VVVVに便利機能を追加するツールボックス的な感じのContributionsです。
テンプレート機能とかが追加されてだいぶ良い感じに捗ります。
機能一覧
- Patchlet テンプレート
- Operandomatic 計算系ノード生成
- IOScaler IOBoxのリサイズ時にフォントサイズ連動
- IOType IOBoxの種別を簡単に変更
- MagicIO IOBoxを行列数指定で生成
- Commander パッチウィンドウの操作
- SnapToGrid ノードの移動・リサイズ時のスナップ
導入
Contributionsのdownloadに載っているURLだと1ヶ所バグっているので、修正版をGitHubから持ってきたほうが良いです。
https://github.com/velcrome/vvvv-Patchbox/tree/change_iobox_type
Clone or download から Download ZIP で。
適当なディレクトリに配置したら、 Patchbox (VVVV).v4p を開きます。
そのまま Alt+R のショートカットで root.v4p が開くので、Patchbox
ノードが追加されていることを確認してください。
この状態で root.v4p を保存すればVVVV起動時にPatchboxが常にインクルードされた状態になります。
ただし、Patchboxのパッチウィンドウを開いたまま保存すると起動時に毎回開いてしまうので、Hideしてから保存した方が良いです。
Hideはノードを右クリックするか、サブパッチ上でAlt+3。
ちなみにPatchbox
サブパッチ内で個別の機能がON/OFFできるので、要らない機能は切っておくと良いかも。
Patchlet (テンプレート)
NodeBrowserからmake <テンプレート名>
でパッチにテンプレートを展開できます。
テンプレートは予めPatchletディレクトリにv4pファイルを入れておく必要があります。
デフォルトではmainloop, tty, render9の3つが用意されています。
MagicIO (動的IOBox生成)
col3
、io5x5
、toggle4x7
といった型と行列数でIOBoxを生成できます。
対応している型は io, int, bang, toggle, press, string, col, enumの8種類。
Operandomatic (計算ノード生成)
計算系ノード(+α)の生成を楽にするための機能です。
+100
、*2.5
、>0.1
のようにシンボル1文字+数値の入力で、任意の値を設定済みの計算系ノードが作れます。
カンマ区切りで値を入力した場合はSpreadを設定してくれます。
対応しているシンボルとノード、指定した値が設定されるピンは次の通り。
symbol | node | pin |
---|---|---|
+ | Add (Value) | Input 2 |
- | Subtract (Value) | Input 2 |
* | Multiply (Value) | Input 2 |
/ | Divide (Value) | Input 2 |
% | Mod (Value) | Input 2 |
@ | GetSlice (Spreads) | Index |
= | EQ (Value) | Input 2 |
< | LT (Value) | Input 2 |
> | GT (Value) | Input 2 |
i | I (Spreads) | .. To [ |
内部実装
だいたいこんな感じの流れ。
-
PatchAlias (VVVV ActivePatch)
ノードで編集中パッチファイルの情報を取得 -
GetPatch (VVVV)
のPatch Changes
ピンで編集されたXMLを読み取る - 読み取ったXMLを正規表現でパースしたりXMLを生成したりする
- 生成したXMLを
SetPatch (VVVV)
ノードで設定
もともとVVVV側で開発環境そのものを拡張するためのノードが用意されているみたい。
vvvv-Patchbox自体にもそれをサポートするようなサブパッチが含まれているので、似たようなパッチ作っていろいろ便利機能追加してみても面白そう。