luaODEが面白い

jit.gl.luaの続きで、同じくWesley Smith氏が制作しているluaODEも面白いです。これも同氏のWEBページからダウンロード可能。これは、jit.gl.luaがC言語の関数を呼び出せるのを利用してODEをモジュールとしてインプリメントしました、ってことのようです。

ODE (Open Dynamics Engine) はRussell Smith氏による連結剛体(articulated rigid body)の物理シミュレーション・ライブラリだそうで、ジョイントで連結された構成物(骸骨とか数珠とか)の運動力学を計算してくれて、衝突検出や重力加速などもできるらしいです。

ode-joints.jpg

WEBをサーチしたところ、簡単な説明日本語ドキュメントなどが見つかりました。研究的にも産業的にも結構使われているみたい。

で、luaODEですけど、現時点ではアルファ版ということもあって、動作が安定していなかったり、サンプルが貧弱(2つの球が落下して跳ね返るだけ)だったりしますけど、今後への期待が膨らみますね〜。皆でボヨンボヨンいたしましょう(笑)。

luaode-test.jpg

jit.gl.luaが面白い

まだベータ版ですが、jit.gl.luaというオブジェクトが面白いです。作者のWesley Smith氏のWEBページからダウンロードできます。このオブジェクトは、Roberto Ierusalimschy氏らによって開発中のLuaというスクリプティング言語をJitterで使えるようにするもので、OpenGLやJitterのAPIを始めとするコンパイル済みのC言語の関数を直接呼び出せるようになっています。

例えば、ListenerVecmathというデモ・パッチでは、複数の3D物体の上にマウス・カーソルを合わせると色が変わり、そのままドラッグすれば移動や回転ができます(jit.gl.handleと同じ)。

jitgllua-listenervecmath.gif

jit.gl.lua_gltrailsは、いわゆるビデオキューブ(映像の3次元表現)ですが、かなり軽快に動きます。

jitgllua-gltrails.jpg

また別の言語かぁ〜という点はイヤですけど、よくあるスクリプト風の言語仕様なので、それほど大きな障害にはならないはず(でも、微妙な相違がかえって混乱することも多々ありますね)。さらにスピードが要求される時はC言語で関数だけを書けば良い(=メッセージ処理等が不要)のもメリットかと思います。

謳い文句によれば、Luaはポータブルでフレキシブルでスピーディなんだそうです。日本語訳でのLua言語の紹介リファレンス・マニュアルも公開されていますね。興味がある人は研究してみてください(んで、教えてください)。

pastの逆オブジェクト

今日(正確には昨日)のワークショップから、初級Maxネタです。入力される数値が、特定の値より大きくなったことを判断するにはpastオブジェクト一発です(下図の左)が、逆に、ある値より小さくなったことを判断するオブジェクトはありませんよね? そこで、私は0から入力値を引いて、ある値のマイナス値を指定したpastを使っていました(下図の左から2番目)。

pastanti-past.gif

一方、佐近田さんは数値比較オブジェクトとchangeとsel 1とを使っているそうです(上図の3番目と4番目)。こっちのほうがスマートで汎用的なので、なるほど〜と思いましたです。

ちなみに、スライダーまでの部分は数値をランダムに増減していて、67や69といった数値はMIDI音源を鳴らすためのMIDIノートナンバーで、いずれもオマケ機能です。

Music for 18 Wiimotes

今日から佐近田さんのNUASで、Wiiリモコンを十数台用意してもらってワークショップを始めました。ずらっと並べるとなかなか壮観です。

18wiiremotes.jpg

この準備の過程で分かったのは、1台のコンピュータに接続できるWiiリモコンは5台が限度(らしい)ってことです。5台まではスムースに接続できるんだけど、6台目からはいろいろ試しても接続できないそうです。これがBluetoothあるいはMac OS Xの限界なのか、Wiiリモコン特有の限界なのかは分かっていませんし、何らかの方法で6台以上接続できるかもしれませんけどね。

jit.qt.movieでのFlashムービー

今日は何故かクエストが多かったのですが、最後はインド人留学生から、jit.qt.movieでFlashムービーが再生できません〜とのヘルプを求められました。Flashなんて使わないから分からないよ〜と言うと、悲しそうな顔をされたので、調べました(苦笑)。

解決策その1:QuickTime環境設定で「Flashを使用」にチェックを入れる。

デフォルトはオフみたいなので、要チェックです。ついでに、MIME設定の「その他」にある「Flashメディア」にもチェックを入れると何かと良いかも。なんだかFlashって嫌われているみたいですね。

quicktime-flash-setting.gif

解決策その2:Flashのパブリッシュ設定でバージョンを下げてswfファイルを作る。

現時点のjit.qt.movieではFlash 8形式のswfファイルは読み込めないみたいです。バージョンを下げると読み込めますが、どこまで下げるべきかは使っている機能によって違うみたいです。簡単なアニメーションならFlash 7でもOKでしたけどね。

flash-settings.gif

ちなみに、彼女はもともとFlasherで、最近Maxを使い始めたそうです。インドでMax使っている人いるの?って聞くと、ほとんどいない、という返事でした。日本では誰でもMaxを使っているのでスゴイ!みたいなことを言うのですが、それはIAMASというかDSPコースの特殊事情ですってば(笑)。

マウス・クリックを発生させる

先の記事を読んだ学生(早いな〜)から、System Eventsでマウス・クリックもできるんですか?という質問あり。それくらい自分で調べろよって気もしますが(笑)、エレベータでの立ち話だったので、まぁ、いいでしょう。

