SlideShare a Scribd company logo
Interactive Music II
SuperCollider入門
2013年10月3日
東京藝術大学芸術情報センター(AMC)
田所 淳
Interactive Music II について
Interactive Music II について
‣ Interactive Music I (松村先生) では、Pure Dataを開発言語とし
て、インタラクティブな音楽を創作
‣ Interactive Music II では、この講義を引き継いで、また別の角
度からプログラミング言語を用いた、インタラクティブな音楽
の創作を探求したい
‣ ビジュアルプログラミング言語(Pd, Maxなど)ではなく、一般
的なテキストベースのプログラミング言語による音楽の創作
‣ 今期は、SuperColliderを取り上げたい
Interactive Music II について
‣ この講義、もう1つの目標 :
‣ ライブイベントの開催
‣ 2つのステップを経て、外部で発表へ!
‣ Step 1: ウッドデッキでイベント開催 (11月)
‣ PAはAMCのものを使用(PAの基礎知識も同時に学びたい!)
‣ Step 2: ウッドデッキでイベント開催 (1月)
‣ 会場の選定、広報、機材調達、記録など全員で手分けして
‣ 外部からゲストを呼ぶ方法もアリ
Interactive Music II について
‣ 次週以降、毎回持ってきて欲しいもの
‣ ヘッドホン (or イヤホン)
‣ もし今から買うのであれば、モニター用のもの
SuperCollider Basics
SuperCollider Basics
‣ SuperColliderとは?
SuperCollider Basics
‣ SuperColliderとは?
‣ リアルタイムな音響合成やアルゴリズミック・コンポジション
のためのプログラミング言語
‣ SmallTalkライクなオブジェクト指向言語
‣ リアルタイムに音響を生成できる → ライブコーディング!
SuperCollider Basics
‣ 1996年にJames McCartneyによりリリース
‣ James McCartneyの就職(Apple!)などの事情で、オープソース
として公開
‣ 現在は、GPLライセンスとして多くの開発者により更新されて
いる
SuperCollider Basics
‣ 参考図書:The SuperCollider Book
‣ Wilson, S., Cottle, D. and Collins, N. (eds). 2011. The
SuperCollider Book. Cambridge, MA: MIT Press
SuperCollider Basics
‣ Website: http://supercollider.sourceforge.net/
SuperCollider Basics
‣ SuperColliderをダウンロード
‣ 最新版は、version 3.6.5 (2013年10月現在)
‣ http://supercollider.sourceforge.net/downloads/
The SuperCollider Language
‣ SuperColliderの独特な文法
‣ Smalltalkのオブジェクト指向な言語構造と、C言語系の制御構
造などの機能を足したような感じ
// print "Hello world!"
"Hello world!".postln;
// play a mixture of an 800 Hz sine tone and pink noise
{ SinOsc.ar(800, 0, 0.1) + PinkNoise.ar(0.01) }.play;
// modulate a sine frequency and a noise amplitude with another sine
// whose frequency depends on the horizontal mouse pointer position
{
var x = SinOsc.ar(MouseX.kr(1, 100));
SinOsc.ar(300 * x + 800, 0, 0.1)
+
PinkNoise.ar(0.1 * x + 0.1)
}.play;
// list iteration: multiply the elements of a collection by their indices
[1, 2, 5, 10, -3].collect {
arg elem, idx;
elem * idx;
};
// factorial function
f = {
arg x;
if(x == 0) { 1 } { f.(x-1) * x }
};
‣ SuperCollider.app を起動
‣ 最新バージョン3.6は、統合開発環境(IDE)となっている
The SuperCollider Language
‣ 左側のエディターにプログラムを入力
‣ タブで複数のファイルを同時に編集可能
The SuperCollider Language
Editor
‣ 右上には、ヘルプ画面
‣ チュートリアルや、様々なドキュメントが参照可能
‣
The SuperCollider Language
Help
‣ 右下はコンソール
‣ システムの状態、プログラムからの出力などを表示
‣
The SuperCollider Language
Console
‣ とりあえず、 Hello World
‣ SuperCollider.app を起動
‣ エディターに、下記のコードを入力
‣ 文字を全て選択する
‣ Command + Return キーを押す
‣ コンソールに Hello world というメッセージが表示される
"Hello world"
The SuperCollider Language
‣ SuperCollider アプリケーションの構造
The SuperCollider Language
‣ 音を生成するには、まずSC Serverを起動しなくてはならない
‣ メニューから、Language > Boot Server を選択
‣ もしくは「Command + B」キーでもOK
‣ 以下のように表示が変化すれば準備完了
The SuperCollider Language
‣ 音を鳴らしてみる
‣ localhost serverを起動.
‣ 下記のコードを記入して、 Command + enter
‣ 音を止めるには Command + . (period)
‣ コード内の数値を変化させてみる
‣ 何が変化したか?
‣ 12, 600, 100, 0.3
The SuperCollider Language
play({SinOsc.ar(LFNoise0.kr(12, mul: 600, add: 1000), 0.3)})
‣ コードサンプル: Wire 140
‣ 世界中のアーティストからよせられた22曲
‣ 全てのコードは、140文字(Twitter!)以内で書かれている
‣ それにも関わらず、バラエティーに富んだ音楽が楽しめる
‣ http://supercollider.sourceforge.net/sc140/
The SuperCollider Language
01
Nathaniel Virgo
{LocalOut.ar(a=CombN.ar(BPF.ar(LocalIn.ar(2)*7.5+Saw.ar([32,33],0.2),
2**LFNoise0.kr(4/3,4)*300,0.1).distort,2,2,40));a}.play//#supercollider
02
LFSaw
{Splay.ar(Ringz.ar(Impulse.ar([2, 1, 4], [0.1, 0.11, 0.12]), [0.1, 0.1,
0.5])) * EnvGen.kr(Env([1, 1, 0], [120, 10]), doneAction: 2)}.play
03
Tim Walters
play{({|k|({|i|y=SinOsc;y.ar(i*k*k,y.ar(i*k**i/
[4,5])*Decay.kr(Dust.kr(1/4**i),y.ar(0.1)+1*k+i,k*999))}!8).product}!
16).sum}//#supercollider
04
Nathaniel Virgo
b=Buffer.read(s,"sounds/a11wlk01.wav");play{t=Impulse.kr(5);PlayBuf.ar(1,b,
1,t,Demand.kr(t,0,Dseq(1e3*[103,41,162,15,141,52,124,190],4)))!2}
...
‣ Example: Wire 140
The SuperCollider Language
‣ 別のサンプル
‣ 数値を変化させてみよう!
‣ [12, 15]
‣ [3, 8]
‣ 1500
‣ 1600
‣ 0.02
The SuperCollider Language
play({RLPF.ar(Dust.ar([12, 15]), LFNoise1.ar(1/[3, 8], 1500, 1600), 0.02)})
‣ このコードをわかりやすく分解すると下記のようになる
‣
The SuperCollider Language
play({RLPF.ar(Dust.ar([12, 15]), LFNoise1.ar(1/[3, 8], 1500, 1600), 0.02)})
play(
	 {
	 	 RLPF.ar(
	 	 	 Dust.ar(
	 	 	 	 	 	 [12, 15]
	 	 	 	 	 ),
	 	 	 LFNoise1.ar(
	 	 	 	 	 	 1/[3, 8],
	 	 	 	 	 	 1500,
	 	 	 	 	 	 1600
	 	 	 	 	 ),
	 	 	 0.02
	 	 )
	 }
)
‣ たくさんの括弧が存在する
‣ (parentheses)
‣ [brackets]
‣ {braces}
‣ "quotation"
‣ これらの括弧の役割を知ることがSuperCollider理解のコツ
Enclosures
‣ ... - ダブルクォーテイション
‣ 「文字列」をあらわす
‣ ... - シングルクォーテイション
‣ 「シンボル」をあらわす
‣ aSymbol = aSymbol
Enclosures
‣ ( ... ) - 小括弧
‣ 関数の引数(argument)をあらわす
‣ その外、計算の順番を意味する場合も
Enclosures
message(arg1, arg2, arg3…)
5 + (10 * 4)
‣ [ ... ] - 大括弧
‣ アイテムの集合をあらわす - 配列(Array)など
‣ Arrayには様々なデータを格納できる - numbers, texts,
functions, all of patch ...etc.
‣ Arrayにメッセージを与えると、様々な操作が可能
‣ reverse, scramble, mirror, rotate, midicps, choose,
permute ...etc.
Enclosures
‣ [ ... ] - 大括弧
‣ 音楽に応用した例
Enclosures
[0, 11, 10, 1, 9, 8, 2, 3, 7, 4, 6, 5].reverse
12 - [0, 11, 10, 1, 9, 8, 2, 3, 7, 4, 6, 5].reverse
[0, 2, 4, 5, 6, 7, 9, 11].scramble
[60, 62, 64, 67, 69].mirror
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].rotate
[60, 62, 64, 65, 67, 69, 71].midicps.round(0.1)
[1, 0.75, 0.5, 0.25, 0.125].choose
0.125 * [1, 2, 3, 4, 5, 6, 7, 8].choose
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].permute(6)
‣ [ ... ] - 大括弧
‣ 大括弧は、複数のチャンネルを意味することがある
Enclosures
{Blip.ar(25, LFNoise0.kr(5, 12, 14), 0.3)}.play
{Blip.ar(25, LFNoise0.kr([5, 10], 12, 14), 0.3)}.play
{Blip.ar(25, LFNoise0.kr([5, 10, 2, 25], 12, 14), 0.3)}.play
{Blip.ar(25, LFNoise0.kr([5, 4, 7, 9, 5, 1, 9, 2], 12, 14), 0.3)}.play
‣ { ... } - 中括弧
‣ 「関数」をあらわす
‣ 下の2つのコードを比較してみる (dupはくりかえしのこと)
‣ 下の行は、以下の書き方と同じ意味になる
Enclosures
dup(rand(1000.0), 5)
dup({rand(1000.0)}, 5)
[rand(1000.0), rand(1000.0), rand(1000.0),
rand(1000.0), rand(1000.0)]
‣ ネスティングの例 (構造が別の構造を取り囲むこと)
‣ 音響合成におけるネスティング
Nesting
exprand(1.0, 1000.0)
dup({exprand(1.0, 1000.0)}, 100)
sort(dup({exprand(1.0, 1000.0)}, 100))
round(sort(dup({exprand(1.0, 1000.0)}, 100)), 0.01)
play(
	 	 {
	 	 	 CombN.ar(
	 	 	 	 SinOsc.ar(
	 	 	 	 	 midicps(
	 	 	 	 	 	 LFNoise1.ar(3, 24,
	 	 	 	 	 	 	 LFSaw.ar([5, 5.123], 0, 3, 80)
	 	 	 	 	 	 )
	 	 	 	 	 ),
	 	 	 	 	 0, 0.4),
	 	 	 	 1, 0.3, 2)
	 	 }
)
‣ { ... } - 中括弧
‣ 関数はメッセージを理解して動作する
Enclosures
{LFNoise0.ar}.play
{LFNoise0.ar(10000)}.plot
{LFNoise0.ar(10000)}.scope
{100.rand}.dup(10)
{100.rand} ! 10
{100.rand}.dup(10).postln.plot
{100.rand}.dup(100).sort.plot
‣ Supercolliderのコードは、メッセージと引数から構成される
‣ e.g.
‣ メッセージはオブジェクト(レシーバ)とともに用いられること
もある
Messages and Arguments.
message(arg1, arg2, arg3…)
rand(100)
exprand(1.0, 100.0)
SinOsc.ar(arglist)
Mix.fill(arglist)
‣ メッセージの例
Messages and Arguments.
dup("echo", 20)
round([3.141, 5.9265, 358.98], 0.01)
sort([23, 54, 678, 1, 21, 91, 34, 78])
round(dup({exprand(1, 10)}, 100), 0.1)
sort(round(dup({exprand(1, 10)}, 100), 0.1))
Receiver and Message, UGens
‣ レシーバとメッセージ
‣ レシーバ
‣ メッセージを受けとるオブジェクト
‣ 大文字から始まる
‣ メッセージ
‣ オブジェクトに特定の操作を依頼する
‣ 引数をもつ場合もある
Receiver.message(arglist)
Receiver and Message, UGens
‣ Numbers, Functions, Arrays, Stringsなどはレシーバーになる
ことができる
[45, 13, 10, 498, 78].sort
"echo".dup(20)
50.midicps
444.cpsmidi
100.rand
{100.rand}.dup(50)
[1.001, 45.827, 187.18].round(0.1)
"I've just picked up a fault in the AE35 unit".speak
Receiver and Message, UGens
‣ . (ピリオド) を接続していってネスト構造を実現
1000.0
1000.0.rand
1000.0.rand.round(0.01)
1000.0.rand.round(0.01).post
{1000.0.rand.round(0.01).postln}.dup(100).plot
{1000.0.rand.round(0.01).postln}.dup(100).postln.sort.plot
1000.0.rand.round(0.01).postln.asString.speak
Receiver and Message, UGens
‣ 音響合成のためのレシーバ(オブジェクト)が多数存在
‣ これらを総称して UGen (ユニットジェネレータ) と呼ぶ
‣ CombN, SinOsc, LFNoise1, LFSaw ...etc.
‣ Ugenは信号の計算に特化している
‣ これらがソフトウェア楽器を定義する際の基本パーツとなる
‣ Ugenで生成する信号には二つ
‣ オーディオ信号: Ugen.ar(...)
‣ コントロール信号: Ugen.kr(...)
LFNoise1.kr(10,100)
Receiver and Message, UGens
‣ SCのヘルプにはとても丁寧にUGenの解説とサンプルが掲載さ
れている
‣ ヘルプメニューで Tour of Ugens でサーチしてみる
‣ UGenの機能を外観するツアーが用意されている
Variables
‣ 変数:
‣ aからzのアルファベットは宣言なしに使用可能
‣ 上のコードは下と同じ意味になる
‣
(
a = 440;
b = 3;
c = "math operations";
[c, a, b, a*b, a + b, a.pow(b), a.mod(b)]
)
["math operations", 440, 3, 440*3, 440 + 3, 440.pow(3),
440.mod(3)]
Variables
‣ 変数の使用例
‣ this code is same as below.
(
	 {
	 	 r = MouseX.kr(1/3, 10);
	 	 SinOsc.ar(mul: Linen.kr(Impulse.kr(r), 0, 1, 1/r))
	 }.play
)
Variables
‣ もう少し複雑な例
‣ this code is same as below.
(
p = {
	 	 r = Line.kr(1, 20, 60);
	 	 t = Impulse.kr(r);
	 	 e = Linen.kr(t, 0, 0.5, 1/r);
	 	 f = TRand.kr(1, 10, t);
	 	 Blip.ar(f*100, f, e)
	 }.play
)
Variables
‣ さらに複雑な例
‣ this code is same as below.
(
{
	 r = Impulse.kr(10);
	 c = TRand.kr(100, 5000, r);
	 m = TRand.kr(100, 5000, r);
	 PMOsc.ar(c, m, 12)*0.3
}.play
)
(
{
	 var rate = 4, carrier, modRatio;
	 carrier = LFNoise0.kr(rate) * 500 + 700;
	 modRatio = MouseX.kr(1, 2.0);
	 PMOsc.ar(carrier, carrier*modRatio, 12)*0.3
}.play
)
来週につづく!

