水曜日, 6月 27, 2007

sketch20070627



tex/tspをfileから読めるようにした時に出て来た人。横山裕一みたい。

minim用に書き直したやつとか何となく考えてる方向だとDasherみたいな入力方式が面白いのかも。
Inference Group: Dasher Project: Home

20070626

バイト順調。地元の百貨店のweb作り。とりあえず与えられた仕事はきちっと時間内に消化。本部の事務所で作業してるんだけど、他に若い男子がいないからか上司に御飯おごってもらったりジュースおごってもらったりして可愛がってもらってる。もう24歳なのに。

社食がすげーおいしい。学食がないのでわいわいした感じも楽しい。

htmlとcssのちゃんとした勉強がしたい。見出し要素なんてサイズでかくしたい時は少ない数字、って教わった気がする。本当は階層化すべきでちゃんと順番に使うべきなんだそうだ。割とそういうweb標準的なやつにのっかって作ってる。従業員の服装チェック用のイラストとかもイラレで作ったりした。僕だけ私服でこんないい加減なのに変なのー。
通勤はしんどいけどmix聴きながらだとちょうどいい。

エントリが近い。曲はほぼできて、もうこれ駄目だったら僕がアホでセンスないってのでいいです。

bookmarkletまたやってた。タイトル取得して、リンクタグをpromptで出してくれる。getTitleAndLink。
letsbookmark
上のリンクもそれで貼ったよ。これからここにどんどん追加していきます。生産性あげてこ。

あと、翻訳はpdでサウンドデザイン、にしようかと。全く意外性ないね。
Puredata sound design tutorials

CCライセンスってんで、気軽に気長にやろうと思う。pdフリーだし。

月曜日, 6月 25, 2007

linkimage

javascriptの勉強のために手始めにbookmarklet。いつも通り見よう見まねでとりあえず動くものを。で、今後色々調べくうちに何となく気づいたらちゃんとできるようになってる、てのが理想。
ページ内の画像のみを表示して、クリックでその画像のURLに飛ぶ。これでどっかのディレクトリに連番で置いてある画像のURL取得して、terminalからcurlして一気に落とせる。もっとスマートな方法あるはずだけど、ひとつひとつ表示してCtrl+クリックでSave link as...から比べれば進歩。こうやって次のアイデアがどんどんでてくるんだな。ラピッドプロトタイピング重要。

document.images[index].src

で画像のURLが取れるとか、思ったより簡単。

linkimage
リンク先のページの、linkimageってやつをbookmarkするか、bookmarktoolbarにドラッグ&ドロップしたら使える。はず。firefoxでしか試してないけど。

木曜日, 6月 21, 2007

20070620

読書順調。前日アルバイトの帰りに舞城王太郎の「みんな元気。」文庫が出てたので買う。舞城が好きなのは深刻な時に人間は変なこと考えるってとこがちゃんと書かれてるから。

身近な人が突然死んだとして、勿論悲しいんだけど、それより「今日の分は作り置きがあるけど、明日から誰が御飯作るんだろう」とかそう言うことを思ってしまう。別にその人を御飯作りマシーンと思ってた訳じゃないし、他に思うべきことはありそうなものだけど。で、その言葉はどういう心の動きから生まれて来たのかわかんないくらい複雑な感情を経たものではあるはずなんだけど、もしその言葉だけをいきなしその場で口にしたら「何言ってんの」という話になる。けどそういう気持ちは確実に存在するし、「ここでこういうこと言うべきじゃない」ということも勿論考える。それは多分、他人は自分の心に起こった感情と言葉の飛躍はカウントしないで表面の意味しか受け取ってくれないと思ってるからだろう。何か舞城はその辺の気持ちとか気分の移り変わりの瞬間を丁寧に抽象化してる気がする。

対人関係で一番難しいのは、その言葉が実際に指し示しているところが違うにも関わらず、字面が一緒であったりしてしまうために誤解が起こってしまうこと。ある言葉に対して思い浮かべるイメージは人それぞれで、ディティールを詰めていけばいくほど違ってるはず。にも関わらず自分が納得できる言葉が納得できる文脈で使われてないと理解しない、あるいは自分が考えているイメージに引っ張られすぎちゃう人ってのが居て、困ったものだよなぁと思う。その人が、というよりは言葉っていう仕組みそのものが。

