Max/MSP/Jitter」カテゴリーアーカイブ

SpaceNavigatorがMac版Google Earthに対応

イベント続きでチェックを後回しにしてたんですが、SpaceNavigatorがMacでもGoogle Earthを操作できるようになったバージョン1.2を先週リリースしていました。最新版のドライバは3Dconnexionからダウンロードできます。Google Earthはバージョン4.1が必要みたいです。

SpaceNavigatorはGoogleとの共同開発なので(そのおかで安価になったハズ)、これができないとダメでしょうだったのですが、ようやくの登場となりました。実際、これがあるのとないのとでは、Google Earthが違うアプリケーションに思えるくらい、操作感も印象も違ってきます。後は、マルチ・デバイスに対応して欲しいところ。

spacenavigator-12.jpg

ところで、Google Earthと言えば、ART+COMが1995年(1994年?)に作ったTerravisionですね。昨今はメディア・アートが商業化される事例が多くて、それが腰砕けだったりするんだけど(笑)、Google Earthがそんな印象を与えないのは、地球を飛び回わりたいというシンプルだけど根源的で強力なアイディアの勝利なんでしょうね。

ちなみに、Terravision制作の中心人物だった人がGoogle Earthを現実化したそうで、鬼の一念って感じですね。それから、アメリカ軍がTerravisionの軍事利用を提案したものの、ART+COMはそれには乗らなかったという話もありますね。単純に言えば大金を得るチャンスだったわけですが、軍事には加担しないポリシーだったか、今日の全人類的規模(とはまだ言えないが)の展開を確信していたのか、これまた鬼の一念を感じます。素晴らしい。

aka.mouseをアップデート

マウス操作を行なうaka.mouseをアップデートしました。このバージョンでは、マルチ・ボタン(最大32個!)やマウス・ドラッグが可能になるボタン・ダウンやボタン・アップに対応しています。実は、前バージョンでも適当に実装していて隠し機能だったんですが、きちんと動作するようになったハズです。ダウンロードはaka.objectからどうぞ。

akamouse-11_m.jpg

注意すべき点は、実際のマウスの状態とaka.mouseが作り出すマウスの状態とを混同しないことです。例えば、実際のマウスでボタンを押し続けたままでも、aka.mouseでボタン・アップができるので、その時にマス・ボタンの状態を取得すれば、どうなるんでしょう? この場合は、最後のオペレーション、つまりaka.mouseでのボタン・アップが現在の状態になるハズなんですが、ちょっと混乱するかもです。あと、update 0にして、マウス・カーソル移動時に描画を更新しない設定にした場合も要注意ね。

ちなみに、このアップデートは、Wiiリモコンを身体障害者のためのマウス代替装置にしたい、という相談がきっかけでした。身体障害者向けの機器は高価(マーケットが小さいから)なんですけど、Wiiリモコンなら安いですからね。普段は人様のリクエストは受け付けないんですが、今回はちょっと偽善者(?)になってみたというわけです。

QuickTime 7.1.6にもご用心

5月2日にリリースされたQuickTime 7.1.6アップデートを適用すると、Intel-MacでMaxが起動しなくなっちゃいます(PowerPC-Macは大丈夫らしいです)。

これは、Mac OS X 10.4.9アップデートと同じく、PACEの問題とのこと。Cycling’ 74にも対処法が記載されていて、2つの方法が紹介されています。

1. Mac OS X 10.4.9 Comboアップデートを適用する。

2. PACEが提供している再構築スクリプトを実行する。

前回と同じ方法(Comboアップデート)では芸がないなと思い、今回は再構築スクリプトを使ってみました。その結果は、特に問題なくMaxが起動するようになったので、ひと安心です。再構築は1〜2分で終わるので、こちらのほうが手軽ですね。

poly~の2次元配列

今日の自分クエストは、ploy~で1024個以上のインスタンスを作る方法、でした。poly~は同じ機能を持ったオブジェクト(インスタンス)を手軽に作れるので便利なのですが、インスタンスは1023個までしか作れない、ってことになっています。一昔前なら、1023個で十分だよ〜って雰囲気でしたが、今やそんなことはないですね。例えば、次のように横80個に縦60個の球体を並べると、合計4800個だから、軽くpoly~の制限を超えてしまいます。

poly-2d-sample.jpg

そこで、インスタンスの制限はオブジェクト単位なので、複数のpoly~オブジェクトを使えば大丈夫だろうと考えました。例えば、2個のpoly~を使えば、2046個までインスタスを作ることができるわけですね。さらに、poly~を入れ子にする、つまり、poly~の中にpoly~を入れてみたところ、バッチリ動作しました。パッチは次のようになります。

