ここまでのおさらい
前回は、ArduioとMax8を連携させ、センサの値によって音を再生するパッチを組みました
今回は、センサデータと組み合わせて使うと便利な以下のオブジェクトを紹介していきます
-
select
-
counter
-
scale
-
split
-
flonum(scaleの下に接続されているオブジェクト)
パッチのダウンロードと挙動の確認
こちらからsomeFunkパッチをダウンロードして開きます
パッチをロックした状態で、ナンバーボックスをドラッグして値を変え、挙動を確認します。以下で各オブジェクトの機能を紹介します
- select : 特定の値が入力された際に反応を返す
例えば、上の記載方法ではセンサの値が「200ピッタリ」になった際に、左のアウトレットからbutton信号が出力されます。「200以外」の場合は、右のアウトレットからbutton信号が出力されます - counter: buttonが押された回数をカウントする
インレットに接続されたbuttonが押された回数をカウントします。selectオブジェクトと組み合わせることで、「センサが10回反応した際に特定の行動をする」などのプログラムを作ることができます - scale: arduinoのmap()関数と類似、値のスケーリングを行う
左から(インレットに入力される値の最小値, インレットに入力される値の最大値, アウトレットから出力される値の最小値, アウトレットから出力される値の最大値)と指定することで、センサのデータを音や映像の再生スピードに対応付けることができます - split: 指定された範囲外の数値は通過しないようにする
センサの値は必ずしも安定したものではなく、センサによってはある値から+2, -2くらいの値の間で細かく移動する「ドリフト」という現象が起こることがあります。splitを使うことで、センサが確実に反応している際に値を取得する、などのプログラムが組めます - flonum: 小数点を扱うことができるナンバーボックスです。左にあるnumber(i)ボックスは小数点を扱うことができず、例えば0.9を0、1.5を1として扱ってしまいます。小数点を含めた値の指定にはflonumを使う必要がありますので注意してください
復習も兼ねた応用
- sensorPlayerパッチで
send
オブジェクト、receive
オブジェクトを使ってsomeFunkパッチでセンサの値を見れるようにして下さい- someFunkパッチで受けたセンサの値をナンバーボックスに接続し、センサの値による各オブジェクトの振る舞いを確認してみましょう
- someFuncMoviePlayerを開き、
send
オブジェクト、receive
オブジェクトを使ってセンサの値で再生速度をコントロールしてみましょう
sensorPlayerパッチはこちらからダウンロードできます
someFuncMoviePlayerパッチはこちらからダウンロードできます