jamesがちょっと前に水着の女の子が載ってる漫画雑誌が転がってるのを見かけて「Pornography, everywhere...」とため息をついてたのが印象的で、やっぱ水着だったらセーフ、脱いでたらアウト、とかそういう単純な話じゃないんだよなーと改めて思ったりした。

で、そんなことを考えたりしながら録音室で作業しようと思って事務に鍵を借りに行くんだけど、リストに載ってない人は駄目、って言われる。推測するにそのリストは録音室使用説明ワークショップに参加したか否かなので、僕はそれ既に受けてるから大丈夫だと思う、と言い、事実過去のリストには僕の名前が記載されてる。過去のものが有効かどうかはわかんないから確認してもらますか、と言われ、無効だったら過去のものは捨ててしまえばいいはずで(というかややこしいから捨てるべき)、何でそれがそこにあるか考えれば答えは出そうなものだし、あなたが確認するのが筋じゃないですか(リストにない人はどうすればいいのかとか知っといた方が今後のためにもなるんじゃないですか)、とか思ったんだけどそれらを説明すると人間としての生き方とかを色々言わなきゃならなくなって面倒だし分不相応だったのと、何かしら向こうにも事情(たまたま体調が優れなくて気分が悪かったとかでもいい)があったりするかもしれないから引き下がった。

とは言え、僕が録音室を借りるのは就職に向けて納得いく音楽を作るためで、今の忙しさを考えれば早いとこ作業にとりかかれないとまずいのだ。締め切りに間に合わなくて就職できなくて負い目を感じながらその後の人生を過ごし、何かのタイミングで今日のことを思い出して、許せない気持ちになるのか笑い飛ばせるのかは知らないけど、「鍵貸して下さい」にそれだけの情報を詰め込めないし、そういう事情を説明してもいられないし、相手にそこまで汲み取れというのも無理。困ったなぁ、と。

「残念ながら、ヒトの知性はこの種の問題を解くのが苦手である。ヒトは、中央集権制をはじめ、一連の明快な命令、因果関係のようなわかりやすい思考法に慣れ切っている。ところが、大規模な相互作用系では、各構成要素が最終的に影響を及ぼすため、標準的な思考法では歯が立たない。単純な図式や言葉に頼った議論など、あまりに説得力がなさすぎるのであり、あまりに近視眼的なのだ。」
— スティーヴン・ストロガッツ「SYNC」

そういうことをグチグチ思ってるかと思えば、スッと切り替えてさっきまで考えてたことなんてなかったみたいにプログラミングとかできちゃうから便利だなぁと思う。

三輪先生と面談。次のステップが見えた。

月曜日, 6月 18, 2007

20070619

tumblrとかffffound!の反動か文章ばっかり読んでる。黒井千次「石の話」。ものに象徴的な意味を与えたり、そのもののたたずまいに心情を投影させるのがうまい。細かい描写が丁寧。スーパーの袋に入った乾電池の重さ、とかがリアルに感じられる。「夜と光」は深夜ラジオを聴いてる人達が次々に行動を起こしてく話なんだけど、ちょうどその日蛍を見に行ってて、同期についてぼんやり思いを巡らせていたところだった。そんで気になってたスティーヴン・ストロガッツの「SYNC」を図書館で借りる。

ハンス・アビングの「金と芸術ーなぜアーティストは貧乏なのか?」の輪講。政府の助成金などは芸術家に「作品を売る」という気持ちをなくさせ、またステータスも与えるのでそれを欲しがる新規参入の芸術家が増え、結果数が増えすぎて供給過剰が起こり全体の取り分が減る、とか結局助成金も生活費よりかは制作費にまわるので慢性的に貧困であるとか。

