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

P306〜p311

・dealyオブジェクト

delayオブジェクトは、第1インレットにbangを受け取ると、アーギュメント内または第2インレットで指定した時間(msec)だけ送らせてbangを出力することが出来る。[stop]メッセージを受け取った場合はbangを中止する。

また、第1インレットに数値を入力すると指定した数値(msec)後にbangを出力することも出来る。

では、さっそくdelayを活用したlcdオブジェクトを作ってみよう。

lcdオブジェクト内に手書きの描画を描く場合、その第3アウトレットから、マウスを押して線を描いている間は[1]が、マウスを放した時点で[0]が出力される。これを利用して、自動的に描いた線が消えるパッチを作成してみる。

次のパッチにおいては、まず、マウスを放してから、すなわちlcdの第3アウトレットから[0]が出力されてから7秒後にclearメッセージが発動するプログラムを作っている。

しかしそれだけでは7秒後のものは全て消えてしまうので、マウスを放してから7秒以内にまた描き始めれば(すなわち[1]を出力すれば)、それが[stop]メッセージのトリガーとなり、7秒ルールで書き続けられるというわけである。

・pipeオブジェクトによる整数の時間遅延

delayオブジェクトがbangを遅らせて出力するのに対し、pipeオブジェクトを使用すれば数値を送らせることが出来る。pipeオブジェクトは数値を受け取ると、アーギュメント内または第2インレットで指定したmsec時間、数値を遅らせて出力する。

また、pipeオブジェクトにおいては、同時に複数の数値を遅延させることが出来る。この場合、扱う個数のアーギュメントと遅延時間を指定すればよい。例えば、2種類の整数を遅延させる場合には、[pipe 0 0 1000]という風な記載をする。

右のパッチでは、pictsliderにおけるx座標とy座標の二つの数値を同時に遅延させて、指定したmsec秒後に、上で動かしたスライダーを下のスライダーが追随するプログラムとなっている。

・描画の後にドットでなぞるlcdパッチ

では、pipeオブジェクトを使用して、lcd上の描画をドットでなぞるパッチを作ってみると、右のようなものになる。

※ちなみにpipeオブジェクトは、リストのままでも入力し、非リスト化して各アウトレットから出力することが出来るので、この場合unpackオブジェクトは必要なく、x,y座標を個別に送ることが可能である。

最新記事
アーカイブ
タグから検索
  • SoundCloud Social Icon

■当サイト音源や動画を著作者の許諾なく、営利目的・商用使用することを禁止します。

■著作物を個人的に楽しむ場合などを除き、著作権利者の許諾を得ないで複製 (録音)などを行うことは、著作権法で禁止されています。

Copyright © 2015 kuu-sou sound creations. All Rights Reserved.