日曜日, 12月 31, 2006

num2snd(max/msp)

数値が音になる、ということが僕は未だに興味深いのですが、わざわざmax/mspで実装してみました。peek~っていうオブジェクトにインデックスと数値を送ることでbuffer~にデータを入れています。サンプルでは1サンプルずつ数値を入力するものと、自動的にサインウェーブとランダムノイズを作るものがあります。バッファに希望の長さをミリセコンドで指定すればサンプル数に変換されます。その後またサンプル数を手動で変化させてみても面白いです。
作成されたバッファテーブルはgroove~オブジェクトで再生します。この再生位置や速度を変えることでもかなり音響が変化します。サイン波の合成から音を作るのではなく、バッファテーブルに直接データを書き込むことで音を作る手法で、またひとつ下のレイヤーに降りた、という感じ。他の言語でもやってみるつもり。

max v2;
#N vpatcher 633 107 1290 670;
#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P comment 27 167 65 196617 manual input;
#N vpatcher 10 59 610 459;
#P inlet 217 70 15 0;
#P outlet 161 167 15 0;
#P inlet 161 71 15 0;
#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P newex 161 140 51 196617 pack 0 0.;
#P newex 161 98 29 196617 t b f;
#N counter;
#X flags 0 0;
#P newobj 161 119 66 196617 counter;
#P connect 3 0 1 0;
#P connect 1 0 0 0;
#P connect 0 0 2 0;
#P connect 2 0 4 0;
#P connect 1 1 2 1;
#P connect 5 0 0 4;
#P pop;
#P newobj 27 207 49 196617 p manual;
#P flonum 27 186 44 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 34 105 33 196617 clear;
#P comment 111 167 56 196617 make noise;
#P comment 240 167 49 196617 make sine;
#P comment 170 167 65 196617 random value;
#P comment 233 107 42 196617 samples;
#P comment 371 68 36 196617 vol;
#P button 242 185 15 0;
#P comment 516 70 47 196617 select all;
#P message 513 85 51 196617 0 -1 0 -1;
#P flonum 218 127 45 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 398 227 43 196617 ¥$1 100;
#P newex 363 227 32 196617 line~;
#P flonum 141 185 45 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#N vpatcher 20 74 620 474;
#P inlet 249 118 15 0;
#P window setfont "Sans Serif" 9.;
#P window linecount 0;
#P newex 249 228 51 196617 pack 0 0.;
#P outlet 249 253 14 0;
#P newex 249 138 40 196617 uzi;
#P newex 333 139 27 196617 t f f;
#P newex 350 161 27 196617 / 2.;
#P inlet 333 117 15 0;
#P inlet 279 118 15 0;
#P window linecount 1;
#P newex 279 202 27 196617 - 1.;
#P newex 279 182 34 196617 / 50.;
#P newex 279 161 64 196617 random 100;
#P connect 10 0 7 0;
#P connect 7 2 9 0;
#P connect 9 0 8 0;
#P connect 3 0 7 1;
#P connect 7 0 0 0;
#P connect 0 0 1 0;
#P connect 1 0 2 0;
#P connect 2 0 9 1;
#P connect 5 0 1 1;
#P connect 4 0 6 0;
#P connect 6 0 0 1;
#P connect 6 1 5 0;
#P pop;
#P newobj 112 205 74 196617 p randomnoise;
#N vpatcher 84 195 684 595;
#P window setfont "Sans Serif" 9.;
#P window linecount 0;
#P newex 289 124 27 196617 t f f;
#P newex 289 80 27 196617 t f f;
#P window linecount 1;
#P newex 265 175 51 196617 pack 0 0.;
#P outlet 265 209 15 0;
#P inlet 259 60 15 0;
#P newex 259 102 40 196617 uzi;
#P newex 306 149 212 196617 expr (sin(($f1 / $f2 ) * (2. * 3.1415926)));
#P inlet 289 60 15 0;
#P connect 3 0 2 0;
#P connect 7 0 5 0;
#P connect 5 0 4 0;
#P connect 0 0 6 0;
#P connect 6 0 2 1;
#P connect 2 2 7 0;
#P connect 7 1 1 0;
#P connect 1 0 5 1;
#P connect 6 1 1 1;
#P pop;
#P newobj 242 205 60 196617 p sinewave;
#P message 111 105 42 196617 size ¥$1;
#P newex 162 105 66 196617 mstosamps~;
#P flonum 371 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P toggle 495 85 15 0;
#P message 495 206 43 196617 loop ¥$1;
#P message 464 85 29 196617 stop;
#P message 410 85 51 196617 startloop;
#P message 257 85 66 196617 set num2snd;
#P flonum 325 85 42 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P user waveform~ 325 106 200 74 3 9;
#W mode select;
#W mouseoutput continuous;
#W unit ms;
#W grid 1000.;
#W ticks 0;
#W labels 1;
#W vlabels 0;
#W vticks 1;
#W bpm 120. 4.;
#W frgb 33 0 0;
#W brgb 60 178 173;
#W rgb2 0 95 255;
#W rgb3 0 0 0;
#W rgb4 0 0 0;
#W rgb5 190 137 255;
#W rgb6 100 100 100;
#W rgb7 100 100 100;
#P message 71 105 35 196617 write;
#P newex 325 185 29 196617 sig~;
#P newex 325 227 35 196617 *~ 1.;
#P newex 325 206 89 196617 groove~ num2snd;
#P button 112 185 15 0;
#P flonum 112 251 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 74 233 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P user ezdac~ 325 249 369 282 0;
#P button 111 67 15 0;
#P newex 111 85 27 196617 i;
#P number 128 67 51 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 71 126 86 196617 buffer~ num2snd;
#P newex 112 230 78 196617 peek~ num2snd;
#P comment 325 68 35 196617 speed;
#P comment 128 50 76 196617 set length (ms);
#P connect 40 0 41 0;
#P connect 30 0 41 1;
#P connect 14 0 3 0;
#P connect 24 0 3 0;
#P connect 39 0 3 0;
#P connect 6 0 5 0;
#P connect 5 0 24 0;
#P connect 10 0 26 0;
#P connect 41 0 2 0;
#P connect 8 0 2 0;
#P connect 26 0 2 0;
#P connect 25 0 2 0;
#P connect 2 0 9 0;
#P connect 4 0 5 1;
#P connect 30 0 26 1;
#P connect 5 0 23 0;
#P connect 27 0 26 2;
#P connect 23 1 30 0;
#P connect 33 0 25 0;
#P connect 30 0 25 1;
#P connect 17 0 15 0;
#P connect 16 0 13 0;
#P connect 20 0 11 0;
#P connect 19 0 11 0;
#P connect 18 0 11 0;
#P connect 13 0 11 0;
#P connect 11 0 12 0;
#P connect 12 0 7 0;
#P connect 28 0 12 1;
#P connect 12 0 7 1;
#P connect 29 0 28 0;
#P connect 15 2 11 1;
#P connect 22 0 29 0;
#P connect 15 3 11 2;
#P connect 21 0 20 0;
#P connect 31 0 15 4;
#P pop;

