top of page

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

P296〜p298

==や<>などの条件判断オブジェクトでは表現しにくい条件判断は、ifオブジェクトを使って記述することが出来る。ifオブジェクトは、C言語などのif文に似た次のようなアーギュメントを与える。

・if 条件式 then 出力1

・if 条件式 then 出力1 else 出力2

条件式は、$i1、$f1、$s1といった記号を用いて、インレットから入力されるメッセージを扱う。既述した記号の場合、二番目の文字であるiはint(整数)、fはfloat(実数)、sはsymbol(シンボル)となる。まt,あ三番目の数値はインレット番号となる。

具体的な例で見てみよう。

[if $i1 > 0 then $i1 else 0]というアーギュメント内容であれば、第1インレットで受け取った整数が0よりも大きければその整数をそのまま出力し、そうでない場合は0を出力するということになる。

また、[if $i1 > $i2 then bang else out2 bang]であれば、第1インレットから入った整数が第2インレットには行った整数よりも大きければ第1アウトレットからbang、それ以外は第2アウトレットからbangという指示になる。

このような条件式には、exprオブジェクト(サウンドプログラミング基礎④)のように、アーギュメント内に演算式や関数を含めることが出来るため、かなり複雑な条件を表すことも可能となる。

例えば下のプログラムでは、「第1インレットからの整数の2乗+第2インレットからの整数の2乗」の平方根が第3インレットの整数よりも大きければ1を出力し、そう出なければ0を出力することとなる。

ちなみん、上記の式は、$i1および$i2の数値をそれぞれ座標x,yとしたとき、三平方の定理を利用して原点からの距離を条件判断として用いることが出来る式である。

では、この式を利用して、原点から一定距離にあるもののみドットを作るlcdと、一定距離を境に色の変化をもたらすlcdオブジェクトを作成してみたいと思う。

[原点から一定距離にあるもののみドットを作る]

[原点から一定距離にあるもののみドットを作る]

タグ:

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