top of page

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

p.149〜159

さて、本ブログでは、cyling'74(先日Ableton liveに買収されたようである)が開発したサウンドプログラミング"MAX7"について、理解の向上のため要点や考え方などをまとめていきたいと思う。

そのついでに日記も書くかもしれない。

・基礎の基礎"right to left"の規則

(※また、左右の位置が全く一緒の場合は、bottom-to-topが適応され、より下のオブジェクトから順にs実行されることとなる。)

maxプログラムにおいて、信号処理の真髄と言っても良い、right to left。

この法則を頭に叩き込んでおかなければ、到底このソフトを使いこなすことも、新たなプログラムを開発することも不可能である。

右の図を見てみよう。上のバングを押すと、最下のサンバーボックスにはどのような数値が出力されるか。答えは{50000}+{57}で{50057}である。

これは、すなわち[+]オブジェクトの第2インレットへ、右からら"1"、”888”、”57”と順番に入力され、最後に第1インレットへ"50000"が入力されるからである。

※ただし、メッセージボックス内にカンマで複数の数値やメッセージが入

っている場合には、左から順に出力されるので注意が必要である。

・setメッセージ

setメッセージは、文字通りセッティングするためのメッセージBoxである。主に、ナンバーボックスやスライド、または同じメッセージボックスへ数値やメッセージを反映させるために用い(Bangはスルーアウトしない)、一旦数値を滞留させておいて、時間差で別のBangからの出力させる方法が考えらる(右図参照)。

このような動作は、intオブジェクトやfloatオブジェクトの第二インレットを使用することでも、同じ効果を用いることができる。

・intオブジェクト/ floatオブジェクト

"int"とは整数integer(インテジャー)であり、整数を受け取った時点でBangと整数値を出力するオブジェクトである。

第2インレットに入った値は、setメッセージのように滞留され、その次のBangによって滞留していた数値が出力される仕組みとなる。

floatオブジェクトは実数を扱うオブジェクトであり、例えばインレットへ整数[10]を入力すれば、[10.0]として扱われる。

・listメッセージ

listメッセージは、例えば2つのメッセージを一つのインレットへ送ることができる。

例)[7 8]--{* }--[56]

・packオブジェクト

packオブジェクトは、複数のインレットから入った数値を、リスト化して出力する。MAXの基本となる、「rigtht to left order」のルールにより、右インレットから入った数値に対して、左インレットへBangや数値を受けた時に、リストを出力する。

右の例を見てみよう。

ます、packのそれぞれのインレットに入っているナンバーボックス内の数値は、右インレットから順に出力することでpackオブジェックト内に滞留する。ここでは、[-84][159]の後に[226]を出力することで、[226 159 -84]がリストとなって出力される。

また、その後に[0 78 9.4]のリストメッセージを出力すると、全てが上書きされて[0 78 9.4]が出力され、

その後に226を出力すると、第一インレットだけ置きかわり、[226 78 9.4]が出力される。つまり、list内の数値は、各々が各インレットへの数値出力と同じ働きをしている。ここでは、packの第一インレットに入る数値やリストがどのように反映されるかを、理解しておく必要がある。※ちなみに、[0 78 9.4]のリストメッセージをpackの第2インレットへ繋ぎ、[226]を出力すると、[226 0 78]となり、左の数値から順に優先されるのが分かる。

・unpackオブジェクト

unpackオブジェクトは、packとは逆で、リストメッセージを入力し、ここの数値を出力する。

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