【PureData】このオブジェクトは知っておけ!オーディオシグナルのルーティングに便利な[throw~][catch~]オブジェクト。
おはようございます^ – ^
ナカジ(@cp_nakajun)です。
久しぶりのpuredataネタです。
相変わらずコツコツとpatchを組んでます。
僕はジェネレーティブミュージック(生成系音楽)をやるためにpuredataを使ってpatchを組んでいるのですが
先日、ミキサーのルーティングをやっているときに
[throw~][catch~]オブジェクトはこういうときに使うのか!!
このオブジェクトは便利だな〜
puredataで音楽やりたい人は知っておくべきオブジェクトだな、と
そう感じたので、既にpuredataマスターの人は置いておいて
これから始める、ないしはビギナーが検索したときに助けになれればいいなと思い
紹介しておきたいと思います。
[send~][receive~]オブジェクト
まず、オーディオのルーティングで使うオブジェクトでスタンダードだと思われるのは
[send~][receive~]
直接「結線」することなくオーディオシグナルを別のオブジェクトに送れます。
ただし、このオブジェクトは単純にオーディオシグナルの受け渡しをしているだけなので
例えば各トラックを最終的にまとめて[dac~](オーディオアウト)に送る際は[+~]で繋いであげる必要があります。
ミキサー付近がこうなります。
コレの不便なのはトラック数、音源数が増えるごとに[+~]が増えていくこと
面倒なだけじゃなく、僕的にはpatchが見づらく汚く見えるのもイヤですね。
でこういう時に[throw~][catch~]オブジェクトを使います。
[throw~][catch~]オブジェクト
わりと似たような動作をするオブジェクトですが、このオブジェクトは
[throw~]に入力された信号を[+~]して、[catch~]に送ります
なので、上記の画像のpatchと下記の画像は同じということになります。
patchも綺麗ですねぇ
ただし、このオブジェクトには注意点があります。
[throw~][catch~]の注意点
それは
- [throw~]は同じ引数(名前)を持つオブジェクトを複数持てます
- [catch~]は同じ引数のオブジェクトは1つしか持てません
こういうことです。
まぁ、考えると納得いくことですよね。
少しでも参考になれば幸いです。
puredataに興味を持った方は
puredataってなんだ?
と思った方は、よかったら僕が以前書いた紹介記事がありますので
ちょっと読んでみてください。
音楽・メディアアートを作るプログラミング環境!ピュアデータ編
さらに興味を持って「やってみたい」と思った方は少しお値段は張りますが
美山千香士さんの書かれた
「Pure Data -チュートリアル&リファレンス-」
がオススメです。
ビギナーの方にも優しい丁寧な解説もありますし
巻末にオブジェクトリファレンスがついてるので
patchをある程度組めるようになってからでも使えます!
僕も今回、最終的にはリファレンスも見ましたし
長く使える書籍です。
手元に置いておいて損はないでしょう。
もっと優しく入りたい方はこちらもオススメです。
「レシピブック」なので初心者の方は実際に動作させながら覚えていけると思います。