More Related Content

What's hot

Media Art II openFrameworks 複数のシーンの管理・切替え
Media Art II openFrameworks 複数のシーンの管理・切替えMedia Art II openFrameworks 複数のシーンの管理・切替え
Media Art II openFrameworks 複数のシーンの管理・切替えAtsushi Tadokoro
 
ο παπουτσωμένος χιονόδρακος
ο παπουτσωμένος χιονόδρακοςο παπουτσωμένος χιονόδρακος
ο παπουτσωμένος χιονόδρακοςIoanna Chats
 
Ανθρώπινο σώμα - Τα όργανα.pdf
Ανθρώπινο σώμα - Τα όργανα.pdfΑνθρώπινο σώμα - Τα όργανα.pdf
Ανθρώπινο σώμα - Τα όργανα.pdfKonstantina Koutsodimou
 
Χάσαμε τη γάτα - Α ΄Δημοτικου - Γλώσσα
Χάσαμε τη γάτα - Α ΄Δημοτικου - ΓλώσσαΧάσαμε τη γάτα - Α ΄Δημοτικου - Γλώσσα
Χάσαμε τη γάτα - Α ΄Δημοτικου - ΓλώσσαMARIANTHI ARVANITIDOU
 
πώς γίνεται; πώς παίζεται;(3)
πώς γίνεται; πώς παίζεται;(3)πώς γίνεται; πώς παίζεται;(3)
πώς γίνεται; πώς παίζεται;(3)Ioanna Chats
 
