MAX 7 サウンドプログラミング基礎5
p.230〜236
・triggerオブジェクト
MAXでは、先日してきたようにオブジェクトの実行順序がrigtht-to-leftとbottom-to-topというルールに従っているわけであるが、triggerオブジェクトを用いることで、同時に実行する複数のオブジェクトの実行順序を明示的に指定する方法がある。
triggerオブジェクトは、アーギュメントにbやi、fといった記号を指定し、それらの記号の数だけのアウトレットが作成される。
bはbangであり、iはint、fはfloatを表している。そして、triggerオブジェクトがメッセージを受け取ると、アーギュメントで指定したタイプにメッセージを変換し、それぞれのアウトレットからメッセージを出力する。
図は、インレット入った数値が、triggerオブジェクトのアーギュメントのそれぞれの実数に反映され、第1アウトレット、第二ア2ウトレットから出力され、結果二乗が出力される(左)。
次のプログラムは、[t b f]の第1アウトレットからはbangが、第2アウトレットからは実数が出力され、”500/指定された実数”ちう演算の結果が出力される。
その次のプログラムは、各アウトレットからの出力をパッチコードを左右逆に繋いでいるので、第1アウトレットから順番に出力させることが可能となっている。
・linetoメッセージ
最後に、右のプログラムについて。linetoメッセージにおいては、現在の位置から指定された位置までの線を描くメッセージであり、ここではpackオブジェクトを用いて、linetoの第1アーギュメントにx座標、第2アーギュメントにy座標をしている。
しかし、その場合、packの第2インレットに入った数値が反映されるには、第1インレットに数値を入力しないといけない。その手間を省くため、図では、第2レットへ数値を送ると同時に、第1インレットへbangを送るため、指定されたx座標と一緒にy座標も反映される仕組みである。
・bangbangオブジェクト
bangbangオブジェクトは、アーギュメントに入力された数値の数だけアウトレットの数が増え、インレットになんらかのメッセージやbangを受け取ると、右側のアウトレットから順番に出力を行う。
・swap/fswapオブジェクト
swapオブジェクトは、二つのインレットアウトレットをもち、まず第2インレットに受け取った数値を内部に記憶し、それから第1インレットに数値を入れると、第2アウトレットからその数値を出力し、次いで第1アウトレットから記憶していた数値を出力する。
※ちなみに、swapはint(整数)、fswapはfloat実数を扱う。
・rslider
rsliderはマウスをドラッグすることで、その範囲の最小値と最大値を出力するスライダーである次の図においては、その差をswapオブジェクトを用いて入れ替えて演算を成立させている。