iPhysicsが面白愉快

クレヨン物理学(Crayon Physics)のiPhone版、iPhysicsが面白いです。力学シミュレーションによるパズル・ゲームで、ほんわかシンプルなんだけど、奥が深いって感じです。当初のiPhysicsは機能が少なかったものの、現時点での最新バージョン0.9では、かなり遊べるるようになっています。遊び方はDeluxe版のムービーを見れば一目瞭然。到達目標は、iPhysicsでは赤い正方形ね。

iphone-iphysics.jpg

iPhysicsはオフィシャル・ソースにもコミュニティ・ソースにも登録されていなくて、独自のソースを登録する必要があります。手順は、Installer.appを起動して、Sourcesを選びます。次いでEditを選び、Addを選びます。これで、URLに「http://iphone.r4m0n.net/repos」を登録すれば、InstallのカテゴリーにiPhysicsが現れるはずです。このカテゴリーからiPhysics本体やレベル・パックをインストールしてください。

それから、iPhysicsでの操作方法などが良く分からなくって、ドキュメントも見つからなかったので、私が遊んでいる範囲で気が付いたことを書いておきます。ただし、自分で探し出す楽しみがなくなっちゃうから、ネタバレ注意!でございます。他にもあれば教えてください。

・ゲームの目標は、青い円を赤い正方形まで移動させること。
・青い円はドラッグなどで直接動かすことはできない。
・閉じていない図形を描くと、直線や折れ線が現れる。
・閉じた図形を描くと、物体(塊)が現れる。
・下向きの重力があり、固定されていない線や物体は落下する。
・線や物体が衝突すると、双方に力がかかる。
・物体をドラッグして、移動したり、投げたりできる。
・線や物体をダブル・タップすると、その物体が消滅する。
・線や物体を横切るように線を描くと、その物体が消滅する。
・何もないところでダブル・タップすると、小さな円(物体)が現れる。
・(場面によっては)何もないところをしばらく押すと、白い小さな円が現れる。
・白い小円を囲むように物体を作ると、その物体は白い小円を支点として回転する。
・プレイ中にiPhoneを振るとナビゲーション・バーが現れる。

マウスとは違って、指では思うように図形が描けないことが多々あるけど、それがまた楽しい(腹立たしい?)かも。レベル・パック(オプション画面)も沢山あって、難易度の高い場面もあるので、なかなか遊び尽くせません。

複数のオーディオ・デバイスは機器セットで

MSPもそうですが、一般的なアプリケーションは同時にひとつのオーディオ・デバイスしか選択できません。でも、Audio MIDI設定を使って機器セットを作れば、複数のオーディオ・デバイスを同時使用できます。

以下の図では、3つのデバイスをaka-setという名前で設定しています。MSPではDSP Statusを開いて、Driverでaka-setを選べばOKです。SuperColliderなど出力デバイスを選べないアプリケーションでは、Audio MIDI設定のデフォルトの出力としてaka-setを選んでおきます。

この場合、MSPでは(マッピングを変えない限り)、dac~のチャンネル1から10にオーディオを送るとFA-101から出力され、11と12では内蔵出力(内蔵スピーカーかヘッドフォン出力)から、13と14ではRocketFMへと出力されます。これは入力デバイスでも同様ね。

devices-set.png

この機器設定は、例えば、モニタ出力がない(あるいはモニタ・チャンネルを自由に選べない)オーディオ・インターフェスを使う時に便利ですね。オーディオ・インターフェースの出力はPAに送り、内蔵出力をヘッドフォンなどでモニタとして使えばバッチリです。MSPでは、モニタしたいシグナルを内蔵出力に送れば、PAの出音とは独立したモニタになる訳です。

これはTigerから備わっていて、Leopardでも使える機能ですが、意外と知られていないっぽいので、書いておきました。

iPhoneのサウンド設定

