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

Nintendo DSをMaxで使う〜DSMI編

概要編に続いて、DSMI(DSMIDIとも呼ばれる)を使って、DSからMaxをコントロールするための手順です。私はMacBook Proと内蔵AirMacを使っていて、問題なく動作していますけど、Wi-Fiの設定はちょっと乱暴かもしれませんね。まだ試していませんが、AirMacベース・ステーションなどを使ってもできるハズです。

dsmidikeyboard.png

R4カーネルのインストール

R4のWEBサイトから最新カーネルをダウンロード。
(Macでの.rarファイルの解凍にはUnRarXが良さそう。)
・USBカード・リーダにmicroSDカードを入れてMacに接続。
・microSDのルート・ディレクトリに各ファイルをコピー。

DSMIのインストール

DSMIをダウンロード
・DSMIのアプリ(dsmidikeyboard.ndsなど)をmicroSDにコピー
(場所はどこでも良いが、サブディレクトリにまとめておくと便利)
・dsmidiwifi-v1.01.dmgをダブルクリックしてマウント
・DSMidiWifiをMacのハードディスクにコピー
(アプリケーション・フォルダなど、場所はどこでも良い)

MacのWi-Fi設定

・Ethernetでのインターネット接続を設定
(普段の設定で構わないが、AirMacでのインターネット接続は不可)
(スタンドアローンなら、IPを手入力にして、アドレスを10.0.0.1などに設定)
・以下のように設定して、インターネット共有を開始
 - 共有する接続経路:内蔵Ethernet
 - 相手のコンピュータが使用するポート:AirMac

DSのWi-Fi設定

・DSでWi-Fi対応ゲーム(テトリスDSなど)を起動
アクセスポイントを検索
・Macの名前が表示されれば、それを選択
(その後、接続テストが行なわれ、IPアドレスが取得できないと言われるが、気にしない)

DSMIの使用

・DSにmicroSDを入れたR4を装着して起動
・DSMIのアプリ(dsmidikeyboard.ndsなど)を起動
(connecting…と表示され、Wi-Fi接続が完了すると消える)
・MacでDSMidiWifiを起動
(小さなウィンドウが表示されるだけで、設定や操作は不要)
・Maxを起動
・MIDI SetupにDSMIDIWiFi-outが表示されれば、Auto Setupをクリック
・noteinやmidiinなどのオブジェクトでDSからのMIDIメッセージを処理

DSMIは単純明快で、単なるMIDIメッセージとして出力されます。ソフト・シンセなどでも利用できるし、Maxで複雑なコントロールに発展させることもできますね。SuperColliderでもQuartz ComposerでもCoreMIDI対応アプリなら何でもOK。

この後、KnobsAndSlidersDS編やDSLua編に進みたいところなんですが、実はどちらもうまく動作していません(涙)。もうすぐ海外逃亡で忙しいので、この続きはまた後日ってことで(ってか、成功している人、書いてください)。

Nintendo DSをMaxで使う〜概要編

Wiiリモコンほどは心引かれなかったんだけど、泣く子も黙るNDSを買ったので、Maxで使ってみました。この手のハック情報はそれなりにあるんですが、結構混沌としていて、どれが最新情報であるかよく分からないんですね。それで先達の皆様の指示を仰ぎながら、やってみた経緯のご報告というわけです。なので、これがベストではないかもしれないし、他の機種での動作も保証できませんけど、一事例として読んでくださいませ。

nintendo-ds-lite.jpg

お買い物リスト

Nintendo DS Lite
R4(マジコン、USBカード・リーダ付属)
microSDカード(安いものなら1GBで1,000円少々)
ニンテンドーWi-Fiコネクション対応ゲーム(テトリスDSなど)

一番の難関はマジコンと呼ばれるカートリッジで、数種類ある上に一般的な店舗などでは売っていないようですね。私はR4(R4DSとも呼ばれる)というブツを某オークションで購入しました。それ以外は普通に入手したり、Webサイトからダウンロードできると思います。それから、次に挙げるDSアプリは、それ自体でWi-Fi設定ができないので、Wi-Fi対応ゲームが必要になります。

Max/MIDI対応DSアプリ

DSMI
KnobsAndSlidersDS

DSをMaxで利用できるようなソフトが、既にいくつか開発されています。まず、DSMI(DSMIDIとも呼ばれる)は、DSでの操作をWi-Fiで飛ばしてMIDIとして出力してくれます。なので、Maxはもちろん、CoreMIDI対応アプリなら何でも利用できるハズ。一方、KnobsAndSlidersDSはノブやスライダーを自由に設定可能で、その操作をWi-Fi経由でPureDataまたはMaxで読み取るようになっています。

DS用開発環境

devkitPro
DSLua

