MAX 7 lcdとピクセルドットの作成5

p.282〜283

counterオブジェクトを使用したドットの作成。

まずcounterオブジェクトは多数のインレットをもっており、

第1インレットへはbangを、

第2インレットへは、アーギュメントの最初の値と同様、0なら増加、1なら減少、2なら増加後減少と変化する。

第3・4インレットへは、リセット信号をおくるが、その違いは第3インレットのバングが送られた次の値から。第4インレットの場合はバングと同時に数値がリセットされ、第2アーギュメントの初期値に戻ることとなる。

最後に、第5インレットに関しては、カウントする最大値を指定できる。これは第3アーギュメントと同じ数値となる。

左の例においては、アーギュメント内の指定値1〜10が、第5インレッットによって1〜5に代わり、selオブジェクトによってカウントが3に至った時にbangを発動し、それが第3インレット(赤パッチ部分)へ送られた場合には、次の4が初期値の1へ変わり、第4インレット(青パッチ部分)へ送られる場合は、3がなくなって1に変わり、結果1と2のみの繰り返しになる。

さて、では次に、counterオブジェクトを使用したドット製作をしてみる。

ここでは、円の半径を中心にとどめ、半径の増加とともに、円の色も変化させる。

paintovalは以前の記事でも紹介した通り、top,leftの座標を軸に、right,bottomとの距離で円を描くものである。まず、円の中心を200×200サイズのlcd中心部、つまり100,100に常にとどめておくためには、円の半径分の距離を常に100から引いてやればよい。すなわち、counterオブジェクトから出力される値を円の直径として、その1/2を100のナンバーボックスから減算した値を、paintovalのtop,leftに送る。

次に、円の直径はそのままcounterから吐き出されて数値であるため、それをさきほどのtop,leftに足してあげれば、完成。

色はrandomオブジェクトを使用して256色をmetroバングに同期したテンポでcolorメッセージに送ればとい。

以上の経過を踏まえたものが、下の動画のプログラムである。

タグ:

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