Interactive Music II
SuperCollider応用
JITLib - ライブコーディング 1
2013年11月14日
東京藝術大学芸術情報センター(AMC)
田所 淳
本日の内容
‣ 前半 : 講評会
‣ 前回出題した「自分の楽器をつくる」の発表を、サウンドスタ
ジオのコントロールルームで行います
!

‣ 後半 : ライブコーディング
‣ JITLibを使用したライブコーディングの導入を行います
「ライブ・コーディング」とは?
ライブ・コーディング
‣ ライブ・コーディング (Live Coding) とは?
!

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

‣ コンピ...
ライブ・コーディング
‣ ライブコーディングに対応した言語
!

‣
‣
‣
‣
‣
‣
‣
‣

SuperCollider
ChucK
COLT
Impromptu
Pure Data
Max
LiveCode
Fluxus
ライブ・コーディング
‣ 参考サイト: TOPLAP
ライブ・コーディング
‣ Study In Keith - A livecoding performance by Andrew Sorensen
SuperColliderで、ライブコーディング
SuperColliderで、ライブコーディング
‣ SuperColliderで、ライブコーディングに挑戦!!
‣ 奥深い世界なので、今回はさわりの部分のみ
‣ JITLibというライブラリを使用します
SuperColliderで、ライブコーディング
‣ JITlibとは?
‣ 標準のsupercolliderサーバ・リリースとともに配布されるサー
ド・パーティ・ライブラリの1つ
‣ SuperCollider (SCLang) にライブコー...
SuperColliderで、ライブコーディング
‣ JITlibモードに入る、元に戻る
//セットアップ。これによって「jitlibモード」に入る	
p= ProxySpace.push(s);	

!
//通常のsc langに戻るには	
...
SuperColliderで、ライブコーディング
‣ JITlibモードに入る、元に戻る
//セットアップ。これによって「jitlibモード」に入る	
p= ProxySpace.push(s);	

!
//通常のsc langに戻るには	
...
SuperColliderで、ライブコーディング
‣ JITlibモードに入る、元に戻る
//「~ + 変数名」はサーバーで処理される何かの場所を確保する(NodeProxy)	
//ugen関数、静的な数、pbind、lfoなどを入れることが...
SuperColliderで、ライブコーディング
‣ JITlibモードに入る、元に戻る
//プロキシの中に現在あるものを別のugen関数で置き換える	
~out = {SinOsc.ar([220, 222], 0, 0.5)};	

!
/...
SuperColliderで、ライブコーディング
‣ JITlibモードに入る、元に戻る
//アルゴリズミック・ハーモニーをライブコーディングで!	
~out = {Mix.arFill(24,{SinOsc.ar([220,221]*(3.0...
今日はここまで!
Upcoming SlideShare
Loading in...5
×

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

1,246

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,246
On Slideshare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
27
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

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

  1. 1. Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1 2013年11月14日 東京藝術大学芸術情報センター(AMC) 田所 淳
  2. 2. 本日の内容 ‣ 前半 : 講評会 ‣ 前回出題した「自分の楽器をつくる」の発表を、サウンドスタ ジオのコントロールルームで行います ! ‣ 後半 : ライブコーディング ‣ JITLibを使用したライブコーディングの導入を行います
  3. 3. 「ライブ・コーディング」とは?
  4. 4. ライブ・コーディング ‣ ライブ・コーディング (Live Coding) とは? ! ‣ 「on-the-fly programming」「just in time programming」 ‣ 即興的にプログラミングを行う ! ‣ コンピュータ音楽、CGアニメーションなどで多くの試み
  5. 5. ライブ・コーディング ‣ ライブコーディングに対応した言語 ! ‣ ‣ ‣ ‣ ‣ ‣ ‣ ‣ SuperCollider ChucK COLT Impromptu Pure Data Max LiveCode Fluxus
  6. 6. ライブ・コーディング ‣ 参考サイト: TOPLAP
  7. 7. ライブ・コーディング ‣ Study In Keith - A livecoding performance by Andrew Sorensen
  8. 8. SuperColliderで、ライブコーディング
  9. 9. SuperColliderで、ライブコーディング ‣ SuperColliderで、ライブコーディングに挑戦!! ‣ 奥深い世界なので、今回はさわりの部分のみ ‣ JITLibというライブラリを使用します
  10. 10. SuperColliderで、ライブコーディング ‣ JITlibとは? ‣ 標準のsupercolliderサーバ・リリースとともに配布されるサー ド・パーティ・ライブラリの1つ ‣ SuperCollider (SCLang) にライブコーディング機能を追加 ‣ 参考: http://doc.sccode.org/Overviews/JITLib.html
  11. 11. SuperColliderで、ライブコーディング ‣ JITlibモードに入る、元に戻る //セットアップ。これによって「jitlibモード」に入る p= ProxySpace.push(s); ! //通常のsc langに戻るには p.pop; !
  12. 12. SuperColliderで、ライブコーディング ‣ JITlibモードに入る、元に戻る //セットアップ。これによって「jitlibモード」に入る p= ProxySpace.push(s); ! //通常のsc langに戻るには p.pop; !
  13. 13. SuperColliderで、ライブコーディング ‣ JITlibモードに入る、元に戻る //「~ + 変数名」はサーバーで処理される何かの場所を確保する(NodeProxy) //ugen関数、静的な数、pbind、lfoなどを入れることが可能 ! //例えば、UGenのひとつSinOscの出力結果をNodeProxyに入れる ~out = {SinOsc.ar}; ! //proxyspaceに定義したもののリストを見る p; ! //ProxySpaceに定義したものを再生する ~out.play;
  14. 14. SuperColliderで、ライブコーディング ‣ JITlibモードに入る、元に戻る //プロキシの中に現在あるものを別のugen関数で置き換える ~out = {SinOsc.ar([220, 222], 0, 0.5)}; ! //クロスフェードの時間を設定 ~out.fadeTime = 4; ! //クロスフェードしながら、別のUgenに置き換え ~out = {SinOsc.ar([300, 333], 0, 0.5)}; ! //無音にフェードアウト ~out.release;
  15. 15. SuperColliderで、ライブコーディング ‣ JITlibモードに入る、元に戻る //アルゴリズミック・ハーモニーをライブコーディングで! ~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)})};
  16. 16. 今日はここまで!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×