【PureData Tips】Arrayの名前には必ず「$0」を含めよう!

投稿日:2015-06-18


 
おはようございます^ – ^

ナカジ(@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を確認してください。

 

 

サポート募集中

この記事はお役に立てましたか。
よかったら、コーヒー ☕ をご馳走いただけたら励みになります。



PureDataの貴重な書籍



おすすめのクリエイティブ・コーディング関連カテゴリー

ウェブツール

機能はシンプルなものですが、p5.jsやTone.jsで描画したり音が出たりするので遊んでみてください。
・【Midi Number Tools】:MIDIナンバーから音名と周波数を判定します
・【Delay Time Calculator】:テンポに応じた音符の長さを判定します