芸術家においてはプロとアマの線引きがよくわからない、というのが(経済学的に解釈する場合の)問題としてあった。確かにスポーツだとプロ契約してるかどうか、というのが明確な基準だけど、アートの場合、どっかと何かしらの契約を結んでいるからとか、作品売って食ってるからといって、必ずしもその人を「プロの芸術家」もしくは「本物」という言い方をするとは限らない。

前回の内容とも関わるんだけど、やはり芸術に関して間違った情報や神話が蔓延していて、いつ諦めたらいいのかがわからないとか、難しいなと思う。「好きを仕事にする」とかでも問題だと思うんだけど、信じていればいつか報われる、と思ってずっと過ごしてる人もいるだろう。面白いのは、何故この神話が間違っているか、というのは、そういうことが起きないからではなく、稀に起こるからという意見。

思い起こせばサッカーを小学校4年で始めて、6年になる頃には何となく自分の才能の限界みたいなものに気づいてた。それはちゃんと情報が与えられてたから。選抜システムもあったし、もっともっと強いチームと対戦したこともあった。

じゃあアートはどうかというと、コンペを否定し、「売れること」を笑い飛ばし、自分がジャッジされることを徹底的に先延ばしにすることができる。芸術に奉仕することが一番だと考える。これを内的報酬と呼ぶ。芸術家は金銭や名誉などの外的報酬よりも内的報酬を優先しているから(金銭的には)貧乏であるというテーゼに行き着く。つまりは自己満足。自己満足してるからお金はいらない、という人が多い。何でそんなことができるかというと、副業してるとか、家がお金持ちだとか。内的報酬と外的報酬っていう考え方は結構シンプルで目から鱗。

経済学的な観点から言えば、ある職業がずっと儲かってたり貧困だったりというのが続くのはあり得ないそうだ。アートでは食ってけないと皆が思えば、芸術家を目指す人は少なくなり、需要と供給のバランスがとれ、次第に芸術家は好況に向かう、と。でもそんなことが未だかつて起こってないことも作者は知っている。

という訳でかなり複雑なんだけど、経済学からアートを眺めてみるのも面白い。日本と海外での状況の違いもあるし。終わった頃にもっかいまとめるつもり。

友達に信濃川日出雄のfineって漫画読ませてもらって、面白かったけど落ち込んだ。救いがあるように思える結末だけど、実際の場合どうなんだろ。結局神話を強化する形。アビング本の方がまだ救いがあるのかな。すっきり諦められる方がいい気もする。何かもっと、ないのかな。今の人間のあり方って。

日曜日, 6月 17, 2007

realtime vjs

amachangさんの資料と、kosekiさんのmemoをマッシュアップしたら、ライブコーディングでvjができるのでは...。

javascript、やっぱ勉強すべきだ。正規表現でメールから情報抜き出したりしてもてたいし、vjでももてたい。scriptographerも使いこなしたいし。

何となく文字の並びでこれとこれが対応してんのかなーみたいな感じでやってみただけなんでもっとちゃんと調べないとな。
evalにチェックして実行間隔短くしたらグリッチー。

realtime vjs!!!

土曜日, 6月 16, 2007

program switcher

processingで例えばvjする時とか、どうやって切り換えするかなって疑問は前からあって、やっとその答えが出た。
abstractmachine >> Polymorphism
abstractmachine >> abstract classes

ポリモーフィズムね、抽象クラスね。やったやった。でも使い方全然わかってなかった。本当こういうテクニックって、できる人にとっては言うまでもないことで、僕くらいの知識だと思いつかないからなかなか共有されないんだよね。ここで駄目なやり方として紹介されてるswitch文で書いてた。

Polymorphismのはdouglasのページのをそのまま実行すればいいとして、abstract classesでのやつをやってみた。これでいいのかな。確かに変数のことで悩まなくて済むしコードも綺麗だ。Head First Javaで勉強し直そう...。


abstract class Animation {
void setup() {
background(255);
}

abstract void draw();
}

class Opening extends Animation {
int i=0;
void draw() {
background(255);
if(i>width) {
i=0;
}
line(i, 0, i, height);
i++;
}
}

