|
Quick Links
Categories
XML/RSS Feed
Statistics
Total entries in this blog:
Total entries in this category: Published On: 10 01, 2005 11:59 午前 |
1001:Maxビギナーズ・チュートリアル(001):佐近田展康--------------------------------------------------------------------
DSPマガジン 2003.02.11 No.1001 -------------------------------------------------------------------- お待たせしました。DSPマガジンの創刊です。DSP関係の話題を扱うメールマガ ジンとして、少しずつ充実させていきたいと思っています。どうぞ、よろしくお 付き合いください。 まずは、佐近田展康氏によるMaxビギナーズ・チュートリアルの連載開始です。 -------------------------------------------------------------------- Maxビギナーズ・チュートリアル(001) Maxプログラミングの基礎 佐近田展康 Maxは音楽およびマルチメディアの制作に適したグラフィカルなプログラミング 環境です。MSPはオーディオ処理機能を、Jitterは映像処理機能をMaxに追加す るソフトウェアで、まとめてMax/MSP/Jitterと呼ばれることもありますが、あ くまで全体の土台になるのはMaxです。ここではそのMaxについて基礎的な説明 を行います。 「プログラミング環境」という言葉が最初はピンと来ないかも知れませんが、既 成のソフトウェアでは出来ないことをやりたい時に自分でソフトウェアを作るた めの道具だと考えて下さい。DSPオフ・サマースクール2003のテーマであるロ ボットのコントロールもまさにその好例で、例えば音楽に合わせてロボットが動 き回るようにしたいと思っても、ロボットのメーカーでそのようなソフトウェア を提供してくれていなければ自分でプログラミングする以外に方法はありませ ん。 プログラミング…などと言われると理数系に弱い自分には手が届かないと思われ るかも知れません。ここにMaxの大きな特徴である「グラフィカル」なプログラ ミング方法という利点が生きてきます。実際にMaxプログラミングの基本的な方 法を見ながら説明してみましょう。 プログラミングの舞台になるのは白紙のパッチャー・ウィンドウです。Maxを起 動してFileメニューのNewからPatcherを選ぶ(あるいはコマンド・キー+Nを 押す)と新規にパッチャー・ウィンドウを開くことができます。ここにオブジェ クト・パレットからオブジェクトを取りだして並べ、それらの上部の入口(イン レット)と下部の出口(アウトレット)をパッチコードで結ぶことがMaxで言う プログラミングになります。つまりブロックを並べるように、フローチャート図 を描くようにグラフィカルにプログラミングを進めて行くことができるわけで す。こうして出来たプログラムのことをMaxではパッチ(あるいはパッチャー) と呼びます。 オブジェクト・パレットにずらりと並ぶアイコンは一番左のノーマル・オブジェ クトとそれ以外のユーザー・インターフェイス・オブジェクトに大別されます。 ユーザー・インターフェイス・オブジェクトはその名の通りユーザーが目で見て 操作したり処理の結果や状態を目で見て確認するためのもので、ボタンやスライ ダーなど形状はさまざまです。一方、ノーマル・オブジェクトは多数あるMaxオ ブジェクトの中心になるもので、同じ形状をしたオブジェクト・ボックスにオブ ジェクト名を書き込む(自動的に開くNew Objectリストから選ぶ)ことで使い 分けることが出来ます。Maxでは「ひとつのオブジェクトでひとつの機能」が原 則です。ですから足し算を行うオブジェクトと引き算を行うオブジェクトは別物 として用意されています。 Maxではパッチが完成していなくても途中で手を止めずにその動作を確認するこ とができます。パッチャー・ウィンドウ左上の鍵アイコンのボックスをクリック してロック状態にすると、オブジェクト・パレットは隠れてパッチを変更・修正 できなくなりますが、ボタンやスライダなどインターフェイス・オブジェクトが クリック等を受け付けますので、これでパッチを操作することができます。その まま再度鍵アイコンのボックスをクリックしてアン・ロック状態にすれば再びオ ブジェクトを追加・削除したりパッチコードを繋ぎ替えたりして自由にパッチを 編集することができます。Maxではこの編集と実行確認を繰り返すことでプログ ラミングを進めて行くことになります。ですからパッチの完成は、作者にとって 目的通りの実行が確認出来て編集の手を止めた時で、特別な最終処理があるわけ ではありません。 以上のパッチャー・ウィンドウの用語、説明について実際にサンプルパッチ 【sample1-1】で確認してみましょう。 オブジェクトの並べ方パッチ・コードの引き方は非常に自由度が高い柔軟なもの になっています。【sample1-2】のようにパッチ・コードのセグメント化(折 れ線にする)、オブジェクトのリサイズ(大きさの変更)、自由にコメントを付 けるcommentオブジェクト、オブジェクトやパッチ・コードに色を付けたり、 ロック/アンロック状態での非表示/表示を切り替たりする機能を使って工夫す ることにより見た目に分かりやすいパッチを作ることができます。 具体的に簡単な処理を行いパッチを作ってみましょう。【sample1-3】のパッ チは3つのオブジェクトから構成される簡単なプログラミング例です。random オブジェクトはきっかけを与えられるとランダムな数値(乱数)を出力するオブ ジェクトで、その出力結果はナンバーボックス・オブジェクトに表示されます。 randomに動作のきっかけを与えるのがボタン形状のbuttonオブジェクトです。 ここでパッチをロック状態にしてマウスでbuttonをクリックすると、その度に randomは乱数を出力しそれがナンバー・ボックスに表示されます。 クリックから数値の表示までは一瞬の出来事ですが、オブジェクト同士を繋ぐ パッチ・コードにはきっかけを与える命令や数値が通ったことになります。パッ チ・コードを通ってオブジェクトからオブジェクトへ受け渡されるものをMaxで はメッセージと呼びます。 randomが出力すメッセージつまりランダムな数値の範囲は0〜127の整数で、 オブジェクト名の後に続けて書き込まれた128という値により範囲が決定されま す。このようにオブジェクトの状態を直接オブジェクト名に続けて書いたものを アーギュメントと呼びます。アーギュメントの書き方、個数、意味などはオブ ジェクトごとに異なっており、randomの場合は0〜{アーギュメント−1}とい う乱数の範囲を意味することになります。この範囲を変更したければアーギュメ ントを書き換えれば良いのですが、【sample1-4】のように右インレットにナ ンバー・ボックスを繋ぎそれをドラッグしてメッセージ(整数)をオブジェクト に入力すれば任意の値にいつでも設定し直すことができます。例えば32を入力 した場合randomの出力する乱数の範囲は0〜31になります。 Maxオブジェクトの殆どはこのようにアーギュメントの書き込み、インレットか らのメッセージ入力の両方でその状態をコントロールすることが可能です。特に インレットからのメッセージ入力ではパッチの動作中にダイナミックにオブジェ クトの状態をコントロールができる点が重要です。またインレットの個数やそこ から受け取るメッセージの種類や意味についてはオブジェクトごとに異なってい ることも注意が必要です。 * ここで説明したパッチは、以下のリンクをクリックしてダウンロードできます。 MBT001files.sit -------------------------------------------------------------------- DSPマガジンの購読中止は、本文に、 # bye と書いて、dspmag-ctl@iamas.ac.jp へメールをお送りください。 -------------------------------------------------------------------- Copyright(C)2003 DSP Magazine. All Rights Reserved. 転送・転載禁止 -------------------------------------------------------------------- |