Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
Upcoming SlideShare
Loading in...5
×
 

Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)

on

  • 1,447 views

 

Statistics

Views

Total Views
1,447
Views on SlideShare
834
Embed Views
613

Actions

Likes
4
Downloads
19
Comments
0

5 Embeds 613

http://yoppa.org 572
http://feedly.com 38
http://digg.com 1
http://reader.aol.com 1
http://www.feedspot.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control) Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control) Presentation Transcript

  • SuperCollider応用 SuperColliderと OSC (Open Sound Control) 東京藝術大学芸術情報センター (AMC) 2013年12月5日 田所 淳
  • 今日の内容 ‣ OSC (Open Sound Control) というプロトコルについて ‣ この仕組みを理解することで、SuperColliderと他のアプケーショ ンとの連携が可能に ! ‣ 最終的な目標 ‣ SuperColliderを、他のアプケーションのGUIからコントロール ‣ SuperColliderの音を、他のアプリケーションでビジュアライズ
  • Open Sound Control (OSC) について
  • Open Sound Control とは ‣ Open Sound Control のプロジェクトのWebページより ‣ Open Sound Control (OSC) is a protocol for communication among computers, sound synthesizers, and other multimedia devices that is optimized for modern networking technology. Bringing the benefits of modern networking technology to the world of electronic musical instruments, OSC's advantages include interoperability, accuracy, flexibility, and enhanced organization and documentation.
  • Open Sound Control とは ‣ 要点: Open Sound Control (OSC)とは ! ‣ コンピュータ、シンセサイザーや、その他のマルチメディアデ バイス同士でコミュニケーションするための通信プロトコル ! ‣ 現代のネットワーク技術の成果を電子楽器の世界に適用 ‣ → UDP/IP ! ‣ 相互運用性、正確さ、柔軟さ、拡張性に優れる
  • Open Sound Control とは ‣ Open Sound Control のポイント ! ‣ ポストMIDIを目指す ‣ インターネットのプロトコルの仕組みを、音楽やマルチメディ アの世界へ適用 (UDP/IPを利用) ‣ 多くの機器、言語、アプリケーションに実装済み ‣ オープンでシンプルな命名規則 ← URLの仕組みに似ている
  • Open Sound Control とは ‣ Open Sound Control が実装された主な環境 ‣ サウンド系 ‣ Max/MSP ‣ Pd ‣ SuperCollider ‣ Chuck ‣ Csound ‣ Reactor ..etc. ! ‣ ビジュアル系 ‣ Flash ( flosc ) ‣ Processing ‣ OpenFrameworks ‣ QuartzComposer ‣ vvvv ..etc.
  • Open Sound Control とは ‣ ハードウェアにも対応したものが出てきている ‣ Lemur ‣ monome ..etc.
  • Open Sound Control とは ‣ iPhoneやiPadからも!
  • OSCのプロトコル ‣ では、実際にOSCのプロトコルは、どんななっているのか? ! ! /trigger/inst/a 440 0.1 “hello” OSC Message OSC Arguments • 情報内容をラベリング • • URLに同様の名前付けの規則 • 情報の本体 いろいろな型を同時に含めることがで きる
  • OSC Message ‣ OSC Messageのアドレスパターン → URLのような階層構造
  • OSC の通信のしくみ
  • OSC の通信のしくみ ‣ 送信側:IPアドレスとportを指定 IP: 192.168.1.3 port: 57120
  • OSC の通信のしくみ ‣ 受信側:ポートをオープン IP: 192.168.1.3 port: 57120
  • OSC の通信のしくみ ‣ 接続 IP: 192.168.1.3 port: 57120
  • OSC の通信のしくみ ‣ 送信側:情報を送信 ‣ 受信側:受信 /trigger/inst/a 440 0.1 hello IP: 192.168.1.3 port: 57120
  • OSC の通信のしくみ ‣ 受信側:OSCのメッセージを解釈、アプリケーションに適用 /trigger/inst/a 440 0.1 hello IP: 192.168.1.3 port: 57120
  • SuperColliderの構造 サーバー v.s. クライアント
  • SuperColliderの構造 ‣ クライアント v.s. サーバー SuperCollider application Client Server language sclang scsynth
  • SuperColliderの構造 ‣ クライアント v.s. サーバー SuperCollider application Client Server language sclang scsynth OSCで連携
  • SuperColliderの構造 ‣ クライアント v.s. サーバー ‣ 今までのプログラムも、その裏ではOSCで連携していた!! ! ‣ OSXのアクティビティーモニタで確認
  • SuperColliderの構造 ‣ クライアント v.s. サーバー ‣ サーバーとクライアントのOSC連携の詳細
  • SuperColliderでOSCを試す
  • SuperColliderでOSCを試す ‣ これまでやってきた操作の背後でやりとりされていた、OSCメッ セージをモニタしてみる ! ‣ { 関数 }.play で再生 ‣ SynthDefで作成した楽器を再生 ‣ 楽器のパラメータを変更 …etc.
  • SuperColliderでOSCを試す ‣ OSCをモニターする (dumpOSC) //サーバーのブート s = Server.default; s.boot; ! //全てのOSCメッセージを表示する s.dumpOSC;
  • SuperColliderでOSCを試す ‣ OSCをモニターする (dumpOSC) //楽器の定義 SynthDef("test_osc", { var out; out = SinOsc.ar([220, 221],0,0.5); Out.ar(0, out); }).store;
  • SuperColliderでOSCを試す ‣ OSCをモニターする (dumpOSC) //サウンド再生開始 s.sendMsg("/s_new", "test_osc", x = s.nextNodeID, 1, 1); ! //再生終了 s.sendMsg("/n_free", x); ! //サーバーの終了 s.quit;
  • SuperColliderでOSCを試す ‣ 様々な操作をしたタイミングで、Post Windowにメッセージが 表示されているはず ‣ どのようなメッセージが出ていたのか確認する
  • SuperColliderでOSCを試す ‣ OSCをモニターする (dumpOSC) //SuperCollider側プログラム s.dumpOSC; //表示されたOSCメッセージ [ "/dumpOSC", 1 ]
  • SuperColliderでOSCを試す ‣ OSCをモニターする (dumpOSC) //楽器の定義 SynthDef("test_osc", { var out; out = SinOsc.ar([220, 221],0,0.5); Out.ar(0, out); }).store; //表示されたOSCメッセージ [ "/d_recv", DATA[244], 0 ]
  • SuperColliderでOSCを試す ‣ OSCをモニターする (dumpOSC) //サウンド再生開始 s.sendMsg("/s_new", "test_osc", x = s.nextNodeID, 1, 1); //表示されたOSCメッセージ [ "/s_new", "test_osc", 1000, 1, 1 ]
  • SuperColliderでOSCを試す ‣ OSCをモニターする (dumpOSC) //再生終了 s.sendMsg("/n_free", x); //表示されたOSCメッセージ [ "/n_free", 1000 ]
  • SuperColliderでOSCを試す ‣ OSCをモニターする (dumpOSC) //サーバーの終了 s.quit; //表示されたOSCメッセージ [ "/quit", ]
  • 外部アプリから、SuperColliderを操作する PdでSuperColliderを操作
  • PdでSuperColliderを操作 ‣ dumpOSCで表示されたOSCメッセージを、そのまま外部のプ ログラムから送信すると、同じようにコントロールできる ‣ 試しに、PdからOSCを送出して、SuperColliderを動かす ! ‣ SuperColliderのOSCの受信ポート: 57120 ‣ sclangからscsynthが受信するポート: 57110
  • PdでSuperColliderを操作 ‣ 接続の詳細 ip : 任意のものを port:57120 Pd ip : 127.0.0.1 port:57110 SC lang SC言語 SC synth SC音響合成 SuperCollider
  • PdでSuperColliderを操作 ‣ Pdテストパッチ ‣ 上から順番にクリック、音が再生されるはず
  • PdでSuperColliderを操作 ‣ もう少し複雑な例 //別の楽器 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でSuperColliderを操作 ‣ Pd側パッチ ‣ metroを使用して、連続してs_newを送出