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

生体センサーで行こう!

一昨日のIAMASでは、DSP特論なる授業がありました。安直なネーミング(笑)とは裏腹に、毎回素晴らしい講師をお招きしてのレクチャー&ワークショップ・シリーズで、今回(と次回)は「生理心理学とメディア・アート」と題して、赤松も何かと(アレとかコレとか)お世話になっている照岡正樹さんにご登場いただきました。

何と言っても今回のメイン・ディッシュは、この講義のために新たに設計・制作していただいた生体センサーですね。小さなセンサー・ボード(緑色の基板)はショートピンを切り替えて、EOG(眼球運動)、皮膚電位、心電、脳波、筋電が測定できるようになっています。IAMASだからってことで、Gainer(赤色の基板)との接続のために、ハム・フィルター(極小の緑色の基板)まで用意される完璧ぶり。

teruoka-sensor.jpg

センサー・ボード自体は増幅器と考えて良いそうですけど、全体としては単純な電気装置ではなくって、照岡さんの長年のノウハウが随所に詰め込まれた「作品」ですね。医療用の最高級品からチョイスされた導電ゲル付き銀・塩化銀電極(Electrode 1025)、安っぽい紙で巻かれている電極〜ボード接続部、単三乾電池を6本も使用している電源部などなど、一見不可解だったりしますが、実は深い深いワケがあるとのこと。

もうひとつの重要なノウハウは「生体情報は音で聴け!」だそうです。生体情報の測定は常にノイズとの戦いで、結果的にノイズを分析しているだけの学術研究も見受けられるとか。波形やスペクトルを見るだけでは判断できないことが、音として聴けば一目(一聴)瞭然なので、必ず耳で聞く習慣を付けて欲しいとのことです。

今回のボードからはライン・レベルの信号が出力されているので、そのままアンプとスピーカーを繋ぐだけです。電極を腕に付けて手を動かすと、ゴゴゴゴッって感じの音が聞こえます。ホワイトノイズ的な雑音に混じってるんだけど、人間の耳と脳は優秀ですからね。レベルの低い脳波でも、聞き分け方を教えてもらったので、なんとか判別することができます。

音となると、MSPの登場ですね。コンピュータのオーディオ入力に繋いで、adc~をオン。
  信号来てますか?  → meter~
  波形はどんな感じ? → scope~
  大きく表示したい  → *~(あるいはscope~の設定)
  高域はカットしたい → biquad~(あるいはlores~など)
  周波数分布はどう? → spectroscope~
てな感じで、サクサクと処理が進みます。ライン入力を汎用のA/Dコンバータとして使っているわけですが、生体情報をオーディオ処理するのは、なかなか新鮮な体験です。もちろん、Max処理もJitter処理もOKだし、Gainerならマルチ・チャンネル処理も簡単。

といった感じで、敷居が高いと感じる生体センサーが一気に身近になるワークショップでした(これをどう発展させるかが次回への学生課題)。照岡さんの優しい語り口とは裏腹に、講義は刺激的な情報満載でクラクラするくらい。配布されたレジュメだけでも数ページに渡って説明&図版がビッシリ。その夜のちゃんこ鍋を囲んでの裏講義でも、示唆に富んだ話題の応酬で、お腹いっぱい、ごちそうさま、でした。

MaxTutorsでお勉強

チョイと趣向を変えて、今回はPeter Elsea氏が作成した「MaxTutors」をご紹介。これはPDFで提供されている初心者や中級者向けのチュートリアルで、Max、MSP、Jitterのそれぞれについて丁寧に解説されています。この手のチュートリアルはいくつかあるものの、MaxTutorsは比較的充実したもののひとつだと思います。少しずつ改訂されているのもポイント高し。もちろん、最高峰は2061:Maxオデッセイですけどね!(笑)。

このチュートリアルは、ビックリするようなテクニックは書かれていないものの、基本に忠実でお手本的な印象です。全体としては伝統的西洋的なコンピュータ音楽寄りの内容で、ハーシュなノイズの作り方なんて路線はありません(たぶん)。2061とは少し違う観点から書かれているので、重複する部分は少ないような気がします。

maxtutors.gif

MaxTutorsは以下のURLからFTPダウンロードできます。約14MBね。
ftp://arts.ucsc.edu/pub/ems/MaxTutors

