ライブ来てくれてありがとう日記はまた書きます。
とりあえず自分の備忘を兼ねて、こないだのライブでやった「in T - trance variation of Terry Riley's in C powered by Twitter」の実現方法など。ちなみに映像はここにUstの録画があるみたい(僕は未見)。
で、今回は、というか今回もProcessingを使ってプログラムを書きました。ほんで、in Cって曲は「パルスと呼ばれる一定の音の上で、みんなで順番に音のパーツを繰り返して演奏」する曲だから、本当は「次のパーツに行く」という処理をTwitterを介してやるようにしたかったのね。なのだけど、音のループ終わりで発生するイベントがわからず、結局やったのは、「ハッシュタグ #in_t をつけてつぶやくと、リアルタイムにフィルタがかかったり外れたり」というものでした。ま、実際やってみたら、このぐらい簡単な方がライブ向きだったなとは思ったけど。
さて、肝心の実現方法。
これが実はカンタンで、Processing用のTwitter Streaming APIライブラリであるTweetStreamをダウンロードして展開し、現れたtweet_streamってフォルダをProcessingのlibrariesフォルダの中に入れておくだけ。あとはサイトにあるサンプルを見ながら作ればオーケー。
僕の場合は#int_tってハッシュタグを検索したかったので、setupで、
TweetStream s = new TweetStream(this, "stream.twitter.com", 80, "1/statuses/filter.json?track=%23in_t", "screen_name", "password"); s.go();
ってやっておいてから、TweetStreamで定義されてるtweetってイベントで、
void tweet(Status tweet) { tweetedBy = tweet.user().screenName(); filterValue = filterValue == 1 ? 0 : 1; applyFilter(); }
てな感じで、「ツイートした人のスクリーンネーム」を取得して、フィルタのオンオフを切り替えて、実際のフィルタの設定(applyFilterメソッド)を呼び出す感じ。「三項演算子使うの変じゃない?」とか「グローバル変数とか使うやつは死んだ方がいい」とか言わないでね。なんせライブの前の日の夜8時からようやく作り始めたので(笑)。
ま、というわけで、「きっと誰かがライブラリ作ってるだろう」という目論見で進めて正解だったという訳でした。
よかったよかった。