第5回 - 演算とユーザインタフェース

前回は,Maxで使われるメッセージの種類とメッセージが流れる順序について勉強しました.ちょっとずつ実際のプログラミング的な要素を増やしていきましょう.オーディオのプログラミングにはいるまえにもう少しMaxの考え方に慣れる必要があります.

今回は比較的単純なパッチです.

Picture 4
5_1_operations.pat.zip


前々回にやった足し算のプログラムを覚えてますか.当然,Maxには足し算以外に,引き算[-],かけ算[*],割り算[/]が用意されてます.パッチ上にそれぞれの例を並べてあるので,自分で触って結果を確かめてみてください.

ここで注意すべきは,右側のインレットはその次の演算に使う値をセットするだけで,実際の計算は左インレットに値が入ってきた時点で行われるということです.これも前にやりましたね.復習です.
右インレットの数値の初期値はアーギュメント(引数)としてあらかじめ指定できることも思い出してください.

ちょっと変わった演算もあることに気がつきましたか? [!-] [!/]の二つです.これは,[-][/]の兄弟分にあたるオブジェクトで,計算に使う数値の順序が逆になっています.

[-]オブジェクト: (左インレット) - (右インレット) = (結果)

[!-]オブジェクト: (右インレット) - (左インレット) = (結果)

[+][*]は順序を逆にしても,結果が同じ(交換法則がなりたつ)ので,こういったオブジェクトはありません.

パッチの右下の例では,実数のアーギュメントを与えるという例を示してます.アーギュメントに実数を与えてない場合はすべての計算が整数の計算として扱われ,小数点以下は切り捨てられて計算されます.注意が必要です.

四則演算: 実数の計算がしたければ,実数をアーギュメントとしてあらかじめ与えておく必要がある.

四則演算はリストの入力も受け付けます.たとえば,”1 2″が[+]オブジェクトに渡されると,[+]オブジェクトは1+2を計算して3を出力するという訳です.

Picture 5-4
5_2_userinterfaces.pat.zip

次はMaxで使われる代表的なユーザインタフェースオブジェクトを紹介します.
パッチ上にスライダーやダイアルがならんでいるので,クリックして動かしてみてください.

一番右の[pictslider]は, x, yの座標の二つの値を出力します.いずれのオブジェクトも値を入力されると,その値にスライダーが動き,さらに入ってきた値を出力します.

いずれのオブジェクトも0から127の範囲で変化するのがわかりますか? この0から127というのは,あとでつかうMIDIという規格の中で使われる数値です.もちろん,この範囲は変えられます.編集モードの状態で,値の範囲を変えたいオブジェクトを選んで,Command + i もしくはメニューからObject > Get Info …を選択します.

下のようなウィンドウがでてくるので,そこで値を変えてください.ここではSlider RangeとOffsetというのがそれです.Offsetは最小値を意味し, 最大値はOffset + Slider Range - 1となります.
Picture 6

次にsetというメッセージの面白い使い方です.”set 数値”というメッセージをユーザインタフェースオブジェクトに送ることで,数値を出力することなく,スライダーの値をセットすることが出来ます.セットされた値はbangを送ることで出力されます.こうした使い方の利点はおいおいMaxのプログラミングをやって行く中で分かってくることでしょう.

“set 数値で出力することなく値をセットすることが出来る.

これらのスライダー類はMaxのプログラミングでも利用頻度が高いものです.使い方を覚えましょう.


There are no comments on this post

Leave a Reply