英文はツライな〜って人も、パラパラを眺めていれば、何か発見があるかもしれませんよ。それに、授業やワークショップとかで、Maxネタを探している人にもオイシイかも(笑)。

同氏はLobjectsの作者でもあるので、その使い方のエッセンスが随所で取り上げられていますね。パフォーマンスの心構えやトラブルの解決方法といった事柄も、手際良くまとめられています。こーゆーのって必要だなと思いつつ、なかなか書けないでいるので、Peterさんエライ!と敬意を表します。

最後に、少しだけ下手な翻訳を載せておきます。これはクスっと笑っちゃったからで、チュートリアル全体の雰囲気を伝えるには適していないんですけどね。

衣装
かつて音楽家はパトロンから与えられた衣装を身に纏った。これは次第に白いタイと燕尾服に変化したのだが、それは未だにクラシック音楽の世界で見ることができる。一方、ポスト・ボダンの時代の演奏家は普段着を着ようとする。ただし、それは街角で人が着ている衣服と同じではない。例えば、あなたが着るものがトレーナーと破れかけたジーンズだとして、正しいトレーナーとジーンズを注意深く選ばなければならない。また、その衣装は演奏する時以外に着てはならない。これには2つの理由がある。観客のためには、その衣装によって演奏家を舞台上で際立たせる必要がある。明快な模様や目立つ色調であれば、あなたの位置や動作を示すことができるからだ。演奏家にとっての利点としては、演奏のための衣装を着ることによって、あなたは演奏に向けて心理的な準備ができることになる。

iPhoneでMax

はい、この通り。MSPの音響処理も、Jitterの映像処理も動きます。ちょっと反応は遅いですけどね。もちろん、合成じゃありませんよ。

iphone-vnc.jpg

ってのはウソじゃないけど、よくあるジョークの類いなのでダマされないでください。iPhoneでVNC、MacでVNSを動かしてMaxを起動しているだけです。

iPhoneではInstaller.appからVNseaをインストール、MacではOSXvnc改めVine Server for OS Xをインストールね。当たり前の話ですが、MaxだけでなくSuperColliderもPhotoshopも、iPhoneで操作できます。ただ、キーボード入力はまだサポートされていません。

これが瞬間的に動作してくれれば、aka.iphone系を作る必要はないわけですけどね。実際には、かなり遅いので、VNC/VNSでの演奏は無理っぽいです。まぁ、タイミングがシビアではない用途で、あなたが気の長い人なら使えると思います。

【追記】Tiger(Mac OS X 10.4)やLeopard(Mac OS X 10.5)では、システムに標準でVNC機能が備わっていました。つまり、これらのOSを使っている場合は、Vine Server for OS Xをインストールする必要はありません。ココココを参考にしてください。

Max 5のデモ・ムービー

Cycling ’74がMax 5のプレス・リリースとともに、チョイ見せムービー集”A First Look at Max 5“を公開しています。Max史上最大の変革となるバージョン5の初お披露目ですね。ニューヨークで開催中のAESでは、実物のデモもやっているそうです。

max5-preview-movie.jpg

この記事にはEpisode 1からEpisode 3までが含まれていますが、Episodeは今後さらに追加されると思いますよ。例の夜に見せてもらったのは、この程度じゃなかったですから(笑)。

日本語コメントの文字化け対策

今日の学校クエストは、Macで作成したパッチに含まれる日本語コメントが、Winでは文字化けするので修正したい、というものでした。

この問題に関しては、2061:Maxオデッセイのサンプル・ブラウザ&オブジェクト・ブラウザのRead Me First.rtfでも説明していますが、ここで一部修正して再掲しておこうと思います。以下は、Winでの作業方法です。

■Windowsでの日本語コメントについて

Mac OS Xで作成したパッチに含まれる日本語コメントは、例えばOsakaフォントを使用している場合、Windowsでは同フォントがないので、正しく表示されません。これらは、以下の手順に従ってフォント・マッピングを追加することで、日本語コメントを表示できるようになります。パッチごとに日本語フォントを指定する必要はありません。

(1) Maxアプリケーションを起動している場合は、Maxを終了します。

(2) ローカル・ディスク(C:)のProgram Files¥Cycling ’74¥MaxMSP 4.6¥Cycling ’74¥initフォルダを開きます。