土曜日, 12月 30, 2006

collect.apply

何度か言及してるjamesが京都で運営してるデザイン会社。
http://www.collectapply.jp/

dj kawasakiとか今元気な人達のアートワークを手がけててびっくり。max de wardenerのは以前berlinに行った時にジャケ買いしてしまった。

彼は学生時代はfine artを専攻していて、様々なメディアを使う中でコンピュータと出会ったそうだ。彼と一緒にプロジェクトを進めて行くうちにとにかく具体的に物事をイメージすることを癖付けるようになった。そのためのメソッドは色々あって、シナリオを考えたり、スケッチしたり、スクラップを集めたり、モックを作ったり。コンピュータがないと作れない、とか知っている技術の中でなんとかしようとしてしまう、という悩みが常につきまとってるんだけど、少しは楽になれたかも。

とにかく作り続けること。ある時は良くて、ある時は悪くていい。けどthink everithing!全てには理由がある。何でその色、何でそのグリッド。自分が決めるのであってグリッドが決める訳ではない。自分の感覚を信じる。多少機能を犠牲にしても雰囲気や意図を伝えるための全体を貫く基本的な概念を大切にする。けど本末転倒にはしない。newsをみるのは悪い習慣。

土曜日, 12月 23, 2006

20061222

何故かプリンタの設定がうまくいかず徹夜したのに結(vjで参加してるイベント)のポスターが印刷できず。少し横になったと思ったら撃沈して起きたら10時。9時45分から動画まわりの引っ越しだった!で、大急ぎで家戻って用意して着いたのが10時半頃。遅れを取り戻すために必死で階段を昇り降り。引っ越しダイエット、引っ越し筋トレ。ソフトピアのオフィスにも大量の荷物。今度は台車をひたすら押す。トラックいっぱいに積んでも足りないくらいの荷物の多さだったけど、工具や本を大事にしてる感じがらしくて何か良かった。午後2時くらいには終わって、星君の家でカレーをご馳走になる。テレビ観ながら昼寝。最高の休日。先日入稿した結のフライヤーも届いた。思ってたよりもいい出来で安心。

