土曜日, 8月 22, 2009

2009年8月22日

通常業務が忙しくなるタイミングとチームのメンバーが夏休みに入るタイミングが運悪く重なり、加えて重い新規案件で先週から働き詰め。ようやく今日完全に休みになったけど明日は出社して月曜日のプレゼンに備えなければならない。

9月末まではこれに付きっきりになりそうで、今月末にとる予定だった夏休みは先延ばし。(#^ω^)というところにメールが届いて、10月にクロアチアのザグレブで開かれるデバイスアートの展覧会にsonicodeを出品できることになった。渡航費と滞在費が出るということで、夏休みをそこに思いっきりぶつけることにした。こんな機会でもなければ行くこともなさそう。

ちょうど10月には別件で展示のお誘いがあったので両方に使える形でうまいことアップデートしたい。

などと考えつつBBOY PARKに行く気力もなく家でだらだらと勉強。
Programming Interactivity」はProcessingとArduinoとopenFrameworksでインタラクティブアートを作るための本。考え方や興味が近いので、デザイン方面からプログラミングに入った人には理解しやすいと思う。短期集中で一気に読みたい。一緒に買った「Beautiful Data」は美学寄りというか論文的な内容。こういうのが基本にあるかないかでアウトプットも違ってくるだろうな。Radioheadの「House of Cards」の制作背景についても載ってる。

あとは「かんたんプログラミングCGI/Perl」。Perlはネットで面白いことしてる人が結構Perl使いが多く、会社で使える便利スクリプト(スケジュール確認とか)を書いてる人もそうなので是非とも覚えたいところ。初めてCGIを動かす時に想定されるエラーや、その原因と対処法も書かれていて、丁寧で読みやすい。

pythonも好きなので「集合知プログラミング」に加えて「Think Python」というフリーの本を読んでいる。How to Think Like a Computer Scientistという副題がとてもそそる。インタラクティブアートに興味を持ったのはああいう発想がどういうところから出てくるのかがわからなかったから。そもそも現代美術に興味を持ったのもそうだった。調べていくにつれ、それぞれの分野にはそれぞれの文脈があり、突然それに出くわした人にはショックだったりするが作った本人にとっては割と当然の流れで作っていたりするものなのだと知った。そういうところでここ2、3年興味があるのはプログラマ(少し前だったら広告で何千万というお金を使ってどう面白いことをするか、みたいな発想に憧れてたけど、このご時世だし)。

この間試したEcho Nestとかもそうだけどデータの可視化、可聴化で何か面白いことをしたい。

プログラマの人達は本とか読まないでも色々できてしまうのかなと思っていたけど、実は逆というかものすごく本を読んでいる。だからこそ頭にも叩き込まれているんだろうなと思い、最近はできるだけ僕も買うようにしている。彼らが自宅作業を好むのも会社より資料が充実しているからのようだ。思えばうまいデザイナーもそうだった。やっぱりいいものを見ている。

火曜日, 8月 11, 2009

Processing IDEからEcho Nest APIを使う

Echo NestのJavaクライアントが出ていたのでProcessingで動かしてみた。
Echo Nestが何なのかよくわかってないけど、とりあえずネットと音という大好きな要素が混ざっている。
曲やレビュー、記事のリコメンドからテンポ、ビート等の音響解析にも使えるらしい。

まずはdeveloper用のサイトでEcho NestのAPI Accountを取得してAPI Keyを発行してもらう。
サイトも綺麗だしブラウザから実行例を見られるので勉強しやすい。APIキーとか入れといてくれてる。

Echo NestのJava APIをダウンロードする。

Javaのライブラリなので、OSXの場合"ユーザ名/Library/Java/Extensions"以下にEchoNestAPI.jarを置いて.bash_profileにCLASSPATHを書くのでもいいけど、Documents/Processing/librariesの中にEchoNestAPIというフォルダを作り、さらにlibraryフォルダを作って、その中にEchoNestAPI.jarを入れても動く。ProcessingのIDEから簡単にimportできる。

JavaのサンプルそのままだとProcessingのIDEの場合for文のところでエラーになってしまうので書き換えた。
import com.echonest.api.v3.artist.Artist;
import com.echonest.api.v3.artist.ArtistAPI;
import com.echonest.api.v3.artist.Audio;
import com.echonest.api.v3.EchoNestException;
import com.echonest.api.v3.artist.Scored;
import java.util.List;

String API_KEY = "自分のAPI KEY";
String ARTISTNAME = "weezer";

ArtistAPI artistAPI;

try {
artistAPI = new ArtistAPI(API_KEY);
List<Artist> artists = artistAPI.searchArtist(ARTISTNAME, false);
if(artists.size()>0) {
for(int i=0; i<artists.size(); i++) {
Artist artist = artists.get(i);
List<Scored<Artist>> similars = artistAPI.getSimilarArtists(artists, 0, 10);
println(" === Similar artists for " + artist.getName() + " ===");
for(int j=0;j<similars.size(); j++) {
Scored<Artist> simArtist = similars.get(j);
println(simArtist.getItem());
}
}
}
}
catch(EchoNestException e) {
System.err.println("Trouble: " + e);
}


実行結果
=== Similar artists for Weezer ===
The Smashing Pumpkins
Ozma
Biffy Clyro
The Breeders
Rivers Cuomo
Nerf Herder
Jimmy Eat World
Foo Fighters
Veruca Salt
The Flaming Lips
=== Similar artists for Weezer Tribute ===
The Smashing Pumpkins
Ozma
Biffy Clyro
The Breeders
Rivers Cuomo
Nerf Herder
Jimmy Eat World
Foo Fighters
Veruca Salt
The Flaming Lips
=== Similar artists for Matt Sharp (of Weezer, The Rentals) ===
The Smashing Pumpkins
Ozma
Biffy Clyro
The Breeders
Rivers Cuomo
Nerf Herder
Jimmy Eat World
Foo Fighters
Veruca Salt
The Flaming Lips


開発者の人のデモがここにある。eclipseで開発してる。

*2009年11月11日追記
EchoNestAPIを使用する場合はJavaのバージョンを1.6にする必要があります。
Applications/Utilities/Java Preferencesを起動して、GeneralタブのJava ApplicationsのJava SE 6を一番上にする。

で、いつの間にかechonestp5というものができてた。