iSuperColliderの現状

期待の星、SuperCollider for iPhoneは、かなり整備されてきたようです。ただ、まだチューニングが不十分なのか、私のビルドが悪いのか、ちょっとしたコードでCPU使用率が100%を超えたり、音が変になったりしますが、それなりに使うことができます。実用まであと一歩というところでしょうか。

isupercollider

現在のAppleのポリシーでは、プログラミング言語・実行環境であるSuperColliderがApp Storeからリリースされることはないので、がんばってSVNからビルドしましょう。

svn co https://supercollider.svn.sourceforge.net/svnroot/supercollider/trunk supercollider

この中でiPhone_Language.xcodeprojからSuperColliderというアプリケーションがビルドされ、iPhone_Synth.xcodeprojからiscsynthがビルドされます。前者のSuperColliderはinternal serverだけで、後者のiscsynthがOSCに対応するlocalhost serverを備えているようです。

従って、iPhoneではiscsynthを起動しておいて、MacのSuperColliderから次のようなコマンドを送ると、iPhoneをリモート・コントロールして音を鳴らすことができました。Mac上でシンセを定義して、それをiPhoneに送って鳴らしているわけで、ちょっと面白ですね。

// 変数sにiPhoneサーバを定義する。
s = Server.new(\iphone, NetAddr.new(“10.0.1.6”, 57110));

// サーバを起動する。
s.boot; // これは不要みたい。

// 「pulse」という名前のSynthDefを定義する。
SynthDef(“pulse”, { arg freq = 440, rate = 2, amp = 0.5;
var osc, trg;
trg = Decay2.ar(Impulse.ar(rate,0, 0.3), 0.01, 0.3, amp);
osc = {SinOsc.ar(freq,0, trg)}.dup;
Out.ar(0, osc);
}).writeDefFile;

// 「pulse」をサーバに送る。
s.sendSynthDef(“pulse”);

// サーバで「pulse」を鳴らす。
s.sendMsg(“/s_new”, “pulse”, 1000, 1, 0);

// 周波数などパラメータを変える。
s.sendMsg(“/n_set”, 1000, “freq”, 880, “rate”, 3, “amp”, 0.75);

// 周波数などパラメータを変える。
s.sendMsg(“/n_set”, 1000, “freq”, 660, “rate”, 4, “amp”, 0.5);

// ノードを破棄する。
s.sendMsg(“/n_free”, 1000);

一方、internal serverだけのSuperColliderは、外部からOSCでコントロールできないですね、きっと。画像表示などもLanguageであるSuperColliderのみのハズだから、画像は外部制御できないってことかな。もう少し調査・研究いしたします。

iSuperColliderの現状」への2件のフィードバック

  1. ピンバック: pinkroad » Blog Archive » supercolliderをiphoneに入れよう。

  2. ピンバック: supercolliderをiphoneに入れよう。 « azurebako

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA