top of page

MAX 7 サウンドプログラミング基礎3

p.169〜178

複数のメッセージ(リスト表記とカンマ表記)について。

さて、ここで非常に引っ掛けっぽい例を紹介したい。

まず、リスト表記については。右の左式の場合、[3 20]のリストメッセージが{* 5}オブジェクトへ流れ込むと、これは{*}オブジェクトの"第2インレットへ入った20"×"第1インレットへ入った3"の乗算と全く同じ働きであるため、 答は"60"である。

では次に、カンマ表記である[3, 20]の場合はどうか。こちらは、左から順番に{* 5}オブジェクトへと流れ込むため、printすると[15 100]と表記されるが、ナンバーボックスに反映されるのは最後に計算される100のみとなる。

・valueオブジェクト

valueオブジェクトは、同じアーギュメントを持っているものに対して、メッセージを記憶し、bangによって共通して出力させることができる(※bangが入力されなければ反映されない)。 右の式においては、[AA]と共通したアーギュメントをもつvalueオブジェクトは、一方に数値を入力し、bangを入力することで、一方の同じアーギュメントの出力にも同党の数値が反映する。

・sendオブジェクトとrecieveオブジェクト

パッチコードでアウトレットからインレットへ繋がなくとも、信号を送る方法がある。

sendオブジェクトとrecieveオブジェクトのそれぞれに同じアーギュメント内容を記しておけば、sendに入力されたメッセージや数値と同じ内容がreceiveオブジェクトから出力される。また、これは複数のreceiveオブジェクトがあっても同じ結果となる。

さらに、sendオブジェクトを使わなくとも、メッセージボックス内に、;(セミコロン)と改行を用いて、共通するアーギュメントのreceiveオブジェクトへメッセージを出力することもできる(右図参照)。

・数値計算

加算、減算、乗算、除算においては、アーギュメントとしての数値を省略した場合には、初期値としてゼロが用いられる(ただし、除算の場合のみ1)である。

・実数演算

実数で小数点以下も扱いたい場合には、各ナンバーボックスをfloatにすることと、演算オブジェクト内のアーギュメントに、例えば除算の場合は[/ 0.]のように打ち込んでおく必要がある。

最新記事
アーカイブ
タグから検索
bottom of page