umbrella_process blog

‘twitter’ タグのついている投稿

Twitterの画面がハッキングされた!? #javascript

2010年01月30日

Twitterのタイムライン(ホーム)を改造して遊ぶJavascriptを作ってみました。いつも見ている見慣れたTwitterの画面が大変なことに!?

あそびかた

  1. このリンクをツールバーなどにドラッグしてブックマーク保存してください。
  2. Twitterに移動してログインしましょう。
  3. Twitterのホームが表示された状態で、保存したブックマークを選択すると、左上に小さなメニューが表示されます。
    faulttersample
  4. 「no1: don’t mouseover!」というリンクをクリックすると、Twitterの画面に変化が起きて面白いことが起こります!

※実際にハッキングしたりデータを書き換えたりはしていません。表示をちょこっといじっているだけなので心配しないでくださいね。

※FirefoxとSafariでは動作確認済み

いろいろ追加していこうかなとおもってます :twisted:

TweetToOSC 0.1 – Twitterからメッセージを取得しOSCとしてSuperColliderに送るアプリ

2010年01月17日

Twitterの検索結果を取得し、OSCメッセージとしてSuperColliderに送るアプリケーションです。Xcodeで作った始めての(サンプルを含めても2つめの)プログラムなので、あちこちおかしいところがありそうなのですが、とりあえず動いていますので公開します。アプリケーション名も仮なので、なにか分かりやすい名前はないかと思案中です。

使ってみていただけましたら、ぜひコメントをお寄せください! TwitterとSuperColliderの連携の可能性を一緒に考えてみませんか!?
その他、バグ報告や機能要望もお待ちしております!

何をするアプリケーション?

  1. 指定した検索ワード(ハッシュタグが使いやすいでしょう)をTwitter検索APIにリクエストし、検索結果を取得します。
  2. 取得したメッセージごとに中身をスペースで分割し、検索ワードを除いた先頭から3つの単語をOSCメッセージとしてSuperColliderに送信します。
  3. この処理を、指定した秒数ごとに繰り返します。

動作環境

MacOS 10.4.11で動作確認済み。大量の検索結果が存在する検索語だとおかしくなる…かも…。

gettweets使い方

検索語(Search Query)と取得間隔(Time Interval)の秒数を入力し、Startボタンを押すと開始します。
検索語は半角英数のみ、取得間隔は数字でお願いします。

Newest Status ID: 取得している最新のつぶやきのID
Total Tweet: 取得したつぶやきの総数
Message: エラーメッセージなど

SuperCollider側では

(
// register to receive this message
a = OSCresponder(nil,"/twittosc",{ arg time,responder,msg;
	msg.postln;
	// ここに処理を書く
}).add;
)

ダウンロード: TweetToOSC 0.1
ソースファイルも含めています。別途ObjC OSCを利用しています。

関連記事:Twitterとリアルタイムウェブがもたらす、新しい音楽の可能性の予感

SuperColliderのネタ探し中

2010年01月17日

Twitterで音楽を奏でる!というのを研究してるんだけど、方向性に行き詰まってsupercollider.jpの過去ログをだらだら見ていたらL-systemの話題があった。otophiliaさんの話題はいつも高度だ。
L-system Base

短い文字列を再帰的に処理して複雑にするという意味では、Twitterから取得できるのは「短い文字列」だから面白いかもしれない。でもこれを耳で聴いて理解するには聴音能力が必要で一般の人には分かりづらいから今回は見送る…
だれでも参加できるというコンセプトのためには、分かりやすい必要がある。しかも、1分くらい遅れて反映されても分かる変化が…色々悩んでいます。

しかし、imoutoid = otophiliaのコードを音にして公開したら需要あるのかな?
ジムノペディのコード・リミックスと、Demand UGenを試してみたコード、ACIDサウンドに挑戦したコードの3つくらいが、かろうじてまだ実行できるみたい。

彼の代名詞とも思ってた実行コード中の変数をぐりぐり変化させるという変態コードのotophiliaNumModifierは、もう今のバージョンのSCでは使えないみたいだし。

Twitterとリアルタイムウェブがもたらす、新しい音楽の可能性の予感

2009年12月14日

かつてJ.ケージはピアニストが1音も奏でないピアノ曲「4分33秒」を作曲した。これは、作曲家が与え、聴衆が受け取る関係を変えようとした試みだと言えると思う。能動的な聴取によって、作曲家が何も為さずとも、そこに音楽は在る。ケージが呈示した「無音」の音楽は、作曲家の存在を後退させてみせた、更に言えば作曲家を殺して見せた、その極北として、歴史に刻み込まれた。しかし、一方では、そのピアノ曲の初演はコンサートホールと言う、音楽を聴取するために作られた、世界から隔絶された空間で行われた。

という調子で語りだすと超・長くなってしまうので大幅に端折るが、とにかくその後、作曲家と聴衆との関係の破壊(もしくは再構築)は、様々な手段によって行われてきた。それこそ、本当にさまざまに。だから、「聴衆が参加する音楽」の可能性は十分検討されてきたし、僕がここで語ろうとしている「世界中の誰でもが参加できる音楽」についても、すでに先行事例はある。浅学のため坂本龍一と岩井俊雄のコラボレーション[1]以外に実例を知らないが、おそらくたくさんあるだろう。ただし、「世界中の誰でもが参加できる音楽」の実現にはあまりにも、技術的な障壁が高すぎた。個人がそのような大それた音楽に手を出すのは、夢のような話であった。

(続きを読む…)

[Cocoa] XMLの解析でエラーが出た件

2009年12月11日

twitterのタイムラインをNSXMLDocumentでパースして解析するプログラムを書いていたんだけど、1回目はうまく行くのに2回目以降に下のようなエラーがでて固まる。

*** -[NSCFArray objectAtIndex:]: index (0) beyond bounds (0)

いったいなんじゃこりゃ?と思っていたけど、何のことは無い、タイムラインに新しい投稿が無かったためにXMLの内容が無く、パースに失敗していたのだった。XMLを格納する配列に中身があるかどうかを確認して、解消された。

NSXMLDocument *document = [[NSXMLDocument alloc] initWithContentsOfURL:url    options:0 error:NULL];
NSArray *nodes = [document nodesForXPath:@"/feed/entry/id" error:NULL];
if([nodes count] > 0){
// この範囲に処理を書けばエラーでないよ!
}

先週からObjective-Cの勉強を始めたんだけど、デバッガの使い方がまだいまいち分からないんだよなぁ。