f8g

ツリーマップ型の音楽再生機

http://gyazo.com/561a3067f2bd8b7beb476714b74c0ab2.png

最近は Ruby-Processing を使って「ビジュアライジングデータ」をやってます。
GitHub - jashkenas/ruby-processing: Code as Art, Art as Code. Processing and Ruby are meant for each other.

Ruby-Processing のいいところ

  • JRuby で動くので Processing で使うような Java のライブラリが使える
    • 「ビジュアライジングデータ」で利用している Treemap のライブラリも使えます
  • gem install すると JRuby ごとくっついてくるので, わざわざ JRuby を用意する必要がない
  • 「ビジュアライジングデータ」の内容で困ることはあんまりない
    • 後半は rp5 create で --bare 付けると困る
  • Ruby でスケッチを書けるのでオリジナルの Processing より楽しい (個人的に)

Ruby-Processing の嫌なところ

  • JRuby で動くので JRuby のわけわかんないところを調べる必要がある
    • 基本的に JRuby がよくわかんないので困ります

音楽再生機

スケッチから iTunes をコントロールして音楽を再生するやつ。

http://gyazo.com/54eed0597b31d36b3577f867110f53b8.pnghttp://gyazo.com/40f933b692077e4ba4c7a53008d6abd0.png

スケッチから iTunes をコントロールするインタフェースは COM なんですが、JRuby では Win32OLE が使えないみたいなので、コントロールするだけのスクリプトを書いてスケッチから実行させてます。

`cscript "#{exec_file}" "#{artist}" "#{album}" "#{song}"`

他にも、細かい曲のデータなんかも、拡大時にスクリプトを実行して取得しています。(一時的に動作が止まって変な感じになる)

全体的に動作が変な感じですけど、「ビジュアライジングデータ」のコードが訳分からんので仕方ないです。ソースコードGitHub に置いておきましたが、ベースは「ビジュアライジングデータ」の7章と一緒です。
http://github.com/arikui/treemap_player/tree/master

ツリーマップのアルゴリズム自体は JavaScript でも実装できそうなので、Processing.js を使って色々なデータをツリーマップで表現して遊べそうですね。