夜8時、お礼にと大垣no.1焼き肉屋の呼び声高い七輪亭で打ち上げ。何を食べてもおいしい。ビールがおいしい。制作の話、これからの話、IAMASの話、仕事の話、地元とか実家とか親孝行とか...動画まわりの宇田さんはIAMAS入学前から本当に憧れてたし、ペーターさんは入学してから色々なとこで写真だったり設営だったりデザインだったり何でもできてすげーと思ってたので今回のような機会に恵まれたのは素直に嬉しい。参加メンバーでの展覧会が実現したら本当にいいなと思う。北鎌倉お手伝い組にも強力な人達が揃ってるし。

引っ越しの手伝いに開眼したのは平野さんの時で、あの時は大量のごみを捨てにいくのが面白かったのと今までの話、これからの話、を普段とは違うテンションで聴けたから。平野さんも物が多かったんだけど、古い物と新しい物が整理されないまま同じ空間に存在してる状態はアーティスト的な直感には良い働きをするのかもしれない。それは前田さんが言ってたんだけど。加藤あいのデビュー当時のグラビアとかあったしな。池田亮二の8cmシングルとか。買ったばっからしきmotokoの写真集とか。今年は中西君ヤマコー、そして実家と数々の引っ越しを手伝って、物理的にも精神的にも色んな物をもらった。来年は長く一緒にいた人達が一気に居なくなるので寂しいが、全引っ越しに参戦して本気で送り出そうと思う。

人がある場所に住んで生活すること、ってのは基本的すぎて普段はあまり意識しないのだけど、自分が大事にしてるものとか、部屋の匂いとか、引っ越しの時に気づくことって多くて、初めて訪れた土地から、ぼーっと考え事してても帰れてしまう所になって、他の人から見ればどうってことない風景が自分にとっては特別な景色になってることの不思議さ。自分は世界中のどこに住んでもいいんだ、という感覚とか。

とりあえずでも、物は減らす方向で。

金曜日, 12月 22, 2006

mtunes and ptunes

max/mspからiTunesをコントロールするためのエクスターナルと、processingで作ったiTunesのコントローラー作りました。
download mtunes
download ptunes(controlP5が必要です)

