Max SDK のサンプルプロジェクトから External Object を作成:Max/MSP, Max SDK, C

Max/MSPを使ったアプリケーションを実装する際に、音に関して非リアルタイム && 1sample毎に信号処理したい(例えば、読み込んだ音声波形を再生する前にグリッチしたり、音のアタック部分だけを分析したりといった事。)欲求が高まってきました。期待をいだいて GEN や Max in JavaScript に手をだしたんですが、それらでは不可能だったので遂にMax SDKに手を出し始めましたよ!

これからMax SDKを使ったエクスターナルオブジェクト作成について書いてみたいと思います。ちなみにMac OS 10.8 / Xcode 4 の環境でやります。またJavaじゃなくてC言語なのは、少し前にArduinoをやってC言語を勉強したからです。

準備

SDKのダウンロード先 →  Max SDK

ダウンロードしたフォルダ MaxSDK-6.0.4を適当な場所に置きます。自分は /Document/Max 以下に置きました。Maxのサーチパス下に置くとコンパイルしたオブジェクトをMaxが認識してくれるので都合がいいです。

Xcodeプロジェクトを開く

/MaxSDK-6.0.4/examples/basics/ 以下にサンプルプロジェクト(*.xcodeproj)がいくつか入っているので、例えばsimplemax.xcodeproj 開いてみると、Xcodeが立ち上がります。

.xcconfig の修正

スクリーンショット 2013-01-25 4.18.32

このままだとコンパイルが通らないので、/MaxSDK-6.0.4/maxmspsdk.xcconfig の33,34行目を

[javascript]
SDKROOT = /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk
MACOSX_DEPLOYMENT_TARGET = 10.8
[/javascript]

へと変更します。Mountain Lionには10.6のSDKが入ってないためです。

コンパイル

左上の三角ボタンを押して、コンパイルが完了です。/MaxSDK-6.0.4/sdk-build 以下に simplemax.mxo が作成されている事が確認できます。

Max6を起動

スクリーンショット 2013-01-25 4.23.19

/MaxSDK-6.0.4/sdk-buildフォルダがMaxのサーチパス内に入っていれば、Max6を起動し、simplemaxオブジェクトをインスタンス化する事が出来ます。すでにMaxが起動していた場合は、一旦Max.appを落としてから起動しなおしてください。せっかく作ったこのsimplemaxオブジェクト、実は何も入力を受け付けないオブジェクトなので、何もできないです。

/example 以下には、沢山のサンプルプロジェクトがあるので色々試して見てください。ちなみに全てのサンプルプロジェクトにヘルプパッチ(*.maxhelp)が付いているので、パッチの説明・使用例が見られます。

まとめ

今回は、Max SDK をダウンロードして、Xcodeにてサンプルプロジェクトのコンパイルを行ない、External Objectの作成を行ないました。

補足

プロジェクトフォルダ内になる *.def と *.vcproj は、Win用の開発環境であるVisual Studio 用のファイルのようですので、Macの方は気にしなくて良いようです。