43
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携 東京藝術大学芸術情報センター (AMC) 2013年12月12日 田所 淳

Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

Embed Size (px)

Citation preview

Page 1: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

東京藝術大学芸術情報センター (AMC) 2013年12月12日 田所 淳

Page 2: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

今日の内容‣ 先週の復習: ‣ OSC (OpenSoundControlについて) !

‣ Pdから、OSCを介してSuerColliderの楽器を鳴らしてみる ‣ Pdをインタフェイスとして、SuperColliderの楽器を使用する

Page 3: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

先週の復習: Open Sound Control (OSC) について

Page 4: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

Open Sound Control とは‣ Open Sound Control のポイント !

‣ ポストMIDIを目指す ‣ インターネットのプロトコルの仕組みを、音楽やマルチメディアの世界へ適用 (UDP/IPを利用)

‣ 多くの機器、言語、アプリケーションに実装済み ‣ オープンでシンプルな命名規則 ← URLの仕組みに似ている

Page 5: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

OSCのプロトコル

OSC Message OSC Arguments

• 情報内容をラベリング • URLに同様の名前付けの規則

• 情報の本体 • いろいろな型を同時に含めることができる

‣ では、実際にOSCのプロトコルは、どんななっているのか? !!/trigger/inst/a 440 0.1 “hello”

Page 6: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

‣ OSC Messageのアドレスパターン → URLのような階層構造

OSC Message

Page 7: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

OSC の通信のしくみ

Page 8: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

‣ 送信側:IPアドレスとportを指定

OSC の通信のしくみ

IP: 192.168.1.3 port: 57120

Page 9: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

‣ 受信側:ポートをオープン

OSC の通信のしくみ

IP: 192.168.1.3 port: 57120

Page 10: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

‣ 接続

OSC の通信のしくみ

IP: 192.168.1.3 port: 57120

Page 11: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

‣ 送信側:情報を送信 ‣ 受信側:受信

OSC の通信のしくみ

/trigger/inst/a 440 0.1 “hello”

IP: 192.168.1.3 port: 57120

Page 12: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

‣ 受信側:OSCのメッセージを解釈、アプリケーションに適用

OSC の通信のしくみ

/trigger/inst/a 440 0.1 “hello”

IP: 192.168.1.3 port: 57120

Page 13: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

SuperColliderの構造 サーバー v.s. クライアント

Page 14: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

‣ クライアント v.s. サーバー

SuperCollider application

SuperColliderの構造

sclang scsynth

language

Client Server

Page 15: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

‣ クライアント v.s. サーバー

SuperCollider application

SuperColliderの構造

sclang scsynth

language

Client Server

OSCで連携

Page 16: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

SuperColliderの構造‣ クライアント v.s. サーバー ‣ 今までのプログラムも、その裏ではOSCで連携していた!! !

‣ OSXのアクティビティーモニタで確認

Page 17: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

SuperColliderの構造‣ クライアント v.s. サーバー ‣ サーバーとクライアントのOSC連携の詳細

Page 18: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

PdでSuperColliderを操作

Page 19: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

PdでSuperColliderを操作‣ dumpOSCで表示されたOSCメッセージを、そのまま外部のプログラムから送信すると、同じようにコントロールできる

‣ 試しに、PdからOSCを送出して、SuperColliderを動かす !

‣ SuperColliderのOSCの受信ポート: 57120 ‣ sclangからscsynthが受信するポート: 57110

Page 20: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

PdでSuperColliderを操作‣ 接続の詳細

SC lang

ip : 任意のものを port:57120

SC synth

ip : 127.0.0.1 port:57110

SC言語 SC音響合成

SuperCollider

Page 21: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

PdでSuperColliderを操作‣ 接続の詳細 ‣ SCLangの代わりに、Pdから直接SCSynthに指示を送る

SC synth

ip : 127.0.0.1 port:57110

SC音響合成

SuperCollider

Pd

Page 22: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

PdでSuperColliderを操作‣ Pdテストパッチ ‣ 上から順番にクリック、音が再生されるはず

Page 23: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

//別の楽器 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を操作‣ もう少し複雑な例

Page 24: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

PdでSuperColliderを操作‣ Pd側パッチ ‣ metroを使用して、連続してs_newを送出

Page 25: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

PdでSuperColliderを操作‣ SuperColliderの楽器のインターフェイスとしてPdを利用 !

‣ 例: ‣ SuperCollider側でFM合成の楽器 ‣ Pdでパラメータをコントロール

Page 26: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

//FM合成の楽器(SynthDef("fm1", { arg detune = 0.001, freq = 440, carPartial = 1, modPartial = 1, index = 3, mul = 0.3; var mod; var car; mod = SinOsc.ar( [freq * modPartial, freq * (1 + detune) * modPartial], 0, freq * index * LFNoise1.kr(5.reciprocal).abs ); car = SinOsc.ar( (freq * carPartial) + mod, 0, mul ); Out.ar(0, car)}).add;)

PdでSuperColliderを操作‣ SC側

Page 27: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

PdでSuperColliderを操作‣ Pd側

Page 28: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

次週へのステップ Processing入門

Page 29: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

Processingとは?‣ Processingは、イメージやアニメーションそしてサウンドのプログラミングをしたいと思っている人々のためのオープンソースのプログラミンング言語であり開発環境です。アーティスト、デザイナー、建築家、研究者、そして趣味として使う人が、プロトタイピングや制作のために使うものです。ビジュアルな文脈でコンピュータプログラミングの基礎を教えるため、そしてソフトウェアのスケッチブックとして、またはプロフェッショナルのための制作ツールとして作られています。Processingは、アーティスト達やデザイナー達によって、おなじ分野の商業ソフトウェアへの代替手段として開発されています。

Page 30: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

Processingとは?‣ Processingの特徴 ‣ JavaやC++でプログラミングするよりも遥かに容易に、スケッチするようにインタラクティブなビジュアルプログラミングを構築できる

‣ スレッド、ダブルバッファリングなど、初級者にとってハードルとなる技術的な詳細を外し、アイデアの実現に専念できる

‣ 独自のシンタックスで書かれたプログラムをJavaコードに解析、コードは実行可能なJavaアプッレットとして書き出すことが可能

‣ PostScript、OpenGLの機能セットを利用した、カスタム2D/3Dレンダリングエンジンを使用

‣ 既存のJavaライブラリを統合することで容易に拡張が可能 ‣ 無料で利用できる ‣ Windows、MacOSX、Linuxで実行可能

Page 31: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

Processing 誕生の歴史‣ Design by Numbers - John Maeda (MIT Media Lab.) ‣ http://dbn.media.mit.edu/ ‣ Processingの祖先

Page 32: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

Processing 誕生の歴史‣ MIT Media Lab. で John Maedaの博士課程の学生だった Ben FryとCasey Reas によりProcessing が生みだされた (2001)

‣ その後バージョンアップを重ねて現在のバージョンは1.5.1 ‣ Javaをベースにしたクロスプラットフォーム ‣ Mac OSX, Windows, Linux 版 ‣ JavaScript版のProcessing.jsなどの派生プロジェクトも

Page 33: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

Processingに触れてみる‣ まずは起動してみる ‣ Processingの起動画面

Page 34: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

Processingに触れてみる‣ メニューの解説 ‣ 操作方法

Page 35: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

Processingに触れてみる‣ とりあえず、何も入力せずに再生ボタンを押してみる ‣ Windowが表示され、グレーの領域が表示 ‣ 空の状態

Page 36: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

Processingに触れてみる‣ エディターの画面に次のプログラムを入力

!!

!!!

‣ 線が描かれる

line(0,0,100,100);

Page 37: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

Processingに触れてみる‣ さらに命令を追加

line(0,0,100,100); ellipse(50,50,80,80);

Page 38: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

Processingに触れてみる‣ Processingでは、簡単な命令(関数)で形を描くことができる ‣ 面倒な処理は勝手にやってくれる ‣ Windowの生成 ‣ 描画する領域の生成 !

‣ プログラムの書き出し ‣ Java Applet  ‣ 実行ファイル ‣ Javascript  ‣ Androidアプリ  !

‣ クリエイティブな部分にのみ専念できる

Page 39: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

Processingに触れてみる‣ Java Appletとして書き出してみる ‣ Exportボタンを押すだけ

Page 40: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

次週までの課題 Hello Processingを視聴

Page 41: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

次週までの課題

Page 42: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

次週までの課題‣ Hello Processing (http://hello.processing.org/) ‣ Daniel Shiffman 氏によるチュートリアル ‣ 映像とコードでインタラクティブに学べる教材

Page 43: Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携

次週までの課題‣ 次週までに一通り視聴してきてください ‣ 1時間で終わります! !

‣ 参考: 『Hour of Code』キャンペーン ‣ http://www.cbc-net.com/topic/2013/12/hourofcode/