ここまでのおさらい
前回は、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
の別のアウトレットに繋いでみると何が起こるか?
完成したパッチはこちらからダウンロードできます。