2011年5月17日火曜日

Puredata で簡易サンプラー その2

前回は Puredata(以下 Pd) で簡易サンプラーを作成しました。
今回はPduino を使って Arduino に接続したスイッチに反応させます。

Pd は配線が込み入ってくると、なんだか分からなくなってしまいます。
Pduino のサンプルは最初から凄いことになっているので、不要なところは消して行きましょう。

こんな感じになりました。


最初に IO ポートの設定をします。
StandardFirmata_2_2_forUNO_0_3 の場合、初期値は
・A0-A5 はアナログ入力
・D0,D1 は通信用のため使用不可
・D2-D13 はデジタル出力 (初期値:LOW)
になっています。

今回はD11 を入力(スイッチを接続)、D13 を出力(LEDを接続、またはボード上の[L]) にします。... (1)
input に指定しただけでは、内蔵プルアップが ON にならないようです。
そこで、(2) の [digital 11 1( というメッセージでプルアップを有効にします。

Arduino にスイッチ(SW) を接続してみましょう。
(スイッチが無くても、D11 とGND をショートすれば、スイッチの替わりになります。)


この状態で、(4) のトグルが、D11 に接続したスイッチに反応することが確認できます。
(反応しない場合は、Firmata との通信ができているか確認してください。)

(3) の [digital 13 $1( というメッセージは、上のトグルをON/OFF すると、
[digtal 13 1( と[digital 13 0( が交互に送られます。これにより、Arduino のボード上のLED (L) がON/OFF します。


次に、(4) のD11 と、(3) のD13 を接続します。... (5)
これで、スイッチのON/OFF で、LED のON/OFF ができます。
(論理は反転しています(スイッチON でLED OFF)。間に[== 0] をいれれば、再度反転してスイッチ ON で LED ON になります。)

次に、スイッチON のときに、Bang を送るようにします。トグルにそのままBang を接続すると、ON/OFF の両方でBang が出てしまうので、[sel 0] で、トグルがOFF (D11 のスイッチがON) になったときだけ、Bang を出すようにします。 ... (6)

これで、スイッチが押されたときに Bang が出るようになりました。
(D13 のLED は確認用なので、接続しなくても構いません。)

この後は、前回のサンプラーのBang (Play_1) と、今回のBang を接続すれば完了です。
どちらかをコピー&ペーストして、1つのファイルにしても良いのですが、別の方法もあります。Bang のProperties (右クリックして選択)を表示します。


Messages という欄に、send-symbol, receive-symbol という項目があります。
このsend - receive は、線でつないだときと同じように、指定したsymbol 同士を接続する機能です。
この接続は別ウインドウでもOK です。つまり、前回のファイルと、今回のファイルを同時に開いておき、今回のBang にsend-symbol を、前回のBang にreceive-symbol を指定する事で、ウインドウをまたいだ接続ができます。


ケロミンの声をサンプリングするデモ動画



0 件のコメント:

コメントを投稿