MAX 7 サウンドプログラミング基礎7
p.288〜292
・GSwitch/gateオブジェクト
メッセージの流れを制御するオブジェクトとして、
Gswitchオブジェクトと、
Gswitch2オブジェクトがある。
まず、GSwitchオブジェクトに関しては、第1インレットへbangまたは0か1の数値(Toggleオブジェクトに関しては、オンで1、オフで0が出力されている)を受け取ることで、
回路が繋がっている方のインレットからのメッセージをそのまま出力することが出来る。
あるいは、直接グラフィック部分をクリックすることでの変更も可能だ。
switchオブジェクトもまた、メッセージの入力を選択できるオブジェクトであるが、初期値または第1インレットに0が入力された場合には、第2インレット以降のどのインレットからも入力を受け付けない。
そして、1が入力される場合には第2インレット、2の場合は第3インレットからの入力を受け付けることができる。
また、アーギュメント内の数値によってインレットの数を指定することも出来る(省略の場合は2となる)。
次に、GSwitch2オブジェクトに関して。
こちらは、gateオブジェクトと非常に似た働きをするオブジェクトで、第2インレットから受け取ったメッセージを繋がっている回路のアウトレットへ出力するものである。
※多くのオブジェクトは、right-to-left のルールに則って、第2インレットにメッセージを受けた時にはオブジェクトの内部状態を変えるだけであり、第1インレットにメッセージが来た時に動作をする。
しかし、GSwitch/gateオブジェクトに関しては、第2インレットからメッセージを受け取れば、矢印が繋がっているアウトレットから、そのメッセージを直に出力する。
この点は一般的なオブジェクトと異なるので混乱しないように注意が必要である。
gateオブジェクトにおいては、アーギュメントでアウトレットの数を指定できる。省略した場合は1となる。そして、第1インレットから入力される数値によって、どのアウトレットから出力するかを指定する。
第1インレットへの整数が0であれば、どのアウトレットからも出力されない。1であれば第1アウトレット、2であれば第2アウトレットというように出力先が変わっていく。