2004年03月29日

「収納する」オブジェクト その1(28号 6.6.02)

オーディオを扱ったパッチをつくるにしても、やはり、MAXの扱うあらゆる演算
子やら、メッセージは頻繁に使用すると思います。mspを筋肉と、たとえるな
ら、MAXは脳か、心臓といったところだろうか。

そんな中でも、メッセージを一時的に格納する場所は、論理的回路は無論のこ
と、いくつかの情報を使い分けたりする、シンセのプリセットのような役割にも
便利だと思います。そんな、オブジェクトをまとめて紹介していきたいと思いま
す。

○intとfloat

さて、まず、最初に紹介するこの2つのオブジェクトは全く同じ働きをします。
どこが違うといいますと、収納するメッセージの種類が違うのです。もう、ご存
じだと思いますが、MAXは整数(integer)をi、実数(float)(要は小数点のつい
た数字のこと。例えば、MAX的に言うと、0.5、1. とかのこと)をfと表示しま
すよね。つまり、この2つのオブジェクトはこの2つの異なったメッセージ専門
の収納オブジェクトなのです。もう、違いはそれだけ。全く同じ仕様なので、ま
とめて、いいますと、第2インレットで最後に受けたメッセージを第1インレッ
トにbangを受けると、その最後に受けたメッセージを第1アウトレットにはきだ
すというのが、概要です。

第2インレットに受けるメッセージが変化しつづけるものであっても、第1アウ
トレットにはきだされるメッセージは第1インレットがbangを受ける直前に第2
インレットに受けたメッセージとなります。つまり、intやfloatは一個しか、
メッセージを収納できないのです。

さて、そんな2つのオブジェクトは他にも、便利な機能も持ち合わせていますの
で、以下にまとめてみました。

書式は
[int 初期値(整数あるいは実数)]
と、なります。

■第1インレット: メッセージ(整数あるいは実数)、bang
 *[send (recieve オブジェクト名)]というメッセージを送ると、第2アウト
 レットにはきだされるメッセージを同じ名前のrecieve オブジェクトに送り
 ます。

■第2インレット: メッセージ(整数あるいは実数)

□第1アウトレット: メッセージ(整数あるいは実数)


○Bucket

バケットと、いいます。日本語で言うとバケツ(ほんとかよ)。そう、このオブ
ジェクトはバケツ・リレーをシュミレートしたようなオブジェクトです。バケ
ツ・リレー、知ってますよね?火災訓練でやったりする、列を組んで次ぎから次
ぎへとバケツを手渡ししていくやつですね。で、どう、バケツ・リレーかという
と、このオブジェクトも、次から次へと、バケツ、いや、メッセージをアウト
レットに手渡ししていくわけです。つまり、第1インレットで受けたメッセージ
がアウトレットにはきだされるのはインレットに次のメッセージを受けた時にな
るわけで、書式 [Bucket (アウトレットの数)]とすることで、アーギュメン
トの値が、バケツをリレーする人の数となるわけ。と、わけわからなそうなの
で、実例をば。

bucketの扱うメッセージはint、整数のみです。
インレットに0、1、2、3、4、5と、順に送ることにします。アウトレットの数を3
としてみることにします。

インレット: *0→1→2→3→4→5
       ↓
       [ Bucket 3 ]
         ↓ ↓ ↓
0をbang→    0 0  0
1をbang→    *0 0  0
2をbang→    1 *0  0
3をbang→    2 1 *0
4をbang→    3 2  1
5をbang→    4 3  2

てな具合なのですが、*のついてない0はデータが届いていない0ですので気をつ
けて。

わからない人はいつものようにoption+clickでhelp fileを試てください。
sliderを使っていて、一目瞭然にわかりますから。

と、これまではdefaultに設定されているモードの場合なのですが、このオブ
ジェクト、いくつかのモードに切り替えることができるのです。そのいずれも、
インレットにメッセージを送ることによって切り替えることができるのですが、
以下に列挙します。

roll : アウトレットループします。第1アウトレットを1ol、第2アウトレットを
   2olというふうにして、第5アウトレット間であるとすると、メッセージ
   が、1ol→2ol→3ol→4ol→5ol→1ol→2ol→・・・と、ループします。

L2R : メッセージの流れが、左から右に。(これがdefault)

R2L : L2Rの反対の方向にメッセージの流れが変わります。

thaw : インレットからのメッセージはそのままアウトレットに反映されます。

freeze : インレットからのメッセージはアウトレットにすぐ反映しません。イ
     ンレットにbangを受ける直前のメッセージがアウトレットに反映され
     ます。

set $1 : すべてのアウトレットへ同じ値がはきだされます。

Posted by com4jai at 2004年03月29日 02:59
Comments
Post a comment









Remember personal info?