iPhoneのサウンド関係の各種設定ファイルは、以下のフォルダにプロパティ・リスト(.plistファイル)として納められているそうです。例えば、SystemSoundMaximumVolume.plistはシステム・サウンドの最大音量ですね。バイブレーション関係のファイルや呼び出し音(?)のシーケンス、サウンドのルーティングや各種動作に対する振る舞いといったファイルもあります。

/System/Library/Frameworks/Celestial.framework/

そこで、SystemSoundMaximumVolume.plistのDefaultのDefalutを1.0に変更し、iPhoneをリスタートすると各種操作音や通話音などの音量が大きくなります。もともと設定値が小さいTouchToneは、効果がはっきりと分かりますね。これらの値を2.0とか5.0とかにすると、素晴らしいディストーション・サウンドが得られます…って訳はないです。

iphone-volume-plist.png

バランスWiiボードは接続のみ

Wiiリモコンと同じく、Wii Fitに同梱されるバランスWiiボードもBluetooth接続ですが、きっとダメだろうと思いつつ試してみたところ、やはりダメでした。

具体的には、Bluetooth接続アシスタントでジョイスティックとして認識され、接続もできますが、そこまでです。Maxのhiオブジェクトのメニューには現れないし、しばらくすると接続が解除されちゃいます。デバイス名は「Nintendo RVL-WBC-01」のようですが、サービス名として「Nintendo RVL-CNT-01」(これはWiiリモコンのこと)と表示されるのも不思議。以上はLeopardの場合で、Tigerでは認識されるものの、接続まではできませんでした。

wii-balanceboard-bt.png

Wii Fit自体まだ日本でしか発売されていないそうで、WiiLi.orgでの解析も始まっていませんね。バランスWiiボードでのアイディアが現時点ではないから、aka.wiiboardに取り組む予定はありません(笑)。でも、136Kgまでの荷重に耐えられるデバイスってのは興味深いです。

2d.wave~の謎

2d.wave~は、いろいろと遊べて楽しい&バッファの読み出しだけなので軽い、という優秀なオブジェクトで、私もサンプル・ベースのシンセシスに時々使います。それで、このオブジェクトの動作を調べてみました。

次のパッチでは、まず、バッファに0.0から1.0まで直線的に増加する1秒分のサンプルを作ります。このバッファをphasor~でドライブすれば、2d.wave~がどのような読み出し方をしているかを観察できるわけです。そして、2d.wave~の動作をシミュレートするために、xの位相シグナルを分割数(rows)で割って、yの位相シグナルを足した値をwave~に送って、バッファを読み出しています(下図の左側部分)。

2dwavetest.png

これでほぼOKなのですが、x/rows+yの値が1.0を超える場合に結果が異なってきます。8分割では、yの位相が0.875 (7/8)から1.0 (8/8)までの場合ですね。ここではwave~に値を送る前にfoldモードのpong~を使っていますが、warpモードでもダメで、%~とかでもダメです。分割数に応じた何らかの補正・補完処理をしているようですが、それはどのような処理(アルゴリズム)なんでしょうね?

ちなみに、このテスト用パッチを以下にリンクしておきます。このパッチを発展させれば、2d.wave~を汎用ジェネレータとして使うことができます。もともと私がしたかったことは、その手のことだったので、2d.wave~の動作原理は深く追求していませんけどね。

2dwavetestpat.zip

MactrackerはMac辞書

Mactrackerは歴代Macintoshの各種情報を集めたグレートなアプリケーションで、この度Version 5にアップデートされました。メモリを増設したいんだけど、モジュール・タイプって何だっけ?とか、あの古いマシンにLeopardをインストールできるかな?って場合に便利です。スペック的な事柄はもちろんのこと、開発時のコード・ネームやら発売時の価格やら、何から何まで網羅しています。