poly-2d-patch.gif

見たままなので分かり易いと思いますが、一番下が球体を1個含むサブ・パッチで、真ん中がそれを横に80個並べるサブ・パッチです。そして一番上のパッチで、横80個並んだものを縦に60個に並べています。

ちなみに、3次元配列は当然として、4次元、5次元と何次元まで可能なんだろうかという疑問がわきますね。どなたかヒマな人は確かめてみてください。それから、単に球体を縦横に並べるだけなら、もっと簡単な方法で構わないですよ(2061:Maxオデッセイのp.824〜とかp.848〜とか)。

scope~の表示をフリーズする

新学期が始まり、学生クエスト・ネタが増えて嬉しいな〜と嘯く今日この頃。今回のクエストは、scope~の波形表示をフリーズさせたい(ある瞬間の波形を固定表示する)でございました。久々の王道記事です(苦笑)。

まず、mute~とかbegine~+gate~でオブジェクトのオーディオ処理を停めると、実際には0がシグナルとして流れちゃうのでダメでございます。表示するシグナル数分のオーディオをサンプリングしてループ再生(または減衰なしのフィードバック・ディレイ)すれば良さそうなんだけど、面倒なので取り敢えず却下。それから、jit.desktopで画面キャプチャーしてjit.pwindowで表示する、って方法も考えましたけど、scope~とjit.pwindowをスクリプトでhide/showしなければならないのが、これまた面倒っぽい。

サクっと簡単な方法が思いつかなかったので、リファレンス・マニュアルを調べると、scope~をマウスでクリックしている間は表示がフリーズされる、と書かれていて、バッチリその通りになります。これで、一応は目的達成なんですけど、マウス・ボタンを抑え続けなければならないのがイマイチっぽいですね。

他に良い方法はないものかと調べていたところ、enable 0で表示フリーズ、enable 1でフリーズ解除となることが判明。これで完全解決ですね。めでたしめでたし。spectroscope~でも同じようにenableメッセージが使えます。

scope-enable.gif

ちなみに、enableメッセージはヘルプ・パッチにもリファレンスにも載っていなくて、クイック・メッセージ・リファレンス・メニュー(2061:Maxオデッセイ、P.194参照)で見つけました。ヘルプは主要な事柄しか載っていないし、リファレンス・マニュアルも不完全だったりするので、奥の手としてクイック・メッセージ・リファレンス・メニューが役立つ時が結構ありますよ。

scope-q-m-r-menu.gif

aka.wiiremote 1.0B6

aka.wiiremoteの1.0B6を公開しました。ダウンロードはいつものaka.objectsからどうぞ。

このバージョンではクラシック・コントローラをサポートした他、多少のバグ・フィックスをしました。ヘルプ・パッチも少し整理して、FAQも更新しています。

akawiiremote-b6-3.gif

PowerBook G4などでの動作不良は、ちょっとマシになったかもしれません。FAQにも書いたように、Wiiリモコンの登録を毎回削除して再度設定すれば、確実に接続できると思うのですが、いかがでしょうか? 毎回というのも面倒なのですが、これ以上は改善できていません。

C74からもコラボのアナウンス

Abletonに続いてCycling ’74からもステートメントが出ました。それによると、Abletonと共同開発するのは新しい製品であって、Maxを置き換えるものではない、ってことのようです。ってことは、Live~でもMax内蔵Liveでもないんだよね、きっと。でも、具体的な言及はないので、新しい製品が何なのかは分からないままです。

それから、コラボに劣らず興味深いのは「次なるMaxバージョン5は、過去20年間の中でもっとも重要で劇的な変革となるだろう。」と宣言しちゃってることですね。控えめなDavid Zicarelli氏にしては、珍しくタカビー(死語)な発言かも(って英語のニュアンスがよく分かっていないんですが…)。

それで、Maxが華麗に変身しちゃったら、「2061:Maxオデッセイ」はどうしたらいいんでしょう?(笑)

live.gif

かなりイケてませんね〜〜もちろん、こんなわけがありません。

Cycling ’74とAbleton

Cycling ’74とAbletonが一緒に何かを作るんだって言ってますね。

Ableton LiveのプロトタイプがMaxで作られたというのは有名な話だし、プラグインとかもMaxやPluggoで試作されているので、順当な流れですね(製品としてのLiveやプラグインがMax/Pluggoで作られているわけではない)。

