yoppa.org


immediate bitwave

芸大 – Interactive Music II 2014

第6回: SuperCollider応用 – SuperColliderと OSC (Open Sound Control)

今回から数回にわたって、SuperColliderと他のアプリケーションとの連携について取り上げます。例えば、Max/MSPやPdなどのアプリケーションでGUIを作成して、音はSuperColliderから生成したり、ProcessingやopenFrameworksなどのアプリケーションで、SuperColliderの音を視覚化したりといったことが可能となります。連携にはOpenSoundContorol (OSC) というプロトコル(通信の方式)を使用します。今回は、このOSCについて考えていきます。

スライド資料

授業内で使用するスライド資料は、下記から参照してください

サンプルプログラム

今回使用したSuperColliderのプログラムです。

//サーバーのブート
s = Server.default;
s.boot;

// 表示されるメッセージ
// [ "/dumpOSC", 1 ]

//全てのOSCメッセージを表示する
s.dumpOSC;

//楽器の定義
SynthDef("test_osc", {
    var out;
    out = SinOsc.ar([220, 221],0,0.5);
    Out.ar(0, out);
}).store;

// 表示されるメッセージ
// [ "/d_recv", DATA[244], 0 ]
// a SynthDef

//サウンド再生開始
s.sendMsg("/s_new", "test_osc", x = s.nextNodeID, 1, 1);

// 表示されるメッセージ
// [ "/s_new", "test_osc", 1000, 1, 1 ]

//再生終了
s.sendMsg("/n_free", x);

// 表示されるメッセージ
// [ "/n_free", 1000 ]

//サーバーの終了
s.quit;

// 表示されるメッセージ
// [ "/quit", ]
// [ 24, 0 ]

//別の楽器
SynthDef("perc", {
    arg freq, dur;
    var out, env;
    env = Env.perc(0.01, dur, 0.2);
    out = SinOsc.ar(freq,0,0.5) * EnvGen.kr(env, doneAction:2);
    out = Pan2.ar(out, Rand(-1.0, 1.0));
    Out.ar(0, out);
}).store;

連携のためのPd(Pure Data)のプログラムは下記からダウンロードしてください。