Mac本体だけでなくて、マウスやキーボード、ディスプレイなどの周辺機器や、Mac OSとMac OS Xのシステム・ソフトウェアの情報も網羅しています。さすがにApple I/II/IIIやLisaはないけど、iPhone、iPod、Apple TVはあるし、Newtonもありますね。1983年以前の機種を知りたい場合は、apple-history.comあたりかな。

Macに関しては、機種ごとに起動音(Startup Chime)を聞けるのもウレシイですね。昔のマシンには死亡音(Death Chime)もあります。ご想像のように、パッケージを開けばサウンド・ファイルをゲットできますから、サンプル・ネタにどうぞ。

mactracker.jpg

もうひとつ簡易版ながらWebバージョンもあります。iPhone用のインターフェースになっているけど、普通のWebブラウザでも閲覧できます。ブックマークが吉ね。

冬の金沢Max紀行

金沢美術工芸大学での公開講座は沢山の人に参加していただき無事終了。遠路遥々お越しいただいた方も何人かいらっしゃって、なかなかの熱気でした。

初日は、いくつかの自作品を紹介しながら、アート表現におけるダイナミック(動的)な特性についての講演。実はこれ、何度か海外で講演してきたものがベースになっていて、英語では(英語力がないから)三段論法的に理路整然と押し切っていました。ところが、日本語になると(詳しく説明できるから)論考しきれていない部分に気付いたりして、話しながら悩んでいました(笑)。表現者であって研究者じゃないし、持論にブレがあるわけじゃないんだけど、まだまだ修行が必要ですね。

2日目は、コンピュータ教室でのワークショップ。対象者が必ずしもプログラミング達人じゃないということだったので、シンプルかつ実用的なパッチを楽しんでもらった上で、その処理内容を解析するスタイルにしました。題材はネットワーク・コラボレーションによるOpenGL描画で、早い話が集団お絵描きとか人力Mixed Realityみたいなもの。Wikipediaのような集合知に対して、ダイナミックな集合美への初歩的なトライアルです。

kanazawa-ws.jpg

ちなみに、講座自体も楽しかったのですが、同じくらいオフ・タイムも充実していました(いずれもスーパー・ナイスなコーディネイトをしていただいた伊藤さんに感謝!)。ワークショップの題材も、海の幸山盛り状態の食事会での与太話から思いついて、ホテルの温泉につかりながら脳内コーディングしていたくらい。もちろん、事前に用意していた題材はあったんだけど、状況に応じてササっと変えるのがダイナミックでしょ?(笑)

Pythonで行こう!?

DSPコースではNodeBoxをモチーフにPythonワークショップが始まったようです。Pythonは近年注目のスクリプト言語ですね。言語自体は簡素で、ライブラリが充実しているという昨今のトレンドにもピッタリ一致。Leopardではデフォルトでインストールされているので、ターミナルでpythonと叩くだけで起動します。起動した後は、それだけでは困っちゃいますが(笑)。

python.jpg

Pythonは3DソフトのMayaやShade、VJソフトのModul8などに組み込まれていることでも有名です。Ableton Live用のLiveAPIなんてプロジェクトもあります(ありました?)。つまり、アプリケーション内部で動作して、アプリケーションをコントロールしたり、アプリケーションの機能を拡張できる訳です。NodeBoxもそのひとつで、NodeBox自体は描画エンジンで高精細な2D描画に強いみたいね。

今年のDSPワークショップは、1年生向けに6月にProcessing、7月にMax/MSP/Jitter、11月に画像解析(cv.jit)を経て、12月にPythonなので、学生もなかなか大変だと思います。ただ、いずれも数回程度の導入的なワークショップなので、各言語に精通するのが目的ではなく、プログラミングそのものや各言語固有の考え方に慣れるって感じかな。

それに、万能言語は存在しないから、適所適材で言語を使い分ける柔軟さも重要ね。Maxで日本語処理をするのは無謀だし、Flashでインタラクティブ処理をしようと思っても泣きを見るだけですから。とは言え、複数言語を使い分けるのは頭の切り替えが大変で、同時進行は難しいかも。   

