【PureData Tips】Arrayの名前には必ず「$0」を含めよう!
おはようございます^ – ^
ナカジ(@cp_nakajun)です。
PureDataでパッチを組んでいく際の便利機能に「アブストラクション」という機能があります。
アブストラクションというのはオブジェクト指向のようなイメージで
同じ処理を複数使いたい時「別のpdパッチを読み込んで」使います。
例えば、下の写真のような「ステップシーケンサー」を複数使いたいような時に
ステップシーケンサーを別のパッチファイルとして作り、アブストラクションで読み込みます。
この写真のファイルもそう作ってあります。
しかし、この読み込まれたステップシーケンサーパッチでArrayを使っているので
メインのパッチに2つ以上読み込むと
同じ名前のArrayが存在することになるので
「warning:******* multiply defined」とエラー警告が表示され、実際きちんと動作しません。
その為、僕はこんな記事まで書いて複数のコピーを作っていました
なので、プロジェクトフォルダーは上記のような感じで同じ動作をするファイルが複数あるゴチャゴチャした状態になっていました。
ところが、ふとPuredataの黒本をパラパラめくっていたら
きちんと書いてあるじゃないですが、その解決方法が...
やはり定期的に見るべきですね。
では、アブストラクションの中でArrayを使う時に必須のルール!!!
Arrayの名前には「$0」を必ず含める
これはもうArrayを使う際の必須ルールにしようと思います。
そうしておけば、いつでもアブストラクション利用できるということです。
という訳で早速改修。
やり方は下記の画像のようにArrayの名前に「$0」をつけていくだけです。
これで無事、1つのステップシーケンサーパッチでアブストラクションリードができました。
https://blog.creative-plus.net/wp-content/uploads/20150617_pd_array-004.png
なんで「$0」で解決するのかというのはPureData黒本のP242-243を確認してください。