16
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1 2013年11月14日 東京藝術大学芸術情報センター(AMC) 田所 淳

Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1

Embed Size (px)

Citation preview

Page 1: Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1

Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1

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

Page 2: Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1

本日の内容‣ 前半 : 講評会 ‣ 前回出題した「自分の楽器をつくる」の発表を、サウンドスタジオのコントロールルームで行います !

‣ 後半 : ライブコーディング ‣ JITLibを使用したライブコーディングの導入を行います

Page 3: Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1

「ライブ・コーディング」とは?

Page 4: Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1

ライブ・コーディング‣ ライブ・コーディング (Live Coding) とは? !

‣ 「on-the-fly programming」「just in time programming」 ‣ 即興的にプログラミングを行う !

‣ コンピュータ音楽、CGアニメーションなどで多くの試み

Page 6: Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1

ライブ・コーディング‣ 参考サイト: TOPLAP

Page 7: Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1

ライブ・コーディング‣ Study In Keith - A livecoding performance by Andrew Sorensen

Page 8: Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1

SuperColliderで、ライブコーディング

Page 9: Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1

SuperColliderで、ライブコーディング‣ SuperColliderで、ライブコーディングに挑戦!! ‣ 奥深い世界なので、今回はさわりの部分のみ ‣ JITLibというライブラリを使用します

Page 10: Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1

SuperColliderで、ライブコーディング‣ JITlibとは? ‣ 標準のsupercolliderサーバ・リリースとともに配布されるサード・パーティ・ライブラリの1つ

‣ SuperCollider (SCLang) にライブコーディング機能を追加 ‣ 参考: http://doc.sccode.org/Overviews/JITLib.html

Page 11: Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1

//セットアップ。これによって「jitlibモード」に入るp= ProxySpace.push(s);!//通常のsc langに戻るにはp.pop;!

SuperColliderで、ライブコーディング‣ JITlibモードに入る、元に戻る

Page 12: Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1

//セットアップ。これによって「jitlibモード」に入るp= ProxySpace.push(s);!//通常のsc langに戻るにはp.pop;!

SuperColliderで、ライブコーディング‣ JITlibモードに入る、元に戻る

Page 13: Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1

//「~ + 変数名」はサーバーで処理される何かの場所を確保する(NodeProxy)//ugen関数、静的な数、pbind、lfoなどを入れることが可能!//例えば、UGenのひとつSinOscの出力結果をNodeProxyに入れる~out = {SinOsc.ar};!//proxyspaceに定義したもののリストを見るp;!//ProxySpaceに定義したものを再生する~out.play;

SuperColliderで、ライブコーディング‣ JITlibモードに入る、元に戻る

Page 14: Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1

//プロキシの中に現在あるものを別のugen関数で置き換える~out = {SinOsc.ar([220, 222], 0, 0.5)};!//クロスフェードの時間を設定~out.fadeTime = 4;!//クロスフェードしながら、別のUgenに置き換え~out = {SinOsc.ar([300, 333], 0, 0.5)};!//無音にフェードアウト~out.release;

SuperColliderで、ライブコーディング‣ JITlibモードに入る、元に戻る

Page 15: Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1

//アルゴリズミック・ハーモニーをライブコーディングで!~out = {Mix.arFill(24,{SinOsc.ar([220,221]*(3.0/2**rrand(1,6))*(0.5** rrand(1,6)),0,1.0/24)})};~out = {Mix.arFill(24,{SinOsc.ar([220,221]*(4.0/3**rrand(1,6))*(0.5** rrand(1,6)),0,1.0/24)})};~out = {Mix.arFill(24,{SinOsc.ar([220,221]*(5.0/3**rrand(1,8))*(0.5** rrand(1,6)),0,1.0/24)})};~out = {Mix.arFill(24,{SinOsc.ar([220,221]*(9.0/8**rrand(1,20))*(0.5** rrand(1,6)),0,1.0/24)})};

SuperColliderで、ライブコーディング‣ JITlibモードに入る、元に戻る

Page 16: Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1

今日はここまで!