(3) max-fontmappingsファイルのバックアップを作ります。これは、トラブルが発生した時に元へ戻せるようにするためです。max-fontmappingsファイルを選択し、「このファイルをコピーする」を選び、適当なフォルダ(例えば、マイ ドキュメント・フォルダ)にコピーするとよいでしょう。

(4) max-fontmappingsファイルをダブル・クリックして開きます。メモ帳が起動し、ファイルの内容が表示されます。

(5) 以下のテキスト(行末の改行を含む)をコピーし、max-fontmappingsファイルの先頭にペーストします。
max system windows genericfontmap Osaka “MS Pゴシック”;

(6) max-fontmappingsファイル保存し、メモ帳を終了します。

(7) Maxを起動し、パッチを開きます。日本語のコメントが正しく表示されれば、フォント・マッピングが正しく行われています。

ちなみに、懐かしのDSPマガジンのNo. 1047(記事の後半)でも、同じ事柄を解説しています。こちらは、もう少し詳しく説明していて、Mac&Win相互フォント・マッピングです。ただ、すべてのフォントを網羅できるわけはないのが悩ましいところ。真の解決は、Max 5待ちかな?

aka.iphoneネイティブ版登場!

前回の弱気な?マークとは違って、今回は強気の!マークです(笑)。MaxをコントロールするためのiPhoneネイティブ・アプリケーションが(一応)完成。aka.iphone / experiment 2として公開しました。勝手アプリなので、あなたのiPhoneがレンガになる前に試してください。Maxへ直接OSCメッセージを送るので、前回のようにサーバを設定するといった面倒はありません。

akaiphone2-working.jpg

さて、これで、ようやくスライダーをグリグリできるようになりました。プッシュ・ボタンとトグル・ボタンもあります。まだ実際には作っていませんが、XYパッドやナンバー・ボックス、テキスト・ボックスなども盛り込めそうです。反応&通信はとっても速いです。

ただし、システム標準(?)のGUIライブラリ(UIKit)を使っているせいか、マルチ・タッチはできません。もっとも、あるボタンを押さえながら別のボタンを押せるなど、マルチ・タッチらしきことは見え隠れしています。正式なドキュメントがないので、これまでの解析結果を参考に、手探りで試行錯誤しているわけで、かなり開発に時間がかかるのがツライところ(軟弱)。

それから、IPアドレスやポート番号が固定のままとか、いろいろと不備がありますね(だって面倒だから)。GUIを自由に配置したいといった要望も出てくると思うのですが、専用エディタを作る程暇人じゃないし、どうしたものかと思案顔です。まぁ、遊べる範囲で遊んでください。

Max 5とは何か(何ではないか)

深夜の興奮も醒めやらぬ今日この頃ですが、Cycling ’74のサイトではMaxの筆頭開発者であるDavid Zicarelli氏が”Max 5: What It Is (and Isn’t)“という記事を掲載しています。憶測や要望が飛び回っているものだから、この辺で沈静化しておかないと、仕事にならんって感じなんじゃないでしょうか(笑)。

max5-what-it-is.png

正確な内容は原文を読んでいただくとして、リリースは2008年第1四半期(って何月?)を予定している、ってなってますね。AppleがMac OS 9からMac OS Xに移行したことに例えられるような、抜本的なシステムの変更が行われるそうです。

Richard Dudas+Gilbert Nounoご来校

昨夜、急遽という感じで、Richard Dudas氏とGilbert Nouno氏がIAMASに遊びに来てくれました。Richardはコンピュータ音楽の作曲家にしてCycling ’74の開発スタッフの1人、wacomオブジェクトなどでも有名な人ですね。1年ほど前からソウルの大学で作曲を教えているとか(でも先週は会えなかった)。Gilbertもコンピュータ音楽の作曲家で、長らくIRCAMの研究員をしていて、来年1月まではアーティスト・イン・レジデンスとして京都に滞在しているそうです。

それで、中華料理の円卓を囲んでの馬鹿話も面白かったのですが、メインは深夜遅くまで続いたプレゼンテーション大会。もちろん、圧巻はここには書けない例のアレです。具体的でなくって申し訳ないんだけど、ともかく、マウスが動く度に驚嘆の声が上がっていました。ほんと、パッチを作るのが楽しくなりそうで、強力な機能が満載。まだバグがあるようですが、全体としての完成度は高い状態になってます(でも正式リリースはいつになるやら?)。これは期待して良さそうですよ。

