芸大 – Interactive Music II 2014
第6回: SuperCollider応用 – SuperColliderと OSC (Open Sound Control)
今回から数回にわたって、SuperColliderと他のアプリケーションとの連携について取り上げます。例えば、Max/MSPやPdなどのアプリケーションでGUIを作成して、音はSuperColliderから生成したり、ProcessingやopenFrameworksなどのアプリケーションで、SuperColliderの音を視覚化したりといったことが可能となります。連携にはOpenSoundContorol (OSC) というプロトコル(通信の方式)を使用します。今回は、このOSCについて考えていきます。
スライド資料
授業内で使用するスライド資料は、下記から参照してください
サンプルプログラム
今回使用したSuperColliderのプログラムです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
//サーバーのブート 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)のプログラムは下記からダウンロードしてください。