【追記】そうそう、MaxでPythonを利用するnyptho、py、pyextといったオブジェクトもあります。Max Objects Databaseで検索してください。

くるみ割り人形

昨日の幻燈ダンスholonによる「くるみ割り人形」はめでたく無事終了。2階席を舞台で占有したこともありますが、1階席はお客さんで一杯で、立ち見の方もいらっしゃったくらい盛況でした。

holon-nutcracker.jpg
(公演中の写真は後日…かな?)

OHP幻燈は相変わらずウットリする美しさで、禍々しいものから色彩豊かなものまで多様な小物の選択&使い方が素晴らしい。ダンサーは優美な仕草と気迫の踊りによって強い求心力を発揮。影が主体ながら、カブリものや衣装替えまでしての熱演を繰り広げていました。

新ユニットでの音楽は、冒頭と終焉で古ラジオを使用し、メランコリックなSCと狂騒的なMSPとを交互に立ち上げました。対比的で分かり易い進行だったと思いますし、メンバーそれぞれの持ち味がよく出てたんじゃないかな。個人的には、常に緊張を強いられがちなソロ演奏とは違って、一息ついて次の作戦を練る時間が有り難かったです。

印象的だったのは、古ラジオから聞こえる音楽や水面を漂うオブジェやインクのように、制御しきれないものの魅力と、それに立ち向かう(あるいは融和する)意思と振る舞いでした。すべてが制御できるデジタル処理だけでは達し得ない世界が、たおやかに広がっていたような気がします。

それから、OHP幻燈映像の客席から見える全体像だけでなく、至近距離で見える無限へ続く細部をじっくり楽しめたのも収穫。客席からは細部が見えにくいのが残念だけど、ホロンとはそーゆーことなんでしょうね。

ちなみに、演奏はLemur、aka.iphone(on iPod touchね、持っていないけど)、KaossPad KP3とタッチ三昧。Lemurは感度が良過ぎるのか、フラつきが多すぎるのか、例えばテルミンみたいなことをすると、指を静止しているつもりでも勝手にビブラートがかかっちゃいます。ある意味、楽器っぽいインターフェスで、気を入れて演奏する必要があります。それをソフトウェアで押さえ込むことは簡単だけど、むしろ積極的に活かすべきね。これもまた制御しきれない魅力ですね。

holon-setup.jpg

RocketFMと古ラジオ

22チャンネル大作戦の実験のために購入したRocketFMは、小粋なデザインで性能も上々です。ドライバをインストールすれば、サウンド環境設定の出力デバイスにRocketFMが現れます。なので、サウンドを出力するアプリケーションなら何でも、FMラジオに音を送り込むことができます。RocketFM環境設定で送信周波数を設定ね。

rocketfm-system-preference.jpg

22チャンネル大作戦での問題点は、RocketFMのソフトウェアがAppleScriptableではない(たぶん)ので、外部制御は困難っぽいこと。でも、aka.mouseあたりを使って疑似マウス操作をすれば大丈夫でしょう(たぶん)。それから、FMラジオって周波数が合っていない時は、ホワイト・ノイズが流れちゃうんですね。信号がない(弱い)時は自動ミュートしてくれるとイイんですが、何台か試した限りでは、そんな機能は付いていませんでした(涙)。22チャンネル大作戦に関しては、これが一番の問題になりそう。

rocketfm-and-old-radio.jpg

ところで、このRocketFMを(文字通りの飛び道具として)明日のライブで使います。当初は普通のラジカセを使うつもりでしたけど、ナント、新ユニットの相方様が古いラジオをオークションで落としてきました。細部にこそ神は宿る、ってことかもしれません(笑)。すぐに狂っちゃうチューニングとか、低域も高域も出なくて歪みがちなスピーカーとか、とってもいい感じです。