ここまでのおさらい
前回は、ArduioとMax8を連携させ、センサの値をMaxで表示しました
この章ではセンサの値を活用したパッチを組んでいきます
前回記事でも使用したこちらのパッチを改変していきます。
グラフを少し小さく表示する
グラフを表示するオブジェクトはmultisliderというものですが、右下部分をドラッグ・アンド・ドロップすることで大きさを調整することができます
A0からA3と書かれているものはコメントボックスと言い、こちらも移動することができます
値を送受信するオブジェクト(send, receive)の活用
以降、パッチングにショートカットキーを使っていきます
・nを押してオブジェクトウィンドウを表示し、send A0data(sendとA0dataの間には半角スペースを入れる)と入力し上のナンバーボックスとつなぎます
・nを押してオブジェクトウィンドウを表示し、receive A0data(receiveとA0dataの間には半角スペースを入れる)と入力します
・iを押してnumber(i)を表示し、receive A0dataとつなぎます
➡A0のセンサの値が変化すると、receiveに繋いだナンバーボックス内の値が変わることがわかります
send及びreceiveはパッチコードをつなぐことなく、データを送る(受ける)事ができるオブジェクトです。A0dataはデータのラベルなので自由に変えることができます
全てのオブジェクトをパッチコードで繋いでいくと見た目にわかりにくくなることが多いので、send, receiveを活用してみて下さい
センサの値によって音を再生する(sfplay~, ezdac~)
以降、パッチングにショートカットキーを使っていきます
・n(object) → > 100と入力 (>と100の間には半角スペース)
・t(toggle)
・n(object) → sfplay~
・n(object) → ezdac~
・sfplay~の近くでクリック → m(message) → openと入力
・全てのオブジェクトをつなぐ
➡A0にボリュームセンサをつなぎ、センサをひねると音が再生されます
音が連続で再生されてしまうのは、常に「1」の値が送られてきてしまっているからです
次は、「0」から「1」に値が変化した際に1度だけ再生を行うようにパッチを修正します
条件によって1度だけ音を鳴らす(change)
changeオブジェクトの配置
先程のパッチに修正を加えていきます
・nを押してobjectを表示しchangeと入力して下さい
・changeの上にt(toggle)をおき、下にb(button)を3つおきます
・それぞれをつなぎます
・changeの上のtoggleをクリックして挙動を確認してみましょう
changeオブジェクトの挙動を確かめる
・toggleを一度押すと、changeの一番左と真ん中のアウトレットから信号が出てきます。
→ changeの左アウトレットは「0→1」「1→0」と状態が変化した際に信号が出力されます
→changeの真ん中アウトレットは「0→1」と状態が変化した際に信号が出力されます
→changeの右アウトレットは「1→0」と状態が変化した際に信号が出力されます
「センサが一定の値を超えた時」を検出して1回音を鳴らすパッチにするには、changeアウトレットの中央の出力を使うと良いことがわかります
changeオブジェクトの活用
それでは、以下のようにパッチを改変してみましょう
このパッチを実行すると、「センサの値が100」を超えた時に1回だけ音が再生されます。
・センサの種類に応じて反応する値(しきい値といいます)を帰るときは、> 100の部分の数字を変えてみて下さい
条件文を変えてみる(<, ==を使ってみる)と何が起こるか?
changeの別のアウトレットに繋いでみると何が起こるか?
完成したパッチはこちらからダウンロードできます。