javaで書いてるのにどっちもosxのみなのが残念ですが(applescript呼び出してるしね)。しかも"再生/一時停止"と"一曲飛ばす/戻る"しかない。もともとはJAVA SWING HACKSっていう本読んでてjavaからitunes制御するプログラムを見たからなんだけど、今後再生トラック名取得だとか、そういう機能を追加してけばそれなりに面白くなるかも。なるかしら。iTunes使ってdjするとして、曲名とかをjitterに渡すとか再生回数を反映したグラフィックをprocessingで作るとか何とか。。。それなりに使いやすいインターフェースになりそうな気もする。ブラウザから動かせれば(特に理由はないけど)いいのになー。要調査。2月の展示に何かしら使えれば最高。

aka.wiiremoteのmxj版はできるのか。。。
先日このオブジェクト使ってwiiリモコンで落語やりました。

水曜日, 12月 13, 2006

openal

OpenALっていうOpenGLの音版みたいのがあって、今調べてる。ちょっと前ではlwjglってのを使って勉強してたんだけど、processingからjavaバインディングのjoalを使う方法がフォーラムに載ってたので試してみた。toxi最高。結構いい感じ。もうちょっと形になったらアプリにして公開するつもり。

やっとsoundvoyager遊んだのだけど、こういうの作りたかったから本当に悔しかったー。

月曜日, 12月 11, 2006

20061210

今週は最高に忙しいのでblog書いて現実逃避とスケジュールの確認。

火曜日はganguプロジェクトで金曜日のプレゼンの準備。制作物(商品)のタッチポイント、消費者がどのように商品と出会うか、という状況を想像してダミーの広告や雑誌やcmを作る。

水曜日はamsの家具作り。マイクとスピーカーとcdsがついたユニットを作り、音の抽き出しを作る予定だったが、抽き出しをひとつのモジュールと捉え、別のユニットとも交換ができるような設計にすることにした。俄然可能性が広がる。jamesや入江さんの発想、アドバイスは本当に面白い。amsが目指す情報提示は、空間と情報を結びつけること、正解ではなく曖昧なsuggestion。プロジェクトの中でjamesが何度も言っているのは「技術的にできるできないではなく、どうなってれば完璧かを想像しろ」。そしてそいつがどうインタラクションして、僕らの生活にどんないいことがあるのか。イメージを強くもつこと。そのためのスケッチ。ラピッドプロトタイピング。頭の中で考えているうちに技術的な方向ばかりに目が行ってしまって小さくまとまってしまいそうになるので、この言葉を何度も繰り返す。2月後半には展覧会もあることだし、制作のスピードを上げなければならない。とにかく手を動かすこと。午後はrelational design。今週はandreasが出張でいないけど、こちらも1月中旬までにphpで携帯コンテンツを作らねばということで、必死で勉強中。この授業も大変だが学ぶところは多い。もうちょっとまとまったら記事にするつもり。夜からは前述したgangu/amsの展覧会ミーティング。アートディレクターとして頑張る予定。

古堅さんに頼まれてるwebコンテンツもそろそろ締め切りが近い。実際に使う時の流れを考えてインターフェース、インタラクションのデザインを考える。隔月でvjをさせてもらってるイベントのフライヤも入稿してしまいたい。

木曜日は色々手伝った2年生の修士制作本審査。裏でams?

金曜日はganguプレゼン本番。

それぞれheavyな課題が山積みだけど、乗り切れば一気に伸びるはず。ここで身につけた技術を全て連動させて年次制作とするつもり。授業のない年末年始が勝負。

金曜日, 12月 01, 2006

whichin



javaの勉強もだいぶ落ち着いてきたところで、maxのエクスターナルオブジェクトを作ってみました。
mxj whichin 数字
で数字の数だけインレットを作り、どのインレットからbangを受け取ったかを出力します(第1インレットが0になります)。tutorial読めば一瞬でできるものですが、何となく使いどころはありそうです。maxオブジェクトもeclipseで開発すれば非常に楽。max.jarファイルを追加して、ワークスペースをCycling '74/java/classes/にしておけば、あとはコードを書いて保存するだけでclassファイルができます。すぐ試せて便利。mspオブジェクトも作ろう!

download whichin