pyprocessing

pythonでprocessingっぽいことをやろうというプロジェクトが立ち上がってた。

pyprocessing

楽しみ。

bruceとかでかっこいいプレゼンが出来るようになると嬉しい。

Chuckで遊んでみた

朝からChucKで遊ぶ。

編集した結果をリアル気味に反映させたくなったのでperlで書いた(loop.pl)。

use Path::Class;

my $file = $ARGV[0] || die "filename not found";

my $t = file($file)->stat->mtime;

system "chuck", "+", $file;

while(1){
  sleep 1;
  unless ($t == file($file)->stat->mtime) {
    system "chuck", "=", "1", $file;
    $t = file($file)->stat->mtime;
  }
}

あとはChuckのサンプル(test.pl)

SinOsc s => JCRev r => dac;

.5 => s.gain;
.2 => r.mix;

[ 1, 3, 5, 7 ] @=> int note[];

while( true )
{
    Std.mtof(Std.rand2(1,3)*12 + 48 + note[Std.rand2(0,note.cap()-1)] ) => s.freq;
    140::ms => now;
}

これで、chuckのほうをサバクラにするために

chuck --loop

で動かしておいて、別の端末から

perl loop.pl test.ck

これで、test.ckをエディタで編集して保存すると反映される。

Arduinoとかで制御すればもっと面白くなりそう。CdSセンサとかで変化するようなのをつくってみてもいいし、ChucKをネットワーク越しに制御できるので音サーバーというのも面白いかもしれませんな。

ProductName Making Things Talk -Arduinoで作る「会話」するモノたち
Tom Igoe
オライリージャパン / ¥ 3,990 ()
在庫あり。

Visualizing Data chapter 10 (Parsing Data)

10章はデータのパースに関して。11章はjavaとの統合について(こっちは流した)。

ProductName ビジュアライジング・データ ―Processingによる情報視覚化手法
Ben Fry
オライリージャパン / ¥ 3,780 ()
通常3~5週間以内に発送

  • 固定長のデータはsubstring().trim()
  • html parserとしてtidyを使う他に組み込みのHTML parserもある
  • JSON parserもある

11章を読んでたらソースもそのうち読むかーって気分になったので

svn co svn://processing.org/trunk/processing processing

しといた。

というわけで、読了。続いてBasic Examplesあたりをやっていこうかというところ。

Visualizing Data chapter 9 (Acquiring Data)

9章はデータの取得方法に関して

ProductName ビジュアライジング・データ ―Processingによる情報視覚化手法
Ben Fry
オライリージャパン / ¥ 3,780 ()
通常3~5週間以内に発送

HTTP経由とかSQL経由でデータが欲しいことは多いので、この章は何度も読み返すことになるのでしょう。

あとXMLサポートは1.0からコアに含まれたらしい。

Visualizing Data chapter 8 (Networks and Graphs)

8章はprocessingでネットワークを描いてく。とりあえず写経から。

sample

後半はanemoneをEclipseで。apacheのログがcombine形式でないので情報が足りないけど、ネットワークが成長していく様は見ていて楽しいし、飽きない。

sample

例えば創薬プロジェクトをanemoneみたいなのでビジュアライズしてみたいと考えている。先行化合物の類似性とか、薬理活性が変化していく様を直感的に捉えてみたいのだよなぁ。

ProductName ビジュアライジング・データ ―Processingによる情報視覚化手法
Ben Fry
オライリージャパン / ¥ 3,780 ()
通常3~5週間以内に発送

A Face for Richie Hawtin

ruby-processingのところのGalleryにあったA Face for Richie Hawtinはマイクの音に反応する。

ffrh

椎名林檎の時は暴走するを流して適当にスクリーンショットを撮ってみた。

あとでコードをちゃんと見てみる。

Music is Math

これかっこいいですの。


Music Is Math from Glenn Marshall on Vimeo.

Gainerでピンポン玉ディフューザー

とりあえずprocessingでいじる。マウスの位置に応じて色が変化するように。

コードは単純なので色もあんまり出なかった。

import processing.gainer.*;

Gainer gainer;
void setup(){
  gainer = new Gainer(this);
}

void draw(){
  background(0);
}

void mouseMoved(){

  float rx = (float)mouseX / width;
  float ry = (float)mouseY / height;
  int v0 = int(255*ry);
  int v1 = int(255*rx);

  gainer.analogOutput(0, v0);
  gainer.analogOutput(1, max(v1-v0,0));
  gainer.analogOutput(3, max(v0-v1,0));
}

参考

今日のaction-coding

drawCirclesを参考に。

def setup
  size 600, 600
end

def draw
  colorMode(HSB)
  dia = 60
  len = width/dia +1
  background(255)
  smooth()
  grid len, len, dia, dia do |x,y|
    fill(random(360),150,200,200)
    strokeWeight(random(20))
    stroke(random(360),150,200,200)
    f = random(15)
    ellipse(x, y, dia-f, dia-f)
  end
end

circles

action-codingを試す

LLで気になっていていたaction-codingなどをやりはじめている。

朝起きたら、Visualizing Dataのようなものこそ、こういうやり方がいいんじゃないかと思ったので、そのままおもむろに枕元にあるmacbookを開いて突然入れ始めた

action-coding

jythonだとselfをいちいち書かないといけないのが多少うっとうしいのだが、rubyだとそれがないだけでも書きやすい。あと、セーブするタイミングでグラフィックも更新される、対話っぽい環境がマジで楽しい。

Visualizing Dataのインタラクティブなscatter plotの章もこれでやると、楽しいかもしれんので、後でやり直してみよう。

ProductName Visualizing Data
Ben Fry
Oreilly & Associates Inc / ¥ 4,516 ()
通常24時間以内に発送

ちなみに僕のエディタはemacsなので、run.commandを別のターミナルで起動させとかないといけないけど、emacsから起動できるようにしとけばいいかもしんない。

Next Page