class Middle extends Animation {
int i=0;
void draw() {
background(255);
if(i>height) {
i=0;
}
line(0, i, width, i);
i++;
}
}

class Ending extends Animation {
void draw() {
background(random(255));
}
}

Animation myAnimation;
void setup() {
myAnimation = new Opening();
}

void draw() {
myAnimation.draw();
}

void keyPressed() {
switch(key) {
case 'a':
myAnimation = new Opening();
break;
case 'b':
myAnimation = new Middle();
break;
case 'c':
myAnimation = new Ending();
break;
}
}

金曜日, 6月 15, 2007

textsp_minim

minim1.1が出たのでtex/tspをminimで実装してみた。
textsp_minim

essと音の作り方が違ってるので、結果出てくる音もだいぶ変わってる。essだとAudioChannel()をnewする時にdurationを設定できるので、それが一文字当たりの音の鳴る長さにしてたんだけど、
minimの場合

AudioOutput out = Minim.getLineOut(Minim.STEREO, 512);

のところでサンプル数を指定する。で、512サンプルだから、44100Hzの場合、86.1328125msec。一文字だけだと音が鳴らないのは短過ぎるからなのだろうか。
サンプリングレートを直接変える方法がすぐ分かんなかったから{}では周波数を変えることにした。

オシレータを鳴らす文字を読み込む毎にaddSignalしてるので、数が増えるとクリップする。
行末まで読み込んだら頭に戻ってclearSignals()でオシレータをクリアしてる。

こういう感じで解釈を変えると音が変わるのは当然なんだけど、解釈しやすいように解釈してるってのがポイントで、それによる影響(インターフェースによる規定)ってのを考えたい。ある箇所を緩めたり、厳しくしたら一気に何かが開けた、みたいなことが起こる気がする。

やっぱ今くらいのワイルドな状態が一番面白い。洗練させてくと普通になっちゃう。ワイルドさを保ちながら成長させるとか、とりあえず普通レベルまで持って行ってそこ超えなきゃとも思うんだけど。すげー馬鹿でシンプルか、すげー賢くてシンプル。どっちか。

ドキュメント和訳とかしようかな。これに限らず色々和訳したい。別に誰かのためとかじゃなくて、ライフワークとして。日本語を英語にするのでもいい。技術的な文献もいいけど、何か面白いやつ翻訳したい。これ翻訳すんの?っていう。何にしても僕はどこかに乗っかった状態で何かやるのがいいみたい。0から1を作るタイプじゃない。こっそり考えてはいるけどね。

20070614

GTD的にも色々と気になってることは書き出すと良いそうなんで、書く。

twitter始めて、tumblr始めて、ffffound!にも参加するようになったお陰で相当な量の画像を見たし文章も読んだし音も聴いた(midiさえも)。で、じゃあ自分は何か作ってるかと言うと、企業にapplyするための音楽を作っていて、久しぶりにmax/mspとかsupercollider3を起動させてる。しばらく離れていたんだけど前より論理的に考えられてるというか、ちゃんと処理の流れを掴めるようになってるのでプログラミングがすげー楽。そんなに複雑なことしてる訳でもないけど。やっと最近mspで納得いく音が出つつある。でもまだ2007年の音じゃない。

demo124

音圧ねーなーって思うけど、下手に加工されたやつよりかはましかなと思う。もっとその辺も勉強しなきゃと思うんだけど。思い起こせばIAMAS入って最初に作った音楽はprotoolsのデモ版にキーボードからラインで音を取り込んで作った15秒ほどのやつで、リズムパターンは録音した素材をひたすら並べてた。いつの間にやらシステム組んだり新しいこと覚えたりする方に興味がいってしまって、音楽自体も流し聴きくらいでよく聴かなくなった。量と幅は増えてるんだけど。
そう言えば映像作家にもなりたかったのだった。絵も描けるようになりたい。色々ちゃんとやめないで続けておこうと思う。

必要があってunix関連のことを調べててようやく環境変数がわかった。