そして、Gilbertは高度なビート・トラッキングの研究をしていて(数式満載)、アルゴリズムをMSPに移植中とか。自作品の解説からスコア・フォローイングのテクニックまで、濃厚な話題の連発で眠りたくても眠れません。私はiPhoneのネイティブ・アプリをチラ見せ(完成度50%、実機がないのでコードだけ)。学生のプレゼンにも丁寧にコメントする律儀さも素晴らしい。…って、その場にいなかった人には何のことやらですが。

dudasnouno.jpg

例のアレは撮影禁止だったので、差し障りのない場面でのお2人の御尊顔です。
(画面に映っているのは、フツーの4.6なので悪しからず….)

仕事でもないのにトップ・アーティストがウロウロしていたり、授業でもないのにトップ・シークレットを見聞きできるってのが、この学校の不思議で面白いところですね。

ノン・リアルタイムのディスク処理

今日の私クエストは、ノン・リアルタイムのディスク処理の高速化でした。大量のオーディオ・ファイルに対して特殊な処理をする必要があって、Peakとかのマクロじゃできそうもないし、MSPのリタルタイム処理ではオーディオ・ファイルの長さ(ン十時間)だけかかっちゃうし、何か良い方法はないかと探っていたわけです。

以前のOpenGLレコーディングの時に、MSPのノン・リアルタイムでのディスク処理が無茶苦茶遅かったので、ダメだろうな〜と思いつつ、実験してみました。以下のテスト用パッチは、jongly.aifをディスク再生し、振幅を0.5倍して、test.aifに書き出すだけの処理です。このパッチを実行してみると、jongly.aifの時間長が2.8秒なのに対して、処理時間は1分22秒、ナント30倍近くも時間がかかってしまいます。全然、使えません。

nrt-disk-test.gif

それで、buffer~を使う方法などを考えていた時に、フトが気が付きました。この時はSignal Vector Sizeが8だったのですが、これを128にすると処理時間が6秒に、512にすれば1秒で処理が終わっちゃいます。これでリアルタイム処理より速く処理ができます。こうでなくっちゃね!(って常識?)

【解決策】Signal Vector Sizeを最大にする。

リアルタイム処理では、レイテンシーを少なくするためにI/O Vector SizeもSignal Vector Sizeも小さめの値に設定するのが一般的ですよね。だから、これを大きくするのが解決策だとは、なかなか思い当たらないでいました。

ちなみに、Scheduler in Audio Interruptをオフにしておかないと、ノン・リアルタイム処理で実際にかかった時間を正しく計測できませんよ。逆に言えば、ノン・リアルタイム処理で時間進行に従った処理(metroとか)を含んでいる場合は、Scheduler in Audio Interruptをオンにしておく必要があるってことです。

int.libで楽々パラメータ制御

パッチを作っていると、ナンバー・ボックスやスライダーなどのパラメータ制御オブジェクトが山ほどできちゃいますよね。これらをイチイチ設定するのが面倒なので、プリセットに覚えさせるのはジョーシキ。でも、プリセットはすべてのパラメータを瞬時に切り替えちゃうから、それじゃ困る時もあります。ゆっくり値を変化させたいとか、コレとコレだけ切り替えたいとか、マウスでグリグリしたいとか…

そんな時に便利なのが、Oli Larkin氏のint.lib(Graphical Preset Interpolator)。下手に説明を書くより、同ページのデモ・ムービー(Video Examples)を見てもらえれば一目瞭然です。当然のことながら、音楽でも映像でも、どんな用途にも使えます。Maxに標準装備して欲しいくらいマスト・ハブですね。

intlib_small.png

なぜか私の環境では、VSTの制御ができない(リストにパラメータが表示されない)んですが、他の方はどうでしょうか?

【追記】ちょっと調べてみたところ、int.libフォルダにあるint.vst.mxtにおいて、bpatcher(読み込んでいるのはint.vst.bp.mxt)とvst~とが接続されていないことに気が付きました。これって変だよな〜と思って繋いでみたところ、ちゃんと動作するようになりました。もっとも、これが正しいのかどうか確信がないので、作者に問い合わせメールを出しています。

【追記】作者から返事がありました。やはり彼のミスだそうで、できるだけ早く修正版を作るとのことです。問題があるのはv0.52なので、より新しいバージョンがリリースされるのを待ちましょう。

【追記】v0.53がリリースされました。VST関連のバグが修正されています。