で、プレスリリースだけでは何のことやら分からないので、色々とコメントが飛んでいます。Maxの中でLiveが動く(Live~とか?)のか、LiveにMaxランタイムが内蔵されてパッチがそのまま動くのか、はたまた、新しい協業製品が登場するのか、憶測でしかないですけど、今後の展開が楽しみです。Soundflowerを強化しました、ってくらいなら肩透かしですけどね。個人的には、LiveのGUIが好きなので、MaxのGUIをLiveコンパチにして欲しいな〜。

abletonc74.jpg

ミドルウェアについてのアレコレ

先の記事を書きながら考えたことなんだけど、まずJamoma以外にも、UBC Toolboxとか、

ubctoolbox.gif

v001とか、同じようなミドルウェアがいくつかあります。

v001.gif

私もIAMASのプロジェクトでDSPBoxってのをハードウェア込みで作ったりしました。

dspbox2s.jpg

これらはそれぞれ目的が違うので、見かけや使い方が異なります。だけど、出発点となっているのは、毎回同じようなパッチを書くのは面倒なので、汎用的な処理を標準化してライブラリにしましょう、ということね。

例えば、オーディオ・ファイルを再生するのはsfplay~だけど、それ以外にもopenや1や0といったメッセージが必須だし、pause、resume、loopといったメッセージも欲しくなりそう。さらに、再生位置の取得や設定をするには、それなりに込み入った処理を書くことになる。こういったパッチを毎回(曲を書く度に)作るのは苦痛以外の何者でもないよね。

そこで、

  • 頻繁に使う処理をモジュール化して、再利用できるようにする。
  • GUIを付けて、直感的にマウスなどで操作できるようにする。
  • 混乱しないように、複数のモジュールのデザインを統一する。
  • 複数のモジュールを組み合わせられるよう、入出力の整合性を取る。

ってな作業をして、ミドルウェアが出来上がっていくことになります。

これで、めでたしめでたし、いろんな処理が簡単にできてウレシイ!ということになるのですが、実際にそれで満足できる範囲は限られています。ミドルウェアが規定した範囲ですね。例えば、

  • モジュールのGUIを変更したい。
  • モジュールに新しい機能を追加したい。
  • 異なるミドルウェアのモジュールを組み合わせて使いたい。

といった欲求が起こった場合に、ミドルウェアの内部に立ち入って改造することになります。これは結構面倒だし、ミドルウェアの内部ってドロドロしている場合が多いから、第三者が容易に手を出せるものではないです。ちょっとイジったけで、全体がおかしくなってしまうかもです。

もちろん、このような事情はMaxも同じで、Maxが規定した範囲でしか処理を作れないのも事実です(同じ論法で、OSが、コンピュータが、CPUが….と素粒子レベルにまでイっちゃいます〜笑)。ただし、Maxはオブジェクトを極力シンプルにしているし、Maxの拡張方法も(ほぼ)きちんと規定しているので、混乱は少ないはずです。

つまり、ミドルウェアが簡易に高機能になればなるほど、ミドルウェアが規定する範囲が狭まり、拡張が難しいことになります。もちろん、万能のミドルウェアなんて有り得ないし、有り得ないからこそ、MaxやらC言語やらがあるわけです。ミドルウェアがアプリケーション化すると、Ableton Liveとかmotion diveとかになってしまい、それじゃ頭悪すぎなのでMaxを使ってるんだよね? つまり、機能じゃなくって言語だったハズ、です。

もっとも、ここでの論考はミドルウェアを否定したいわけじゃなくって、ミドルウェアの限界を明らかにしつつ、それじゃどうしたらいいの?ってことを考えたいわけです。ミドルウェアが便利に使える範囲なら、どんどんミドルウェアを使えば良いと思いますね。…とタラタラ書いてたら長くなっちゃったので、この続きは、また後日。

10.4.9アップデートにご用心

先日リリースされたMac OS X 10.4.9アップデートを行うと、Intel-MacでMaxが起動しない(クラッシュする)というトラブルが起こっているそうです。PPC-Macは大丈夫みたいですけどね。

そのような問題が生じた場合、Comboインストーラを使って、再度アップデートを行うと解決するとか。しかも、最初のComboアップデートでは解決しなかったけど、もう一度アップデートすると解決したというレポートもありますね。なかなか謎な状況です。

ちなみに、ソフトウェア・アップデートはComboタイプ(それ以前のアップデータも含むタイプ)ではないので、問題解決にはなりませんです。私は今も旅行中でインターネット環境がイマイチなことが多いので、後回しにしていて難を逃れました。Leopardは大丈夫かな?