|
Quick Links
Categories
XML/RSS Feed
Statistics
Total entries in this blog:
Total entries in this category: Published On: 10 01, 2005 11:59 午前 |
1008 : Maxビギナーズ・チュートリアル(005) : 佐近田展康------------------------------------------------------------------------
DSPマガジン 2003.03.14 No.1008 ------------------------------------------------------------------------ Maxビギナーズ・チュートリアル(005) 時間的な処理 佐近田展康 これまで挙げてきたパッチ例はいずれもユーザーの与えるきっかけ(マウス・クリックやキーボード入力)に対して瞬間的に動作するものばかりでした。しかし場合によってはひとつのきっかけで複数の処理を時間的にずらせて実行したり、自動的に繰り返したりといった時間的な要素をパッチに盛り込む必要が出てくる場合もあるでしょう。特に今回のDSPオフサマースクールのテーマであるロボットのコントロールとなれば時間的な要素は不可欠になります。例えば短い時間間隔でモーターのON/OFFを繰り返して減速させ10秒後に停止するといった動作を行うには時間的な処理が必要になります。ここではMaxプログラミングにおいて時間的な要素をどう表現するかを見ていくことにしましょう。 【sample5-1】は受け取ったメッセージを時間的に遅らせて出力する(ディレイをかける)オブジェクトの紹介で、delayオブジェクトはbangを、pipeオブジェクトはintやfloatなどの数値を受け取り、指定した時間遅らせて出力します。遅らせる時間つまりディレイタイムはmsec(ミリセカンド=1000分の1秒)単位で設定することができます。Maxプログラミングでは通常このmsec単位で時間を表現します。このパッチでは5段階に次々とディレイをかけておりbuttonやナンバー・ボックスの表示は左から右に流れるように変化します。 【sample5-2】は規則正しい時間間隔で動作するオブジェクトの例です。metroオブジェクトはその名の通りメトロノームのように規則正しい時間間隔でbangの出力を繰り返します。counterオブジェクトは第1インレットにメッセージを受け取るとそれを順番にカウントして行きます。 clockerオブジェクトは時間の経過に従って一連の処理を行う場合などに便利なオブジェクトです。clockerをスタートさせると規則正しい時間間隔で経過時間をmsec単位で出力しますので、「500msec後に処理Aを行い、1800msec後に処理Bを、60000msec(1分)後に処理Cを行う…」といった一連の処理をプログラムすることが容易になります。 一方、【sample5-3】のlineオブジェクトは、一定時間をかけて状態Aから状態Bへと「徐々に」あるいは「連続的に」変化させたい時に有効なオブジェクトです。lineは2つの数値から成るlistメッセージを与えるとそれを「目標値 目標値に到達する所要時間」のリストとして解釈し、所要時間をかけて現在値から徐々に目標値へと達する値を出力します。目標値へと達すると右アウトレットからbangを出力しますので繰り返し処理等に利用できるでしょう。またspeedlimオブジェクトは受け取ったメッセージを時間的に間引いて出力することにより短い時間間隔でたくさんのメッセージを処理する負荷を軽減することが出来ます。 【sample5-4】はいま紹介したmetro、clocker、lineを組み合わせpanelオブジェクトのRGBカラーを時間的にコントロールしている例です。clockerをスタートさせると直後にlineに0が渡され、その結果panelには「brgb 0 0 0」というメッセージが渡されます。これはpanelの背景色をRGBカラーの「0 0 0」つまり黒にすることになります。その後clockerが100msecごとに出力する経過時間に従って500msec後にはlineに「255 2000」というメッセージが渡され、lineは2000msecかけて現在値0から目標値255へと達する値を連続的に出力します。この結果panelの背景色はRGBカラーの「255 255 255」つまり白へと徐々に変化します。経過時間の3500msec後にはmetroがスタートしpanelの背景色は50msec間隔でランダムに変化し6000msec後には変化が止まります。そして6500msec後にはpanelの背景色は黒になり、clockerの動作も停止します。 * ここで説明したパッチは、以下のリンクをクリックしてダウンロードできます。 MBT005files.sit ------------------------------------------------------------------------ 暫定版ながら、DSPマガジンのWEBサイトを作りました。 メルマガの発行確認や購読中止などの操作は、こちらをご覧ください。 http://dspmag.iamas.ac.jp/ ------------------------------------------------------------------------ Copyright(C)2003 DSP Magazine. All Rights Reserved. 転送・転載禁止 ------------------------------------------------------------------------ |