既存のアプリでも応用範囲は広いと思いますが、さらに深く使いたい場合は自分でアプリを開発しなければなりません。その場合の正統派(?)がdevkitProで、C言語でゴリゴリ書いて、コンパイル&リンクしてDSに転送します。これに対してDSLuaはスクリプト言語なので、気軽に開発ができそうです。jit.gl.luaと同じLua言語だし、DS上で動作するエディタでスクリプトを書いて、そのまま実行できるみたいです。

といったあたりを把握しておいて、次回、DSMI編に続きます。

timelineは危険!?

時間的な進行管理のためにtimelineオブジェクトを使う人がいるかもしれませんが、実はtimelineは登場以来バギーなオブジェクトとして有名で、避けたほうが無難かもですよ。2061:Maxオデッセイでも一言も触れていないでしょう?

でも、英文チュートリアルには堂々と取り上げられているものだから、これは便利そう〜と思って手を出す人が多いみたい。確かに、シーケンサー系の人はコレだぁ!って思うよね。私も基本的なアイディアとしては良いと思うけど、本格的に使ったことがありません。触らぬ神に祟りなし(笑)でございます。

あと、detonateあたりも信用していないんですが、どうですかね? まぁ、シーケンサー的なことをしたいならシーケンサーを使えばいいわけで、公式には否定されているとはいえ、MaxとLiveが合体して欲しいよね。

timeline.gif

jit.gl.multipleで3次元マトリックス

以前に書いた記事のように、jit.gl.multipleで3次元以上のマトリックスは扱えなかったんですが、Jitter 1.6.3で対応になりました。これで心置きなく32次元までのデータを描画できます。

以前の記事ではダメだった処理がそのまま動きます。素晴らしい!

jitglmultiple2-2.png

描画すればこんな感じ。

jitglmultiple2-1.gif

パッチはコレ、jit.gl.multiple-sample2.patです。

【追記】最初にアップロードしたパッチが微妙にミスってました。現在は修正されています。指摘してくれた人、ありがとう〜!

aka.sixaxis? No!

I have no plan to build aka.sixaxis. Thank you.

どういうわけか、SIXAXIS用のオブジェクトはないか?とか、作ってください!とか、問い合わせが多いのですが、そんな予定はこれっぽっちもありません。

なぜって、SIXAXISもPS3も持っていないし、興味もないから、です。(PC用ゲームもそうなんだけど)いわゆる家庭用ゲームをしたことがないので、いわゆるゲームパッドって苦手なんです。私的には、なんだかカッコ悪い。ついでに、PS3は実物見た瞬間に萎えました。

PS3は古い革袋に新しい葡萄酒を入れているつもりなんでしょうけど、失敗しまくってるのは、革袋(ユーザ・インターフェース)の重要性が分かってないから、でしょ。Vistaと同じで、お金の掛け方が間違っていると思うな。ってか、きっとお金の問題じゃない。

ちなみに、Wiiリモコンに反応しちゃったのは、あれがRadio Batonに似ているから!ですね(Raido Batonは本当はタブレットに近い)。Maxつながりというわけ(笑)。

radio-baton.jpg

aka.shellが4.6.3で正常動作

aka.shellが(shellも)Unixコマンドの実行結果を返さないという問題があったのですが、MaxMSPを4.6.3にアップデートした途端に正常に動作するようになりました。なんと、Max自体の問題だったようです。

一時期はこれで困った人が続出したようで、いくつも問い合わせがあったものの、解決できずにいたんですね。まぁ、めでたしめでたしなのですが、デバッグに費やした時間は無駄だったわけで、なんともトホホな気分です。

というわけで、これからはビシバシとコマンドを発行してください(笑)。

MaxMSP 4.6.3リリース

MaxMSPのマイナー・アップデートであるバージョン4.6.3がリリースされましたね。MaxMSPのダウンロード・ページからどうぞ。Jitter 1.6.3はまだみたいです。

ChangeLog463.rtfをざっと読んだところ、バグ・フィックスとちょっとした改善が行なわれていて、新しい機能やオブジェクトはないようです。

listの最大要素数は256個

結構大切なことを書き忘れていました(すみません〜)。listメッセージに含めることができる要素の数は最大で256個です。これは数値以外の要素を含むメッセージの場合も同様です。256個よりも多い個数のデータをひとかたまりとして扱いたい場合は、captureやcoll、text、あるいはbuffer~やjit.matrixなどのオブジェクトを使うことになろうかと思います。

このことを知らずに、うまく処理ができないと言っていた学生がいたので、それは本をよく読んどくれ〜と言ったものの、後で調べても書いていなかったみたいなので、冷汗をかいちゃいました(苦笑)。

というわけで、正誤表にも載せておきましたので、よろしく〜お願いします。

おまけ:シンボルの最大長(最大文字列長)は1999文字みたいです。