修士制作と論文に関しては、言語が既にインターフェースであるってとこに注目していこうと思う。言語が楽器。前林さんとも話してたけど、まぁ普通に修士クリアできるレベルってんじゃなくて、びっくりするようなブレイクスルーが欲しいところ。単なるバリエーションのひとつ感で終わらないこと。jamesとはとにかく手を動かしながらアイディア出しとブラッシュアップ、前林さんとは小さくまとまらないような目標設定。三輪さんとは厳密な定義付け。

来週からバイトが始まる。地域に貢献。webのこともっかい勉強し直す。

1ヶ月後には東京でVJ。名古屋と京都でもやるかも。jamesが作ってる映像がすごくいい。オペレーション用のパッチを書いてる。英語が上達した。

木曜日, 6月 14, 2007

gainer digital in


gainerでdigital inからmaxに値を送るとこで一瞬はまったので書いとく。d.inからはmetroで指定した時間間隔で毎回0なり1を出力し続けてる。なのでそのままだとsfplay~がちゃんと使えない。toggleの見た目的にはずっと1になってていけてそうだが、実際は毎回頭出しされてることになる。なので、togedgeを使って0から1、もしくは1から0になった時だけメッセージを送るようにしてあげればよい。togedgeはインタラクティブ系ではすげーお世話になるので覚えておくと便利。画像はd.inからのメッセージが1の場合と0の場合で別の音源を鳴らすデモのために作ったパッチの一部。
record~オブジェクトで1の間だけ録音したい場合もこれで対応できる。これやっとかないと一瞬録音されてまた次の1が来た時にbuffer~の内容が書き換えられてしまう。append 1メッセージを送れば一応togedge使わなくても回避できるけど、挙動が違ってくるので目的に応じて変えるべき。

月曜日, 6月 11, 2007

sketch20070611_3


tutorialそのままでgoogleのhtmlをpathとって加工。Export as PDF...で普通にillustratorでpathの編集ができる。

from urllib import *
page = urlopen('http://www.google.com/')
data = page.read()
size(400, 800)

fontsize(9)
path = textpath(data, 0, 10, WIDTH)
points = []
for point in path:
if point.cmd == CURVETO:
point.ctrl2.x += 5
point.ctrl2.y -= 10
point.y += 5
points.append(point)
drawpath(points)

page.close()

sketch20070611_tsp

sketch20070611_tex

金曜日, 6月 08, 2007

liveapi

ableton liveにpythonで何やらできるみたい。
LiveAPI.org

ループを並べるっていう非常にセンスを必要とするソフトだったから使ってなかったけど、これを機にやってみようかなぁ。学校で借りられるかしら。

木曜日, 6月 07, 2007

sketch20070607

NodeBox、まだ何するかは決めてないけど何となく役に立ちそうと思ったのは、当たり前かもしれないけど普通にpythonが動くこと。「初めてのPython」読みながらちょっと試す。

urllibモジュール使ったりすれば簡単にネットからデータを取得できる。google.co.jpのトップページ。wordscountのとこで適当な言葉を指定して、使われてる回数分四角を表示する。

from urllib import *
page = urlopen('http://www.google.co.jp')
data = page.read()
size(400, 800)
wordscount = data.count('google')
for i in range(wordscount):
rect(i*15, 0, 10, 10)
fontsize(9)
text(data, 0, 10, WIDTH)
page.close()

こういうのをもっと洗練させていけば色々面白い視覚化ができそう。pythonとかネットワークの勉強にもなるし。pdfとquicktimeムービーが書き出せるのもいい。mail用のモジュールもある訳だし、スパムメールの視覚化とか。こういうの。もうちょいポップなやつ作りたい。

他パラパラとめくりながら試してたやつ。

word = 'xo'
z = eval("word*10")
text(z, 0, 13, None)

とか。便利。

import os
print os.listdir(os.getcwd())

とかでカレントディレクトリにあるディレクトリのリスト出したり。os.mkdir('filename')でディレクトリ作ったりもできる。まだコンソールに出してるだけだけど、グラフィックにすぐ反映させられるはずで、それはやっぱ面白い。