回答:System Eventsでは、できるかもしれないし、できないかもしれない。

System Eventにはclickコマンドがありますけど、例えば、以下のようなスクリプトはSafariなら動作しますが、同じようなスクリプトがLiveでは動作しないようです。クリックの対象がUIエレメント云々ってなっているので、そのあたりがアプリケーションの作り方によって違うのかも。

tell application "Safari"
activate
end tell

tell application "System Events"
tell process "Safari"
click at {360, 105}
end tell
end tell

それで、以前にも同じような問題があって、仕方がないのでオブジェクトを作っています。

解決策:aka.mouseを使う。

akamouse_m.gif

ダウンロードは、サイドバーにあるいつものaka.objectsからどうぞ。

ちなみに、ドラッグはどうするんだい?っていう人のために、mouseDownとmouseUpというメッセージがあるんですが、たまに動作不良を起こすので隠しています(option-control-クリックで見つけた人はエライ)。これに限らず、私のオブジェクトの使用は自己責任でお願いね。

キーストロークを発生させる

今日の他人クエストは、キーストロークを発生させる(コンピュータのキーボードを押すことを再現する)にはどうするか?でございました。しかも、MaxからAbleton Liveをコントロールしたいらしくって、セッションビューでのクリップの選択を左右上下キーで移動して、returnキーで再生・停止したいってわけです。外部コントロールが充実しているLiveですが、これはMIDIコントロールできないようです(Mackie Controlプロトコルならできるみたいだけど、面倒そう…)。

解決策:AppleScriptでSystem Eventsを使う。

LiveはAppleScript対応じゃないんですけど、これくらいならSystem Eventsでできちゃいます。例えば、Liveで右キーを押すのは次のようなスクリプトね。

tell application "Live"
activate
end tell

tell application "System Events"
key code 124
end tell

124ってのが右キーのキーコードで、keyオブジェクトなら2番目のアウトレットから出力される数値です。汎用的に使うには、アプリケーション名やキーコードを引数にして渡せるようにすればイイですね。

後は、このスクリプトをファイル保存しておいて、tap.applescriptオブジェクトかosascriptコマンド入りのaka.shellオブジェクトでMaxから呼び出せばオッケイでございます。

ちなみに、System Eventsを使うには、ユニバーサルアクセス環境設定の「補助装置を使用可能にする」をオンにしておく必要があります。また、key codeコマンドではcommandキーなどの併用も指定できるし、文字列を入力するにはkeystrokeコマンドも使えますね。このあたりは、他のアプリを操作するのに役立ちそう。

freesoundsearch

最近気がついたんだけど、徳井直生さんが興味深いオブジェクトfreesoundsearchを開発・公開中。これはCreative Commonsライセンスとしてアップロードされたオーディオ・ファイルのデータベースThe Freesound Projectにアクセスし、検索やダウンロードなどができるMaxオブジェクトです。詳しくは上記ブログを参照ね。

freesoundsearch.gif

このプロジェクトおよびオブジェクトの可能性は大きいと思うけど、ヘルプ・パッチだけでも随分と楽しめます。適当な単語を入力して、検索結果を自動再生すると、もうそれだけで広がる世界があります。

個人的には10年ほど前の作品「World Remix」を思い出しちゃいました。当時書いた文章は今となってはハテナ?な箇所もあります(苦笑)が、そこはご容赦願うとして、実際、音の感じも似ています。それぞれの母集団、The Freesound Project=有志が登録した音素材とWorld Remix=WEBで使われている音、の分布が似ているってことですかね。

ちなみに、World Remix Version 1は投稿型だったのでCCに近いですね。しかし、その頃は怒濤のごとく投稿されるハズもなく、Version 2の検索型に移行したのでした。何しろ、当時は自宅でも公共施設でもインターネット回線があるほうが珍しく、展覧会をするのに専用回線を仮設してもらってました。まぁ、そんなお爺さんの昔話みたないことはどうでもいいのですが、freesoundsearchで自動再生しながら、10年前と今とでは本質的に何が変わり、何が同じなんだろうと考えています。

音声認識というセキュリティ・ホール

Vistaで音声認識がオンになっていると、WEB上の音声ファイルの再生によって良からぬコマンドを実行してしまう危険性が報告されている。そりゃそうでしょうけど、何故そんなことが話題になるんだろう? Macでは何年も前から音声認識はシステム標準だけど、それが問題視されたことはないような気がするな。

vista-kun.jpg

Thoughts on Music

一昨日、アメリカAppleのサイトにThoughts on MusicというSteve Jobsの声明文(?)が掲載されたね。日本アップルのサイトには翻訳がまだないみたいだけど(そーゆー姿勢で良いのか?)、いくつか翻訳が登場しています。

いろいろと論考されているのを乱暴に要約すると、DRM(デジタル著作権管理)をナシにしよう、ってことらしい。一見、Appleの路線を変える画期的な提言に見えるけど、そんなことはない。AppleにとってiTunes Storeは手段でしかなくって(=楽曲などの販売利益はアテにしていない)iPodの製造販売利益がメインだから(iPhoneも同様)、この提言はAppleの戦略を強化することになるからね。しかも、この提言が消費者vs音楽レーベルに矛先を向けるよう論調を仕立ててるのがミソです。

著作権について考えるべきことは山ほどある(よって考えていない〜笑)ので、取り敢えず、最初のエントリを入れるだけにしておきます(腰砕け)。