Ένα γράμμα μια ιστορία
Ένα γράμμα μια ιστορίαΈνα γράμμα μια ιστορία
Ένα γράμμα μια ιστορίαΑννα Παππα
 
τι έγινε, κυρία, στο πολυτεχνείο
τι έγινε, κυρία, στο πολυτεχνείοτι έγινε, κυρία, στο πολυτεχνείο
τι έγινε, κυρία, στο πολυτεχνείοBabis Bazakas
 
素数の分解法則(フロベニウスやばい) #math_cafe
素数の分解法則(フロベニウスやばい) #math_cafe 素数の分解法則(フロベニウスやばい) #math_cafe
素数の分解法則(フロベニウスやばい) #math_cafe Junpei Tsuji
 
Παιχνίδι με την αλαφαβήτα. Για τα παιδιά της πρώτης δημοτικού, για τα παιδιά ...
Παιχνίδι με την αλαφαβήτα. Για τα παιδιά της πρώτης δημοτικού, για τα παιδιά ...Παιχνίδι με την αλαφαβήτα. Για τα παιδιά της πρώτης δημοτικού, για τα παιδιά ...
Παιχνίδι με την αλαφαβήτα. Για τα παιδιά της πρώτης δημοτικού, για τα παιδιά ...Παπαδημητρακοπούλου Τζένη
 
Media Art II 2013 第5回:openFrameworks Addonを使用する
Media Art II 2013 第5回:openFrameworks Addonを使用するMedia Art II 2013 第5回:openFrameworks Addonを使用する
Media Art II 2013 第5回:openFrameworks Addonを使用するAtsushi Tadokoro
 
Με πινέλα και φαντασία 2
Με πινέλα και φαντασία 2Με πινέλα και φαντασία 2
Με πινέλα και φαντασία 2MariaGeorgiou68
 
τασος, το σαλιγκάρι
τασος, το σαλιγκάριτασος, το σαλιγκάρι
τασος, το σαλιγκάριIoanna Chats
 
λεμόνι με φτερά 2
λεμόνι με φτερά 2λεμόνι με φτερά 2
λεμόνι με φτερά 2Ioanna Chats
 
VRモーキャプツール『VR Motion Recorder』の使い方
VRモーキャプツール『VR Motion Recorder』の使い方VRモーキャプツール『VR Motion Recorder』の使い方
VRモーキャプツール『VR Motion Recorder』の使い方まろん 八ッ橋
 
