top of page

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

p.183〜190

・ランダム関数

ランダムな数値を生成するには、下記のオブジェクトを用いる。

・randomオブジェクト.......ランダムな数値を出力

・urnオブジェクト  .......重複しないようにランダムな数値を出力

・drunkオブジェクト .......直前の値を基準として、一定範囲で増減する数値を出力

・decideオブジェクト .......ランダムに"0"か"1"を出力

※drunkオブジェクトは、第2アーギュメントで指定した数値よりも1小さい範囲で増減するような数値を出力する。例えば、[drunk 250 3]であれば、0から250までの数値を、0〜2段階(-2 -1 0 +1 +2)の範囲で増減していくこととなる。

・multislider

右動画において、multisliderとrandomオブジェクトを使用した簡単なグラフを作成した。縦軸のレンジに則って、指定された数値をランダムにスライダやポイント、ライングラフとして表示することができる。

ちなみに、ドラッグ&ドロップでスライダー事態を拡大しても、インスペクター上の範囲が変わらなければ、どのサイズでもいっぺんのサイズはその絶対値として機能する。

・その他の数値処理オブジェクト

[abs]...入力された数値の絶対値

[pow]...アーギュメントまたは第二インレットの数値を指数として、べき乗を出力。

[sqrt]...入力される数値の平方根を出力

[ftom]...周波数をMIDIノートナンバーに変換して出力

[mtof]...MIDIノートナンバーを周波数に変換して出力

[atodb]...振幅値をデシベル値に変換して出力

[maximum]...2つの数値(第1インレット第2インレット)のうち大きい数値、またはリスト中の最大値を出力

[minimum]...2つの数値(第1インレット第2インレット)のうち小さい数値、またはリスト中の最小値を出力

[mean]...入力される数値の平均値を出力

[peak]...入力された複数の数値から、最大値を出力

[through]...入力された複数の数値から最小値を出力

[past]...特定の数値を超えると、bangが出力される。

[accum]...第2インレットへ入力される数値を全て順番に加算し、第1インレットへbangが入力された時点で合計の数値を出力する。また、第3インレットでは加算ではなく乗算となる。

[scale/zmap]...アーギュメントや第2インレット以降で指定した入力範囲と出力範囲に従って、入力される数値をスケーリングして出力

[clip/split]...アーギュメントや第2インレットで指定した範囲に収まるように、入力される数値をクリッピングして出力

・exprオブジェクト

exprオブジェクトを用いることで、オブジェクト内に任意の数式演算を使用することができる。

演算式には、"$i1"や”$i2”という記号(iは整数、実数ならば$f1となる)を使用し、アーギュメントとして記述する。$i1は第1インレット、$i2は第2インレットから入力される数値に置き換えられる。

また、exprオブジェクトに表記する演算式には、演算の優先順位があり、右図の例の場合、左側の式では[$i2*4]×[$i3]が優先されるのに対し、右側では()内の[$i1*3]+[$i2*4]から計算されることになる。

さらに、関数の中には、powのように複数のアーギュメントを必要とする関数もあり、このような場合にはカッコ内に\,(バックスラッシュとカンマ)で区切ってアーギュメントを記述する(MAX7においては、\なしでも演算可能のようである)。

・vexprオブジェクト

exprオブジェクトのインレットへの入力は、単一の数値であるが、vexprオブジェクトにおいては、リストを扱うことが出来、結果もリストとして出力される。

下の図を見てみよう。

左側では第1インレットへ入ったリストの数値それぞれが*4されたリストとなって出力される。

右側では、リストのそれぞれの平方根が、右・中央・左のリスト同士で加算されて、リストとして出力されている。

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