こういうのは結構無駄っぽいけど、無駄な分あんまり人がやらない感じで、それによってあんまり見たことないようなグラフィックなりサウンドが生成できたらいいなぁと思う。同時にアルゴリズムとかコンピュータのコアな部分の勉強にもなりつつ。

あと、processingだとこれは多分こんなに簡単にはできないってのは、NodeBoxのfiles()メソッド使ってマウスダウンしてる間指定したフォルダ(絶対パス)内のjpgファイルをランダム表示。結構脳にくる。

size(600, 600)
speed(30)
def setup():
global f
f = files("/Users/poki_j/Documents/downloads/clipping/*.jpg")

def draw():
global f
if mousedown:
image(choice(f), 0, 0)

processingだと基本的にはスケッチフォルダ内にdataってフォルダ作ってそこに画像ファイル入れて読み込むし、読み込むファイルも拡張子だけの指定な場合、多分javaから何かしらをimportしないといけなさそう。そういう方法も知っといた方がいいような気はするけど。

火曜日, 6月 05, 2007

tex/tsp20070604

ゼミでの発表と現状。新奇性だとか何がしたいかとか一番苦手なとこを突っ込まれる。苦手克服のためにやってるので我慢。
音響的に面白くなるだけでは厳しいようだ。テーマになり得るとすれば「どこまで人間が操作して、どこから計算機に任せるか」とかその辺らしい。もっと他の作品を分析せよとのこと。何故こんなことをする必要があるのか。作曲なのかツールなのか落としどころをはっきりさせる。
改善すべき場所は自分でも分かってるし続けてくうちにブレイクスルーはあると思ってるから別に焦ることもないんだけど。

snapshot20070604

とりあえずタイポ作ってみた。クラス化してある。ていうとことか割と新奇性につながりそうなんだけど。ちゃんと説明してなかったのが悪いのかな。あとFFTして音量出してる。

to do
アルゴリズム見直し。
制御構造。
minim(1.1出た)に乗り換え。

音響的な部分以外での面白さって何だろう。それ追求するのに色々試しやすい環境としてはやっぱprocessing素晴らしいな。

土曜日, 6月 02, 2007

glich movie


processingでquicktime movie読み込んでglich。image(xpos, ypos, width, height)の値をランダムにして背景消さないだけでもそれっぽいのはできるけど、そこからarraycopy使ってランダムな長さ分だけbufferに入れて、ランダムな位置に表示するとさらにメッタメタのギッタギタにできる。落ち着いて計算して、もうちょっと色々試す。


import processing.video.*;
Movie video;

int movieWidth = 160;
int movieHeight = 120;
int buffer[];
int moviePixels;
int srcPos;
int dstPos;
int bufferIndex;
int copyLength;
void setup() {
size(400, 200);
// also try with other video sizes
video = new Movie(this, "station.mov");
video.loop();
moviePixels = movieWidth * movieHeight;
buffer = new int[width*height];
background(0);
frameRate(24);
}

void draw() {
srcPos = int(random(moviePixels));
dstPos = int(random(width*height));

copyLength = width*height-dstPos;

video.read();
image(video, int(random(width)), int(random(height)), int(random(width)), int(random(height)));

loadPixels();
arraycopy(pixels, srcPos, buffer, 0, int(random(moviePixels)));
arraycopy(buffer, 0, pixels, dstPos, copyLength);

updatePixels();
if(keyPressed==true) {
saveFrame();
}
}

sketch20070601


引き出しをモチーフにしたインタラクションデザイン。
シーソーみたいになってて片方に重心がかかると倒れて中の物がぶちまけられる。
上下の引き出しで片方が録音、もう片方が再生。

金曜日, 6月 01, 2007

movie like effect


これみてやってみた。要は彩度下げて明るさ落としてコントラスト上げてどっかに焦点決めてそれ以外をぼかして暗くしていい感じにノイズを入れれば良い。今まで全然レタッチってやってこなかったけどこんなに質感て変わるものなのかと思った。次はミニチュアのやつマスターしよ。

元画像。ちょっと前東京行った時に何も考えないでファインダーもモニタも見ないで撮った。