Ένα λεμόνι με φτερά. Φύλλα εργασίας και εποπτικό υλικό για την α΄ δημοτικού.(...
Ένα λεμόνι με φτερά. Φύλλα εργασίας και εποπτικό υλικό για την α΄ δημοτικού.(...Ένα λεμόνι με φτερά. Φύλλα εργασίας και εποπτικό υλικό για την α΄ δημοτικού.(...
Ένα λεμόνι με φτερά. Φύλλα εργασίας και εποπτικό υλικό για την α΄ δημοτικού.(...Παπαδημητρακοπούλου Τζένη
 

What's hot (20)

Media Art II openFrameworks 複数のシーンの管理・切替え
Media Art II openFrameworks 複数のシーンの管理・切替えMedia Art II openFrameworks 複数のシーンの管理・切替え
Media Art II openFrameworks 複数のシーンの管理・切替え
 
ο παπουτσωμένος χιονόδρακος
ο παπουτσωμένος χιονόδρακοςο παπουτσωμένος χιονόδρακος
ο παπουτσωμένος χιονόδρακος
 
Ανθρώπινο σώμα - Τα όργανα.pdf
Ανθρώπινο σώμα - Τα όργανα.pdfΑνθρώπινο σώμα - Τα όργανα.pdf
Ανθρώπινο σώμα - Τα όργανα.pdf
 
Χάσαμε τη γάτα - Α ΄Δημοτικου - Γλώσσα
Χάσαμε τη γάτα - Α ΄Δημοτικου - ΓλώσσαΧάσαμε τη γάτα - Α ΄Δημοτικου - Γλώσσα
Χάσαμε τη γάτα - Α ΄Δημοτικου - Γλώσσα
 
Sbaw090421
Sbaw090421Sbaw090421
Sbaw090421
 
πώς γίνεται; πώς παίζεται;(3)
πώς γίνεται; πώς παίζεται;(3)πώς γίνεται; πώς παίζεται;(3)
πώς γίνεται; πώς παίζεται;(3)
 
Ένα γράμμα μια ιστορία
Ένα γράμμα μια ιστορίαΈνα γράμμα μια ιστορία
Ένα γράμμα μια ιστορία
 
τι έγινε, κυρία, στο πολυτεχνείο
τι έγινε, κυρία, στο πολυτεχνείοτι έγινε, κυρία, στο πολυτεχνείο
τι έγινε, κυρία, στο πολυτεχνείο
 
素数の分解法則(フロベニウスやばい) #math_cafe
素数の分解法則(フロベニウスやばい) #math_cafe 素数の分解法則(フロベニウスやばい) #math_cafe
素数の分解法則(フロベニウスやばい) #math_cafe
 
Παιχνίδι με την αλαφαβήτα. Για τα παιδιά της πρώτης δημοτικού, για τα παιδιά ...
Παιχνίδι με την αλαφαβήτα. Για τα παιδιά της πρώτης δημοτικού, για τα παιδιά ...Παιχνίδι με την αλαφαβήτα. Για τα παιδιά της πρώτης δημοτικού, για τα παιδιά ...
Παιχνίδι με την αλαφαβήτα. Για τα παιδιά της πρώτης δημοτικού, για τα παιδιά ...
 
καράβια
καράβιακαράβια
καράβια
 
Πεπόνι, πεπόνι!
Πεπόνι, πεπόνι!Πεπόνι, πεπόνι!
Πεπόνι, πεπόνι!
 
Media Art II 2013 第5回:openFrameworks Addonを使用する
Media Art II 2013 第5回:openFrameworks Addonを使用するMedia Art II 2013 第5回:openFrameworks Addonを使用する
Media Art II 2013 第5回:openFrameworks Addonを使用する
 
Μέμα Μπ , μπ
Μέμα    Μπ  ,  μπΜέμα    Μπ  ,  μπ
Μέμα Μπ , μπ
 
Με πινέλα και φαντασία 2
Με πινέλα και φαντασία 2Με πινέλα και φαντασία 2
Με πινέλα και φαντασία 2
 
τασος, το σαλιγκάρι
τασος, το σαλιγκάριτασος, το σαλιγκάρι
τασος, το σαλιγκάρι
 
λεμόνι με φτερά 2
λεμόνι με φτερά 2λεμόνι με φτερά 2
λεμόνι με φτερά 2
 
Μόνος στο σκοτάδι
Μόνος στο σκοτάδιΜόνος στο σκοτάδι
Μόνος στο σκοτάδι
 
VRモーキャプツール『VR Motion Recorder』の使い方
VRモーキャプツール『VR Motion Recorder』の使い方VRモーキャプツール『VR Motion Recorder』の使い方
VRモーキャプツール『VR Motion Recorder』の使い方
 
Ένα λεμόνι με φτερά. Φύλλα εργασίας και εποπτικό υλικό για την α΄ δημοτικού.(...
Ένα λεμόνι με φτερά. Φύλλα εργασίας και εποπτικό υλικό για την α΄ δημοτικού.(...Ένα λεμόνι με φτερά. Φύλλα εργασίας και εποπτικό υλικό για την α΄ δημοτικού.(...
Ένα λεμόνι με φτερά. Φύλλα εργασίας και εποπτικό υλικό για την α΄ δημοτικού.(...
 

Viewers also liked

Raspberry PiとPdでオリジナルのシンセを作る
Raspberry PiとPdでオリジナルのシンセを作るRaspberry PiとPdでオリジナルのシンセを作る
Raspberry PiとPdでオリジナルのシンセを作るChikashi Miyama
 
ArduinoでMidiコントローラーを作ろう
ArduinoでMidiコントローラーを作ろうArduinoでMidiコントローラーを作ろう
ArduinoでMidiコントローラーを作ろうtadfmac
 
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2Atsushi Tadokoro
 
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1Atsushi Tadokoro
 
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス
Media Art II openFrameworks  アプリ間の通信とタンジブルなインターフェイス Media Art II openFrameworks  アプリ間の通信とタンジブルなインターフェイス
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス Atsushi Tadokoro
 
openFrameworks、サウンド機能・音響合成、ofxMaxim, ofxOsc, ofxPd, ofxSuperCollider
openFrameworks、サウンド機能・音響合成、ofxMaxim, ofxOsc, ofxPd, ofxSuperCollideropenFrameworks、サウンド機能・音響合成、ofxMaxim, ofxOsc, ofxPd, ofxSuperCollider
openFrameworks、サウンド機能・音響合成、ofxMaxim, ofxOsc, ofxPd, ofxSuperColliderAtsushi Tadokoro
 
Raspberry Piでつくる高音質オーディオ
Raspberry Piでつくる高音質オーディオRaspberry Piでつくる高音質オーディオ
Raspberry Piでつくる高音質オーディオMotoki Nagano
 
Raspberry Piでハイレゾ音源を鳴らそう RuneAudio+Pi-DAC+編
Raspberry Piでハイレゾ音源を鳴らそう RuneAudio+Pi-DAC+編Raspberry Piでハイレゾ音源を鳴らそう RuneAudio+Pi-DAC+編
Raspberry Piでハイレゾ音源を鳴らそう RuneAudio+Pi-DAC+編Toru Miyahara
 
DNN音響モデルにおける特徴量抽出の諸相
DNN音響モデルにおける特徴量抽出の諸相DNN音響モデルにおける特徴量抽出の諸相
DNN音響モデルにおける特徴量抽出の諸相Takuya Yoshioka
 
GLSLによるシェーダーアートことはじめ
GLSLによるシェーダーアートことはじめGLSLによるシェーダーアートことはじめ
GLSLによるシェーダーアートことはじめYoichi Hirata
 
Pythonで作る俺様サウンドエフェクター
Pythonで作る俺様サウンドエフェクターPythonで作る俺様サウンドエフェクター
Pythonで作る俺様サウンドエフェクターRansui Iso
 
ソフトシンセを作りながら学ぶPythonプログラミング
ソフトシンセを作りながら学ぶPythonプログラミングソフトシンセを作りながら学ぶPythonプログラミング
ソフトシンセを作りながら学ぶPythonプログラミングRansui Iso
 
Arduino / ArduBlock の簡単なプログラムと回路の例
Arduino / ArduBlock の簡単なプログラムと回路の例Arduino / ArduBlock の簡単なプログラムと回路の例
Arduino / ArduBlock の簡単なプログラムと回路の例mitunaga
 
ブレッドボードの使い方と Arduino に簡単な回路をつける例
ブレッドボードの使い方と Arduino に簡単な回路をつける例ブレッドボードの使い方と Arduino に簡単な回路をつける例
ブレッドボードの使い方と Arduino に簡単な回路をつける例mitunaga
 
Arduino 入門
Arduino 入門Arduino 入門
Arduino 入門mitunaga
 
Deep Convolutional Generative Adversarial Networks - Nextremer勉強会資料
Deep Convolutional Generative Adversarial Networks - Nextremer勉強会資料Deep Convolutional Generative Adversarial Networks - Nextremer勉強会資料
Deep Convolutional Generative Adversarial Networks - Nextremer勉強会資料tm_2648
 
クロスプラットフォーム開発入門
クロスプラットフォーム開発入門クロスプラットフォーム開発入門
クロスプラットフォーム開発入門minazou67
 
Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2
Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2
Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2Yoshito Tabuchi
 
Introducing libpd -Pdをアプリのサウンドエンジンに-
Introducing libpd -Pdをアプリのサウンドエンジンに-Introducing libpd -Pdをアプリのサウンドエンジンに-
Introducing libpd -Pdをアプリのサウンドエンジンに-Yoichi Hirata
 

Viewers also liked (20)

Raspberry PiとPdでオリジナルのシンセを作る
Raspberry PiとPdでオリジナルのシンセを作るRaspberry PiとPdでオリジナルのシンセを作る
Raspberry PiとPdでオリジナルのシンセを作る
 
ArduinoでMidiコントローラーを作ろう
ArduinoでMidiコントローラーを作ろうArduinoでMidiコントローラーを作ろう
ArduinoでMidiコントローラーを作ろう
 
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
 
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
 
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス
Media Art II openFrameworks  アプリ間の通信とタンジブルなインターフェイス Media Art II openFrameworks  アプリ間の通信とタンジブルなインターフェイス
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス
 
openFrameworks、サウンド機能・音響合成、ofxMaxim, ofxOsc, ofxPd, ofxSuperCollider
openFrameworks、サウンド機能・音響合成、ofxMaxim, ofxOsc, ofxPd, ofxSuperCollideropenFrameworks、サウンド機能・音響合成、ofxMaxim, ofxOsc, ofxPd, ofxSuperCollider
openFrameworks、サウンド機能・音響合成、ofxMaxim, ofxOsc, ofxPd, ofxSuperCollider
 
Raspberry Piでつくる高音質オーディオ
Raspberry Piでつくる高音質オーディオRaspberry Piでつくる高音質オーディオ
Raspberry Piでつくる高音質オーディオ
 
Raspberry Piでハイレゾ音源を鳴らそう RuneAudio+Pi-DAC+編
Raspberry Piでハイレゾ音源を鳴らそう RuneAudio+Pi-DAC+編Raspberry Piでハイレゾ音源を鳴らそう RuneAudio+Pi-DAC+編
Raspberry Piでハイレゾ音源を鳴らそう RuneAudio+Pi-DAC+編
 
DNN音響モデルにおける特徴量抽出の諸相
DNN音響モデルにおける特徴量抽出の諸相DNN音響モデルにおける特徴量抽出の諸相
DNN音響モデルにおける特徴量抽出の諸相
 
ESTATUTO DA POLÍCIA MILITAR DE RONDÔNIA
ESTATUTO DA POLÍCIA MILITAR DE RONDÔNIAESTATUTO DA POLÍCIA MILITAR DE RONDÔNIA
ESTATUTO DA POLÍCIA MILITAR DE RONDÔNIA
 
GLSLによるシェーダーアートことはじめ
GLSLによるシェーダーアートことはじめGLSLによるシェーダーアートことはじめ
GLSLによるシェーダーアートことはじめ
 
Pythonで作る俺様サウンドエフェクター
Pythonで作る俺様サウンドエフェクターPythonで作る俺様サウンドエフェクター
Pythonで作る俺様サウンドエフェクター
 
ソフトシンセを作りながら学ぶPythonプログラミング
ソフトシンセを作りながら学ぶPythonプログラミングソフトシンセを作りながら学ぶPythonプログラミング
ソフトシンセを作りながら学ぶPythonプログラミング
 
Arduino / ArduBlock の簡単なプログラムと回路の例
Arduino / ArduBlock の簡単なプログラムと回路の例Arduino / ArduBlock の簡単なプログラムと回路の例
Arduino / ArduBlock の簡単なプログラムと回路の例
 
ブレッドボードの使い方と Arduino に簡単な回路をつける例
ブレッドボードの使い方と Arduino に簡単な回路をつける例ブレッドボードの使い方と Arduino に簡単な回路をつける例
ブレッドボードの使い方と Arduino に簡単な回路をつける例
 
Arduino 入門
Arduino 入門Arduino 入門
Arduino 入門
 
Deep Convolutional Generative Adversarial Networks - Nextremer勉強会資料
Deep Convolutional Generative Adversarial Networks - Nextremer勉強会資料Deep Convolutional Generative Adversarial Networks - Nextremer勉強会資料
Deep Convolutional Generative Adversarial Networks - Nextremer勉強会資料
 
クロスプラットフォーム開発入門
クロスプラットフォーム開発入門クロスプラットフォーム開発入門
クロスプラットフォーム開発入門
 
Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2
Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2
Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2
 
Introducing libpd -Pdをアプリのサウンドエンジンに-
Introducing libpd -Pdをアプリのサウンドエンジンに-Introducing libpd -Pdをアプリのサウンドエンジンに-
Introducing libpd -Pdをアプリのサウンドエンジンに-
 

Similar to Interactive Music II - SuperCollider入門

openFrameworks Workshop in Kanazawa v001
openFrameworks Workshop in Kanazawa v001openFrameworks Workshop in Kanazawa v001
openFrameworks Workshop in Kanazawa v001Teruaki Tsubokura
 
Cookpad 17 day Tech internship 2017 言語処理系入門 Rubyをコンパイルしよう
Cookpad 17 day Tech internship 2017 言語処理系入門 RubyをコンパイルしようCookpad 17 day Tech internship 2017 言語処理系入門 Rubyをコンパイルしよう
Cookpad 17 day Tech internship 2017 言語処理系入門 RubyをコンパイルしようKoichi Sasada
 
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)mametter
 
Arduinoでプログラミングに触れてみよう 続編
Arduinoでプログラミングに触れてみよう 続編Arduinoでプログラミングに触れてみよう 続編
Arduinoでプログラミングに触れてみよう 続編Hiromu Yakura
 
Mac Rubyではじめる!Macアプリ開発入門
Mac Rubyではじめる!Macアプリ開発入門Mac Rubyではじめる!Macアプリ開発入門
Mac Rubyではじめる!Macアプリ開発入門宏治 高尾
 
cocos2d-xハンズオン勉強会 in 名古屋
cocos2d-xハンズオン勉強会 in 名古屋cocos2d-xハンズオン勉強会 in 名古屋
cocos2d-xハンズオン勉強会 in 名古屋Tomoaki Shimizu
 
ARコンテンツ作成勉強会:C#ではじめようOpenCV(カラートラッキング編)
ARコンテンツ作成勉強会:C#ではじめようOpenCV(カラートラッキング編)ARコンテンツ作成勉強会:C#ではじめようOpenCV(カラートラッキング編)
ARコンテンツ作成勉強会:C#ではじめようOpenCV(カラートラッキング編)Takashi Yoshinaga
 
10分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 110110分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 1101Nobuaki Oshiro
 
Processing.jsでおうちハック
Processing.jsでおうちハックProcessing.jsでおうちハック
Processing.jsでおうちハックsonycsl
 
Zマイスターとの新たな価値探求 z/OS
Zマイスターとの新たな価値探求 z/OSZマイスターとの新たな価値探求 z/OS
Zマイスターとの新たな価値探求 z/OSIBMソリューション
 
10分で分かるr言語入門ver2.9 14 0920
10分で分かるr言語入門ver2.9 14 0920 10分で分かるr言語入門ver2.9 14 0920
10分で分かるr言語入門ver2.9 14 0920 Nobuaki Oshiro
 
マイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorpマイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorpMasahito Zembutsu
 
Android上での3D(OpenGL)描画の基礎とNDKによる実践的高速化手法
Android上での3D(OpenGL)描画の基礎とNDKによる実践的高速化手法Android上での3D(OpenGL)描画の基礎とNDKによる実践的高速化手法
Android上での3D(OpenGL)描画の基礎とNDKによる実践的高速化手法Hiroshi Yoshida
 
板ポリだけで めちゃカッコいい グラフィックスを出す!
板ポリだけで めちゃカッコいい グラフィックスを出す!板ポリだけで めちゃカッコいい グラフィックスを出す!
板ポリだけで めちゃカッコいい グラフィックスを出す!notargs
 
入門 超絶技巧プログラミング !
入門 超絶技巧プログラミング !入門 超絶技巧プログラミング !
入門 超絶技巧プログラミング !Nobutada Matsubara
 

Similar to Interactive Music II - SuperCollider入門 (20)

openFrameworks Workshop in Kanazawa v001
openFrameworks Workshop in Kanazawa v001openFrameworks Workshop in Kanazawa v001
openFrameworks Workshop in Kanazawa v001
 
Cookpad 17 day Tech internship 2017 言語処理系入門 Rubyをコンパイルしよう
Cookpad 17 day Tech internship 2017 言語処理系入門 RubyをコンパイルしようCookpad 17 day Tech internship 2017 言語処理系入門 Rubyをコンパイルしよう
Cookpad 17 day Tech internship 2017 言語処理系入門 Rubyをコンパイルしよう
 
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
 
Ssaw08 0701
Ssaw08 0701Ssaw08 0701
Ssaw08 0701
 
R高速化
R高速化R高速化
R高速化
 
Tokyor23 doradora09
Tokyor23 doradora09Tokyor23 doradora09
Tokyor23 doradora09
 
Arduinoでプログラミングに触れてみよう 続編
Arduinoでプログラミングに触れてみよう 続編Arduinoでプログラミングに触れてみよう 続編
Arduinoでプログラミングに触れてみよう 続編
 
Cross Platform Make
Cross Platform MakeCross Platform Make
Cross Platform Make
 
Mac Rubyではじめる!Macアプリ開発入門
Mac Rubyではじめる!Macアプリ開発入門Mac Rubyではじめる!Macアプリ開発入門
Mac Rubyではじめる!Macアプリ開発入門
 
cocos2d-xハンズオン勉強会 in 名古屋
cocos2d-xハンズオン勉強会 in 名古屋cocos2d-xハンズオン勉強会 in 名古屋
cocos2d-xハンズオン勉強会 in 名古屋
 
STC-OC2019_1st201906
STC-OC2019_1st201906STC-OC2019_1st201906
STC-OC2019_1st201906
 
ARコンテンツ作成勉強会:C#ではじめようOpenCV(カラートラッキング編)
ARコンテンツ作成勉強会:C#ではじめようOpenCV(カラートラッキング編)ARコンテンツ作成勉強会:C#ではじめようOpenCV(カラートラッキング編)
ARコンテンツ作成勉強会:C#ではじめようOpenCV(カラートラッキング編)
 
10分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 110110分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 1101
 
Processing.jsでおうちハック
Processing.jsでおうちハックProcessing.jsでおうちハック
Processing.jsでおうちハック
 
Zマイスターとの新たな価値探求 z/OS
Zマイスターとの新たな価値探求 z/OSZマイスターとの新たな価値探求 z/OS
Zマイスターとの新たな価値探求 z/OS
 
10分で分かるr言語入門ver2.9 14 0920
10分で分かるr言語入門ver2.9 14 0920 10分で分かるr言語入門ver2.9 14 0920
10分で分かるr言語入門ver2.9 14 0920
 
マイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorpマイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorp
 
Android上での3D(OpenGL)描画の基礎とNDKによる実践的高速化手法
Android上での3D(OpenGL)描画の基礎とNDKによる実践的高速化手法Android上での3D(OpenGL)描画の基礎とNDKによる実践的高速化手法
Android上での3D(OpenGL)描画の基礎とNDKによる実践的高速化手法
 
板ポリだけで めちゃカッコいい グラフィックスを出す!
板ポリだけで めちゃカッコいい グラフィックスを出す!板ポリだけで めちゃカッコいい グラフィックスを出す!
板ポリだけで めちゃカッコいい グラフィックスを出す!
 
入門 超絶技巧プログラミング !
入門 超絶技巧プログラミング !入門 超絶技巧プログラミング !
入門 超絶技巧プログラミング !
 

More from Atsushi Tadokoro

「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望Atsushi Tadokoro
 
プログラム初級講座 - メディア芸術をはじめよう
プログラム初級講座 - メディア芸術をはじめようプログラム初級講座 - メディア芸術をはじめよう
プログラム初級講座 - メディア芸術をはじめようAtsushi Tadokoro
 
Interactive Music II ProcessingとSuperColliderの連携 -2
Interactive Music II ProcessingとSuperColliderの連携 -2Interactive Music II ProcessingとSuperColliderの連携 -2
Interactive Music II ProcessingとSuperColliderの連携 -2Atsushi Tadokoro
 
coma Creators session vol.2
coma Creators session vol.2coma Creators session vol.2
coma Creators session vol.2Atsushi Tadokoro
 
Interactive Music II Processingによるアニメーション
Interactive Music II ProcessingによるアニメーションInteractive Music II Processingによるアニメーション
Interactive Music II ProcessingによるアニメーションAtsushi Tadokoro
 
Interactive Music II Processing基本
Interactive Music II Processing基本Interactive Music II Processing基本
Interactive Music II Processing基本Atsushi Tadokoro
 
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携Atsushi Tadokoro
 
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描くiTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描くAtsushi Tadokoro
 
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリメディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリAtsushi Tadokoro
 
芸術情報演習デザイン(Web) 第8回: CSSフレームワークを使う
芸術情報演習デザイン(Web)  第8回: CSSフレームワークを使う芸術情報演習デザイン(Web)  第8回: CSSフレームワークを使う
芸術情報演習デザイン(Web) 第8回: CSSフレームワークを使うAtsushi Tadokoro
 
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得Atsushi Tadokoro
 
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
Webデザイン 第10回:HTML5実践 Three.jsで3DプログラミングWebデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
Webデザイン 第10回:HTML5実践 Three.jsで3DプログラミングAtsushi Tadokoro
 
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画するiTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画するAtsushi Tadokoro
 
Interactive Music II SuperCollider実習 オリジナルの楽器を作ろう!
Interactive Music II SuperCollider実習  オリジナルの楽器を作ろう!Interactive Music II SuperCollider実習  オリジナルの楽器を作ろう!
Interactive Music II SuperCollider実習 オリジナルの楽器を作ろう!Atsushi Tadokoro
 
iTamabi 13 第7回:ARTSAT API 実践 2 衛星の情報で表現する
iTamabi 13  第7回:ARTSAT API 実践 2 衛星の情報で表現するiTamabi 13  第7回:ARTSAT API 実践 2 衛星の情報で表現する
iTamabi 13 第7回:ARTSAT API 実践 2 衛星の情報で表現するAtsushi Tadokoro
 
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGLMedia Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGLAtsushi Tadokoro
 
メディア芸術基礎 II Canvas + Javascriptで図形を描く
メディア芸術基礎 II Canvas + Javascriptで図形を描くメディア芸術基礎 II Canvas + Javascriptで図形を描く
メディア芸術基礎 II Canvas + Javascriptで図形を描くAtsushi Tadokoro
 
iTamabi 13  第6回:ARTSAT API 実践 1 Web APIから情報を取得する
iTamabi 13  第6回:ARTSAT API 実践 1 Web APIから情報を取得するiTamabi 13  第6回:ARTSAT API 実践 1 Web APIから情報を取得する
iTamabi 13  第6回:ARTSAT API 実践 1 Web APIから情報を取得するAtsushi Tadokoro
 

More from Atsushi Tadokoro (20)

「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
 
プログラム初級講座 - メディア芸術をはじめよう
プログラム初級講座 - メディア芸術をはじめようプログラム初級講座 - メディア芸術をはじめよう
プログラム初級講座 - メディア芸術をはじめよう
 
Interactive Music II ProcessingとSuperColliderの連携 -2
Interactive Music II ProcessingとSuperColliderの連携 -2Interactive Music II ProcessingとSuperColliderの連携 -2
Interactive Music II ProcessingとSuperColliderの連携 -2
 
coma Creators session vol.2
coma Creators session vol.2coma Creators session vol.2
coma Creators session vol.2
 
Interactive Music II Processingによるアニメーション
Interactive Music II ProcessingによるアニメーションInteractive Music II Processingによるアニメーション
Interactive Music II Processingによるアニメーション
 
Interactive Music II Processing基本
Interactive Music II Processing基本Interactive Music II Processing基本
Interactive Music II Processing基本
 
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
 
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描くiTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
 
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリメディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
 
芸術情報演習デザイン(Web) 第8回: CSSフレームワークを使う
芸術情報演習デザイン(Web)  第8回: CSSフレームワークを使う芸術情報演習デザイン(Web)  第8回: CSSフレームワークを使う
芸術情報演習デザイン(Web) 第8回: CSSフレームワークを使う
 
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
 
Tamabi media131118
Tamabi media131118Tamabi media131118
Tamabi media131118
 
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
Webデザイン 第10回:HTML5実践 Three.jsで3DプログラミングWebデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
 
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画するiTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
 
Interactive Music II SuperCollider実習 オリジナルの楽器を作ろう!
Interactive Music II SuperCollider実習  オリジナルの楽器を作ろう!Interactive Music II SuperCollider実習  オリジナルの楽器を作ろう!
Interactive Music II SuperCollider実習 オリジナルの楽器を作ろう!
 
Geidai music131107
Geidai music131107Geidai music131107
Geidai music131107
 
iTamabi 13 第7回:ARTSAT API 実践 2 衛星の情報で表現する
iTamabi 13  第7回:ARTSAT API 実践 2 衛星の情報で表現するiTamabi 13  第7回:ARTSAT API 実践 2 衛星の情報で表現する
iTamabi 13 第7回:ARTSAT API 実践 2 衛星の情報で表現する
 
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGLMedia Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
 
メディア芸術基礎 II Canvas + Javascriptで図形を描く
メディア芸術基礎 II Canvas + Javascriptで図形を描くメディア芸術基礎 II Canvas + Javascriptで図形を描く
メディア芸術基礎 II Canvas + Javascriptで図形を描く
 
iTamabi 13  第6回:ARTSAT API 実践 1 Web APIから情報を取得する
iTamabi 13  第6回:ARTSAT API 実践 1 Web APIから情報を取得するiTamabi 13  第6回:ARTSAT API 実践 1 Web APIから情報を取得する
iTamabi 13  第6回:ARTSAT API 実践 1 Web APIから情報を取得する
 

Recently uploaded

modul belajar bagasa jepang pemula -N5.pdf
modul belajar bagasa jepang pemula -N5.pdfmodul belajar bagasa jepang pemula -N5.pdf
modul belajar bagasa jepang pemula -N5.pdfjaquarisjaquaris
 
ゲーム理論 BASIC 演習108 -フリーライダー② -#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習108 -フリーライダー② -#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習108 -フリーライダー② -#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習108 -フリーライダー② -#ゲーム理論 #gametheory #数学ssusere0a682
 
The types of disability that administrative scrivener involved in the disabil...
The types of disability that administrative scrivener involved in the disabil...The types of disability that administrative scrivener involved in the disabil...
The types of disability that administrative scrivener involved in the disabil...oganekyokoi
 
To obtain the status of Foreigners' Immigration Residence Operations Specifie...
To obtain the status of Foreigners' Immigration Residence Operations Specifie...To obtain the status of Foreigners' Immigration Residence Operations Specifie...
To obtain the status of Foreigners' Immigration Residence Operations Specifie...oganekyokoi
 
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料Tokyo Institute of Technology
 
How to create a Divorce Agreement. Presented by Wadatsumi
How to create a Divorce Agreement. Presented by WadatsumiHow to create a Divorce Agreement. Presented by Wadatsumi
How to create a Divorce Agreement. Presented by Wadatsumioganekyokoi
 
Key points of the revision of the Inheritance Law Contribution and Special Co...
Key points of the revision of the Inheritance Law Contribution and Special Co...Key points of the revision of the Inheritance Law Contribution and Special Co...
Key points of the revision of the Inheritance Law Contribution and Special Co...oganekyokoi
 
〔第27回日本高等教育学会年会発表〕IRにおける教務概念のオントロジー化 − 情報科学からのアプローチ −
〔第27回日本高等教育学会年会発表〕IRにおける教務概念のオントロジー化 −	情報科学からのアプローチ −〔第27回日本高等教育学会年会発表〕IRにおける教務概念のオントロジー化 −	情報科学からのアプローチ −
〔第27回日本高等教育学会年会発表〕IRにおける教務概念のオントロジー化 − 情報科学からのアプローチ −東京工業大学
 
東京工業大学 大学院 6学院入試説明会資料 2024年度受験者向け
東京工業大学 大学院 6学院入試説明会資料 2024年度受験者向け東京工業大学 大学院 6学院入試説明会資料 2024年度受験者向け
東京工業大学 大学院 6学院入試説明会資料 2024年度受験者向けTokyo Institute of Technology
 
On community support centres as a sales destination.pdf
On community support centres as a sales destination.pdfOn community support centres as a sales destination.pdf
On community support centres as a sales destination.pdfoganekyokoi
 

Recently uploaded (10)

modul belajar bagasa jepang pemula -N5.pdf
modul belajar bagasa jepang pemula -N5.pdfmodul belajar bagasa jepang pemula -N5.pdf
modul belajar bagasa jepang pemula -N5.pdf
 
ゲーム理論 BASIC 演習108 -フリーライダー② -#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習108 -フリーライダー② -#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習108 -フリーライダー② -#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習108 -フリーライダー② -#ゲーム理論 #gametheory #数学
 
The types of disability that administrative scrivener involved in the disabil...
The types of disability that administrative scrivener involved in the disabil...The types of disability that administrative scrivener involved in the disabil...
The types of disability that administrative scrivener involved in the disabil...
 
To obtain the status of Foreigners' Immigration Residence Operations Specifie...
To obtain the status of Foreigners' Immigration Residence Operations Specifie...To obtain the status of Foreigners' Immigration Residence Operations Specifie...
To obtain the status of Foreigners' Immigration Residence Operations Specifie...
 
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
 
How to create a Divorce Agreement. Presented by Wadatsumi
How to create a Divorce Agreement. Presented by WadatsumiHow to create a Divorce Agreement. Presented by Wadatsumi
How to create a Divorce Agreement. Presented by Wadatsumi
 
Key points of the revision of the Inheritance Law Contribution and Special Co...
Key points of the revision of the Inheritance Law Contribution and Special Co...Key points of the revision of the Inheritance Law Contribution and Special Co...
Key points of the revision of the Inheritance Law Contribution and Special Co...
 
〔第27回日本高等教育学会年会発表〕IRにおける教務概念のオントロジー化 − 情報科学からのアプローチ −
〔第27回日本高等教育学会年会発表〕IRにおける教務概念のオントロジー化 −	情報科学からのアプローチ −〔第27回日本高等教育学会年会発表〕IRにおける教務概念のオントロジー化 −	情報科学からのアプローチ −
〔第27回日本高等教育学会年会発表〕IRにおける教務概念のオントロジー化 − 情報科学からのアプローチ −
 
東京工業大学 大学院 6学院入試説明会資料 2024年度受験者向け
東京工業大学 大学院 6学院入試説明会資料 2024年度受験者向け東京工業大学 大学院 6学院入試説明会資料 2024年度受験者向け
東京工業大学 大学院 6学院入試説明会資料 2024年度受験者向け
 
On community support centres as a sales destination.pdf
On community support centres as a sales destination.pdfOn community support centres as a sales destination.pdf
On community support centres as a sales destination.pdf
 

Interactive Music II - SuperCollider入門

  • 2. Interactive Music II について
  • 3. Interactive Music II について ‣ Interactive Music I (松村先生) では、Pure Dataを開発言語とし て、インタラクティブな音楽を創作 ‣ Interactive Music II では、この講義を引き継いで、また別の角 度からプログラミング言語を用いた、インタラクティブな音楽 の創作を探求したい ‣ ビジュアルプログラミング言語(Pd, Maxなど)ではなく、一般 的なテキストベースのプログラミング言語による音楽の創作 ‣ 今期は、SuperColliderを取り上げたい
  • 4. Interactive Music II について ‣ この講義、もう1つの目標 : ‣ ライブイベントの開催 ‣ 2つのステップを経て、外部で発表へ! ‣ Step 1: ウッドデッキでイベント開催 (11月) ‣ PAはAMCのものを使用(PAの基礎知識も同時に学びたい!) ‣ Step 2: ウッドデッキでイベント開催 (1月) ‣ 会場の選定、広報、機材調達、記録など全員で手分けして ‣ 外部からゲストを呼ぶ方法もアリ
  • 5. Interactive Music II について ‣ 次週以降、毎回持ってきて欲しいもの ‣ ヘッドホン (or イヤホン) ‣ もし今から買うのであれば、モニター用のもの
  • 8. SuperCollider Basics ‣ SuperColliderとは? ‣ リアルタイムな音響合成やアルゴリズミック・コンポジション のためのプログラミング言語 ‣ SmallTalkライクなオブジェクト指向言語 ‣ リアルタイムに音響を生成できる → ライブコーディング!
  • 9. SuperCollider Basics ‣ 1996年にJames McCartneyによりリリース ‣ James McCartneyの就職(Apple!)などの事情で、オープソース として公開 ‣ 現在は、GPLライセンスとして多くの開発者により更新されて いる
  • 10. SuperCollider Basics ‣ 参考図書:The SuperCollider Book ‣ Wilson, S., Cottle, D. and Collins, N. (eds). 2011. The SuperCollider Book. Cambridge, MA: MIT Press
  • 11. SuperCollider Basics ‣ Website: http://supercollider.sourceforge.net/
  • 12. SuperCollider Basics ‣ SuperColliderをダウンロード ‣ 最新版は、version 3.6.5 (2013年10月現在) ‣ http://supercollider.sourceforge.net/downloads/
  • 13. The SuperCollider Language ‣ SuperColliderの独特な文法 ‣ Smalltalkのオブジェクト指向な言語構造と、C言語系の制御構 造などの機能を足したような感じ // print "Hello world!" "Hello world!".postln; // play a mixture of an 800 Hz sine tone and pink noise { SinOsc.ar(800, 0, 0.1) + PinkNoise.ar(0.01) }.play; // modulate a sine frequency and a noise amplitude with another sine // whose frequency depends on the horizontal mouse pointer position { var x = SinOsc.ar(MouseX.kr(1, 100)); SinOsc.ar(300 * x + 800, 0, 0.1) + PinkNoise.ar(0.1 * x + 0.1) }.play; // list iteration: multiply the elements of a collection by their indices [1, 2, 5, 10, -3].collect { arg elem, idx; elem * idx; }; // factorial function f = { arg x; if(x == 0) { 1 } { f.(x-1) * x } };
  • 14. ‣ SuperCollider.app を起動 ‣ 最新バージョン3.6は、統合開発環境(IDE)となっている The SuperCollider Language
  • 18. ‣ とりあえず、 Hello World ‣ SuperCollider.app を起動 ‣ エディターに、下記のコードを入力 ‣ 文字を全て選択する ‣ Command + Return キーを押す ‣ コンソールに Hello world というメッセージが表示される "Hello world" The SuperCollider Language
  • 20. ‣ 音を生成するには、まずSC Serverを起動しなくてはならない ‣ メニューから、Language > Boot Server を選択 ‣ もしくは「Command + B」キーでもOK ‣ 以下のように表示が変化すれば準備完了 The SuperCollider Language
  • 21. ‣ 音を鳴らしてみる ‣ localhost serverを起動. ‣ 下記のコードを記入して、 Command + enter ‣ 音を止めるには Command + . (period) ‣ コード内の数値を変化させてみる ‣ 何が変化したか? ‣ 12, 600, 100, 0.3 The SuperCollider Language play({SinOsc.ar(LFNoise0.kr(12, mul: 600, add: 1000), 0.3)})
  • 22. ‣ コードサンプル: Wire 140 ‣ 世界中のアーティストからよせられた22曲 ‣ 全てのコードは、140文字(Twitter!)以内で書かれている ‣ それにも関わらず、バラエティーに富んだ音楽が楽しめる ‣ http://supercollider.sourceforge.net/sc140/ The SuperCollider Language
  • 23. 01 Nathaniel Virgo {LocalOut.ar(a=CombN.ar(BPF.ar(LocalIn.ar(2)*7.5+Saw.ar([32,33],0.2), 2**LFNoise0.kr(4/3,4)*300,0.1).distort,2,2,40));a}.play//#supercollider 02 LFSaw {Splay.ar(Ringz.ar(Impulse.ar([2, 1, 4], [0.1, 0.11, 0.12]), [0.1, 0.1, 0.5])) * EnvGen.kr(Env([1, 1, 0], [120, 10]), doneAction: 2)}.play 03 Tim Walters play{({|k|({|i|y=SinOsc;y.ar(i*k*k,y.ar(i*k**i/ [4,5])*Decay.kr(Dust.kr(1/4**i),y.ar(0.1)+1*k+i,k*999))}!8).product}! 16).sum}//#supercollider 04 Nathaniel Virgo b=Buffer.read(s,"sounds/a11wlk01.wav");play{t=Impulse.kr(5);PlayBuf.ar(1,b, 1,t,Demand.kr(t,0,Dseq(1e3*[103,41,162,15,141,52,124,190],4)))!2} ... ‣ Example: Wire 140 The SuperCollider Language
  • 24. ‣ 別のサンプル ‣ 数値を変化させてみよう! ‣ [12, 15] ‣ [3, 8] ‣ 1500 ‣ 1600 ‣ 0.02 The SuperCollider Language play({RLPF.ar(Dust.ar([12, 15]), LFNoise1.ar(1/[3, 8], 1500, 1600), 0.02)})
  • 25. ‣ このコードをわかりやすく分解すると下記のようになる ‣ The SuperCollider Language play({RLPF.ar(Dust.ar([12, 15]), LFNoise1.ar(1/[3, 8], 1500, 1600), 0.02)}) play( { RLPF.ar( Dust.ar( [12, 15] ), LFNoise1.ar( 1/[3, 8], 1500, 1600 ), 0.02 ) } )
  • 26. ‣ たくさんの括弧が存在する ‣ (parentheses) ‣ [brackets] ‣ {braces} ‣ "quotation" ‣ これらの括弧の役割を知ることがSuperCollider理解のコツ Enclosures
  • 27. ‣ ... - ダブルクォーテイション ‣ 「文字列」をあらわす ‣ ... - シングルクォーテイション ‣ 「シンボル」をあらわす ‣ aSymbol = aSymbol Enclosures
  • 28. ‣ ( ... ) - 小括弧 ‣ 関数の引数(argument)をあらわす ‣ その外、計算の順番を意味する場合も Enclosures message(arg1, arg2, arg3…) 5 + (10 * 4)
  • 29. ‣ [ ... ] - 大括弧 ‣ アイテムの集合をあらわす - 配列(Array)など ‣ Arrayには様々なデータを格納できる - numbers, texts, functions, all of patch ...etc. ‣ Arrayにメッセージを与えると、様々な操作が可能 ‣ reverse, scramble, mirror, rotate, midicps, choose, permute ...etc. Enclosures
  • 30. ‣ [ ... ] - 大括弧 ‣ 音楽に応用した例 Enclosures [0, 11, 10, 1, 9, 8, 2, 3, 7, 4, 6, 5].reverse 12 - [0, 11, 10, 1, 9, 8, 2, 3, 7, 4, 6, 5].reverse [0, 2, 4, 5, 6, 7, 9, 11].scramble [60, 62, 64, 67, 69].mirror [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].rotate [60, 62, 64, 65, 67, 69, 71].midicps.round(0.1) [1, 0.75, 0.5, 0.25, 0.125].choose 0.125 * [1, 2, 3, 4, 5, 6, 7, 8].choose [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].permute(6)
  • 31. ‣ [ ... ] - 大括弧 ‣ 大括弧は、複数のチャンネルを意味することがある Enclosures {Blip.ar(25, LFNoise0.kr(5, 12, 14), 0.3)}.play {Blip.ar(25, LFNoise0.kr([5, 10], 12, 14), 0.3)}.play {Blip.ar(25, LFNoise0.kr([5, 10, 2, 25], 12, 14), 0.3)}.play {Blip.ar(25, LFNoise0.kr([5, 4, 7, 9, 5, 1, 9, 2], 12, 14), 0.3)}.play
  • 32. ‣ { ... } - 中括弧 ‣ 「関数」をあらわす ‣ 下の2つのコードを比較してみる (dupはくりかえしのこと) ‣ 下の行は、以下の書き方と同じ意味になる Enclosures dup(rand(1000.0), 5) dup({rand(1000.0)}, 5) [rand(1000.0), rand(1000.0), rand(1000.0), rand(1000.0), rand(1000.0)]
  • 33. ‣ ネスティングの例 (構造が別の構造を取り囲むこと) ‣ 音響合成におけるネスティング Nesting exprand(1.0, 1000.0) dup({exprand(1.0, 1000.0)}, 100) sort(dup({exprand(1.0, 1000.0)}, 100)) round(sort(dup({exprand(1.0, 1000.0)}, 100)), 0.01) play( { CombN.ar( SinOsc.ar( midicps( LFNoise1.ar(3, 24, LFSaw.ar([5, 5.123], 0, 3, 80) ) ), 0, 0.4), 1, 0.3, 2) } )
  • 34. ‣ { ... } - 中括弧 ‣ 関数はメッセージを理解して動作する Enclosures {LFNoise0.ar}.play {LFNoise0.ar(10000)}.plot {LFNoise0.ar(10000)}.scope {100.rand}.dup(10) {100.rand} ! 10 {100.rand}.dup(10).postln.plot {100.rand}.dup(100).sort.plot
  • 35. ‣ Supercolliderのコードは、メッセージと引数から構成される ‣ e.g. ‣ メッセージはオブジェクト(レシーバ)とともに用いられること もある Messages and Arguments. message(arg1, arg2, arg3…) rand(100) exprand(1.0, 100.0) SinOsc.ar(arglist) Mix.fill(arglist)
  • 36. ‣ メッセージの例 Messages and Arguments. dup("echo", 20) round([3.141, 5.9265, 358.98], 0.01) sort([23, 54, 678, 1, 21, 91, 34, 78]) round(dup({exprand(1, 10)}, 100), 0.1) sort(round(dup({exprand(1, 10)}, 100), 0.1))
  • 37. Receiver and Message, UGens ‣ レシーバとメッセージ ‣ レシーバ ‣ メッセージを受けとるオブジェクト ‣ 大文字から始まる ‣ メッセージ ‣ オブジェクトに特定の操作を依頼する ‣ 引数をもつ場合もある Receiver.message(arglist)
  • 38. Receiver and Message, UGens ‣ Numbers, Functions, Arrays, Stringsなどはレシーバーになる ことができる [45, 13, 10, 498, 78].sort "echo".dup(20) 50.midicps 444.cpsmidi 100.rand {100.rand}.dup(50) [1.001, 45.827, 187.18].round(0.1) "I've just picked up a fault in the AE35 unit".speak
  • 39. Receiver and Message, UGens ‣ . (ピリオド) を接続していってネスト構造を実現 1000.0 1000.0.rand 1000.0.rand.round(0.01) 1000.0.rand.round(0.01).post {1000.0.rand.round(0.01).postln}.dup(100).plot {1000.0.rand.round(0.01).postln}.dup(100).postln.sort.plot 1000.0.rand.round(0.01).postln.asString.speak
  • 40. Receiver and Message, UGens ‣ 音響合成のためのレシーバ(オブジェクト)が多数存在 ‣ これらを総称して UGen (ユニットジェネレータ) と呼ぶ ‣ CombN, SinOsc, LFNoise1, LFSaw ...etc. ‣ Ugenは信号の計算に特化している ‣ これらがソフトウェア楽器を定義する際の基本パーツとなる ‣ Ugenで生成する信号には二つ ‣ オーディオ信号: Ugen.ar(...) ‣ コントロール信号: Ugen.kr(...) LFNoise1.kr(10,100)
  • 41. Receiver and Message, UGens ‣ SCのヘルプにはとても丁寧にUGenの解説とサンプルが掲載さ れている ‣ ヘルプメニューで Tour of Ugens でサーチしてみる ‣ UGenの機能を外観するツアーが用意されている
  • 42. Variables ‣ 変数: ‣ aからzのアルファベットは宣言なしに使用可能 ‣ 上のコードは下と同じ意味になる ‣ ( a = 440; b = 3; c = "math operations"; [c, a, b, a*b, a + b, a.pow(b), a.mod(b)] ) ["math operations", 440, 3, 440*3, 440 + 3, 440.pow(3), 440.mod(3)]
  • 43. Variables ‣ 変数の使用例 ‣ this code is same as below. ( { r = MouseX.kr(1/3, 10); SinOsc.ar(mul: Linen.kr(Impulse.kr(r), 0, 1, 1/r)) }.play )
  • 44. Variables ‣ もう少し複雑な例 ‣ this code is same as below. ( p = { r = Line.kr(1, 20, 60); t = Impulse.kr(r); e = Linen.kr(t, 0, 0.5, 1/r); f = TRand.kr(1, 10, t); Blip.ar(f*100, f, e) }.play )
  • 45. Variables ‣ さらに複雑な例 ‣ this code is same as below. ( { r = Impulse.kr(10); c = TRand.kr(100, 5000, r); m = TRand.kr(100, 5000, r); PMOsc.ar(c, m, 12)*0.3 }.play ) ( { var rate = 4, carrier, modRatio; carrier = LFNoise0.kr(rate) * 500 + 700; modRatio = MouseX.kr(1, 2.0); PMOsc.ar(carrier, carrier*modRatio, 12)*0.3 }.play )