Pure Data入門講座 〜おまけ編〜 見た目をすっきりさせよう

By terada, 2016年5月20日


さて今回もおまけ編ということで、プログラムの見た目に関することを取り上げたいと思います。
eeePdでのプログラミングの基本は、様々な機能を持つボックスを線でつないで作り上げていくところにあります。しかし、このシンプルな書き方ゆえにちょっと複雑なプログラムを作ると、見た目がかなり悲惨なことになったりします…。というわけでなるべく見た目をすっきりさせるテクニックの一つ“send”, “receive”を紹介します。

 

信号を送って受け取ろう

“send”と”receive”の使い方はとても簡単です。“send”で信号を送って“receive”で信号を受け取るだけです! ちょっとしたサンプルプログラムを作ってみたのでその図を見ながら解説していきます。

bbb
図中の“adc~”はお馴染み音の入口になります。その先につながっている“send~ source”という部分が信号の送り先で、左下にある“receive~ source”が音の受け取り先で、そこから音の出口である“dac~”につながっています。sourceという部分は変数名でもちろん好きな名前をつけて使うことができます。このプログラムを動かすと、当然ですがマイクから入力した音がそのままスピーカから再生されるプログラムになります。ただしこれだけではまだ“send”“receive”のありがたみはよくわかりません。

この“send”“receive”が効果を発揮するのは、ひとつの信号を複数の場所で使う時です。つづいて下図のプログラムを見てください。

cc

このプログラムでは“loadbang”というプログラムを起動した時に“bang”を出力するボックスからの信号を“send”しています。ちなみに“send”は省略して“s”と表記することができます。この送られた信号を“receive”の省略“r”で受けて居ます。今回は受け取る場所が2箇所あり、一つ目が画面左側のDSPをオンにする命令の部分へ、二つ目がグラフの更新をオンにするtoggleボタンにつながっています。このようにプログラムを書くことで、起動した時点でDSPが音になりグラフが更新されるプログラムとなります。ただし、複数箇所で信号を受け取るときは、その順番が不明確になりますので、その点だけは注意してください。

dddさらにこの”send”と”receive”はスライダーやラジオボタンにも設定することができます。プロパティ画面にあるメッセージという項目のSendシンボルとRecieveシンボルに変数名を入力すると、自動的に数値の受け渡しを行ってくれます。ちなみにスライイダーやラジオボタンに、このSendシンボルとRecieveシンボルを設定すると、今まで表示されていたインレットとアウトレットがなくなるので注意してください。

さてなんとなく”send”と”receive”の使い方がわかったでしょうか? いまはまだそれほど大きなプログラムを作ってないので必要ないかもしれませんが、後々頻繁に使う機能だと思うので、記憶の片隅にとどめておいてもらうと良いと思います。プログラムの見やすさはバグの修正などにもとても役に立ちますので、ぜひ活用してください!

logo2

田園都市線三軒茶屋、セミナー・研修・講座のSoraoto。様々なセミナーやサイエンスカフェなどのイベントを開催しています。また英会話教室を始めとする、大人の学習講座もありますので、ぜひご参加ください。