SlideShare a Scribd company logo
1 of 41
//
s.boot;

//
{SinOsc.ar(440)}.play;

//             ...
{ 	 	 	 //
   	
	 SinOsc	 //Sin
	 .ar	 	 //
	 (440) 	 //      440Hz
} 	 	 	 //
   	
.play;	 	 //
//
//
{ }
//1.           2.
( )
//1.       (            ) 2.
[ ]

//
((1+2)*3).value;
{ (1+2)*3 }.value;
{ [1, 2, 3].size }.value;
{ [1, 2, 3].wrapAt(1) }.value;
{ var a=1, b=2; (a+b)*3 }.value;

//     (       ) arg:
f = {	arg a, b; (a+b)*3 };
f.value(1, 2).postln;
f.value(3, 4).postln;
//         1
{
	 SinOsc.ar(440, 0, 0.2);
}.play;

//          2
//
{
	 var a1, a2;
	 a1 = SinOsc.ar(440, 0, 0.2);
	 a2 = SinOsc.ar(660, 0, 0.2);
	 a1 + a2;
}.play;
//   Sin
{
	 var freq=440, detune=1, a1, a2;
	 a1 = SinOsc.ar(freq, 0, 0.2);
	 a2 = SinOsc.ar(freq + detune, 0, 0.2);
	 [a1, a2];
}.play;

//
{
	 var freq=440, detune=1, a1, a2;
	 a1 = SinOsc.ar([freq, freq+detune], 0, 0.2);
	 freq = freq * 1.5;
	 a2 = SinOsc.ar([freq, freq+detune], 0, 0.2);
	 a1+a2;
}.play;
//                                           !!
//        …
//SynthDef →            !!!
SynthDef("           ", {              }).send(        );


//             Sin          SynthDef
SynthDef("unari", {
	 arg freq=440, detune=1, amp=0.2;
	 var a1, a2;
	 a1 = SinOsc.ar([freq, freq+detune], 0, amp);
	 freq = freq * 1.5;
	 a2 = SinOsc.ar([freq, freq+detune], 0, amp);
	 //               Out.ar(      ,        );
	 Out.ar(0, a1+a2);
}).send(s);
//
s.sendMsg("/s_new", "unari", x = s.nextNodeID, 0, 1);
//   (arg)
s.sendMsg("/n_set", x, "freq", 110);
s.sendMsg("/n_set", x, "freq", 80);
//
s.sendMsg("/n_free", x);

//        OSC!!!
// OSC
s.dumpOSC(1);
// OSC
s.dumpOSC(0);
//
SynthDef("unari", {
	 arg freq=440, detune=1, amp=0.2;
	 var a1, a2;
	 a1 = SinOsc.ar([freq, freq+detune], 0, amp);
	 freq = freq * 1.5;
	 a2 = SinOsc.ar([freq, freq+detune], 0, amp);
	 //               Out.ar(      ,        );
	 Out.ar(0, a1+a2);
}).send(s);
//
SynthDef("unari", {
	 arg freq=440, detune=1, amp=0.2;
	 var a1, a2;
	 a1 = SinOsc.ar([freq, freq+detune], 0, amp);
	 freq = freq * 1.5;
	 a2 = SinOsc.ar([freq, freq+detune], 0, amp);
	 //               Out.ar(      ,        );
	 Out.ar(0, a1+a2);
}).send(s);
// "/s_start"
o = OSCresponderNode(nil, '/s_start', {
	 s.sendMsg("/s_new", "unari", x = s.nextNodeID, 0, 1);
}).add;

// "/s_stop"
p = OSCresponderNode(nil, '/s_stop', {
	 	     s.sendMsg("n_free", x);
}).add;
//   /tr/osc 1             /tr/osc 0
(
q = OSCresponderNode(nil, '/tr/osc', {
	   arg time,responder,msg;
	   if(msg[1] == 1,
	   {s.sendMsg("/s_new", "unari", x = s.nextNodeID, 0, 1)},
	   { s.sendMsg("n_free", x)}
	   );
}).add;

// SynthDef             Responder
//
r = OSCresponderNode(nil, '/set/osc', {
	   arg time,responder,msg;
	   s.sendMsg("/n_set", x, "freq", msg[1]);
	   }).add;
)
// FM
(
SynthDef("fm", {
	 arg bus = 0, freq = 110,
	 carPartial = 0.5, modPartial = 0.5,
	 detune=2.0, index = 3, mul = 0.2, ts = 1;

	 var mod;
	 var car;
	
	 mod = SinOsc.ar(freq* modPartial, 0,
freq*index*LFNoise1.kr(5.reciprocal).abs);
	 car = SinOsc.ar([(freq*carPartial)+mod,(freq+detune*carPartial)+mod] ,
0, mul);
	 car = FreeVerb.ar(car, 0.5, 0.8, 0.2, 1.0);
	 Out.ar(bus, car);
}).load(s);
//       ON/OFF
t = OSCresponderNode(nil, '/tr/fm', {
	 arg time,responder,msg;
	 if(msg[1] == 1,
	 	 { s.sendMsg("/s_new", "fm", x = s.nextNodeID, 0, 1)},
	 	 { s.sendMsg("n_free", x)}
	 	 );
}).add;
 	
// SynthDef             Responder
//
u = OSCresponderNode(nil, '/set/fm', {
	 arg time,responder,msg;
	 s.sendMsg("/n_set", x, "carPartial", msg[1], "modPartial", msg[2],
"index", msg[3]);
}).add;

More Related Content

What's hot

processoperatorcertificate
processoperatorcertificateprocessoperatorcertificate
processoperatorcertificate
Scott Smith
 
Img 20190402 0002
Img 20190402 0002Img 20190402 0002
Img 20190402 0002
gkaur2018
 
生成的な形態をつくる - SFC「複雑性の数理」ゲストレクチャー
生成的な形態をつくる - SFC「複雑性の数理」ゲストレクチャー生成的な形態をつくる - SFC「複雑性の数理」ゲストレクチャー
生成的な形態をつくる - SFC「複雑性の数理」ゲストレクチャー
Atsushi Tadokoro
 

What's hot (19)

processoperatorcertificate
processoperatorcertificateprocessoperatorcertificate
processoperatorcertificate
 
Solucion n°03
Solucion n°03Solucion n°03
Solucion n°03
 
Solucionario2
Solucionario2Solucionario2
Solucionario2
 
Solucion 9 t
Solucion 9 tSolucion 9 t
Solucion 9 t
 
bil. kompleks
bil. kompleks bil. kompleks
bil. kompleks
 
The Flavor of TypeScript
The Flavor of TypeScriptThe Flavor of TypeScript
The Flavor of TypeScript
 
Coordenadas fiduciales corregidas por método afín y corrección por distorsión
Coordenadas fiduciales corregidas por método afín y corrección por distorsiónCoordenadas fiduciales corregidas por método afín y corrección por distorsión
Coordenadas fiduciales corregidas por método afín y corrección por distorsión
 
Clustering with Node.js
Clustering with Node.jsClustering with Node.js
Clustering with Node.js
 
Img 20190402 0002
Img 20190402 0002Img 20190402 0002
Img 20190402 0002
 
MATLAB: Output Voltage of Series RC Circuit utilizing Euler Approximations
MATLAB: Output Voltage of Series RC Circuit utilizing Euler Approximations MATLAB: Output Voltage of Series RC Circuit utilizing Euler Approximations
MATLAB: Output Voltage of Series RC Circuit utilizing Euler Approximations
 
Sol pau calculo diferencial
Sol pau calculo diferencialSol pau calculo diferencial
Sol pau calculo diferencial
 
Solucion 14 t
Solucion 14 tSolucion 14 t
Solucion 14 t
 
Solucion 10 t
Solucion 10 tSolucion 10 t
Solucion 10 t
 
Matematika dopunski
Matematika dopunskiMatematika dopunski
Matematika dopunski
 
Nodejs party-socket demo
Nodejs party-socket demoNodejs party-socket demo
Nodejs party-socket demo
 
Sbaw090526
Sbaw090526Sbaw090526
Sbaw090526
 
生成的な形態をつくる - SFC「複雑性の数理」ゲストレクチャー
生成的な形態をつくる - SFC「複雑性の数理」ゲストレクチャー生成的な形態をつくる - SFC「複雑性の数理」ゲストレクチャー
生成的な形態をつくる - SFC「複雑性の数理」ゲストレクチャー
 
Solucion7 trig
Solucion7 trigSolucion7 trig
Solucion7 trig
 
fungsi bilangan
fungsi bilanganfungsi bilangan
fungsi bilangan
 

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の連携 -2
Atsushi Tadokoro
 
coma Creators session vol.2
coma Creators session vol.2coma Creators session vol.2
coma Creators session vol.2
Atsushi Tadokoro
 
Interactive Music II ProcessingとSuperColliderの連携1
Interactive Music II ProcessingとSuperColliderの連携1Interactive Music II ProcessingとSuperColliderの連携1
Interactive Music II ProcessingとSuperColliderの連携1
Atsushi 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
 
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス
Media Art II openFrameworks  アプリ間の通信とタンジブルなインターフェイス Media Art II openFrameworks  アプリ間の通信とタンジブルなインターフェイス
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス
Atsushi Tadokoro
 
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
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
 
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
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
 
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
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
 
Media Art II openFrameworks 複数のシーンの管理・切替え
Media Art II openFrameworks 複数のシーンの管理・切替えMedia Art II openFrameworks 複数のシーンの管理・切替え
Media Art II openFrameworks 複数のシーンの管理・切替え
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とSuperColliderの連携1
Interactive Music II ProcessingとSuperColliderの連携1Interactive Music II ProcessingとSuperColliderの連携1
Interactive Music II ProcessingとSuperColliderの連携1
 
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の連携
 
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス
Media Art II openFrameworks  アプリ間の通信とタンジブルなインターフェイス Media Art II openFrameworks  アプリ間の通信とタンジブルなインターフェイス
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス
 
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
 
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フレームワークを使う
 
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
 
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プログラミング
 
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
 
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画するiTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
 
Media Art II openFrameworks 複数のシーンの管理・切替え
Media Art II openFrameworks 複数のシーンの管理・切替えMedia Art II openFrameworks 複数のシーンの管理・切替え
Media Art II openFrameworks 複数のシーンの管理・切替え
 

Sbaw090929

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25. // s.boot; // {SinOsc.ar(440)}.play; // ... { // SinOsc //Sin .ar // (440) // 440Hz } // .play; //
  • 26. // // { } //1. 2. ( ) //1. ( ) 2. [ ] // ((1+2)*3).value; { (1+2)*3 }.value; { [1, 2, 3].size }.value; { [1, 2, 3].wrapAt(1) }.value; { var a=1, b=2; (a+b)*3 }.value; // ( ) arg: f = { arg a, b; (a+b)*3 }; f.value(1, 2).postln; f.value(3, 4).postln;
  • 27. // 1 { SinOsc.ar(440, 0, 0.2); }.play; // 2 // { var a1, a2; a1 = SinOsc.ar(440, 0, 0.2); a2 = SinOsc.ar(660, 0, 0.2); a1 + a2; }.play;
  • 28. // Sin { var freq=440, detune=1, a1, a2; a1 = SinOsc.ar(freq, 0, 0.2); a2 = SinOsc.ar(freq + detune, 0, 0.2); [a1, a2]; }.play; // { var freq=440, detune=1, a1, a2; a1 = SinOsc.ar([freq, freq+detune], 0, 0.2); freq = freq * 1.5; a2 = SinOsc.ar([freq, freq+detune], 0, 0.2); a1+a2; }.play;
  • 29. // !! // … //SynthDef → !!! SynthDef(" ", { }).send( ); // Sin SynthDef SynthDef("unari", { arg freq=440, detune=1, amp=0.2; var a1, a2; a1 = SinOsc.ar([freq, freq+detune], 0, amp); freq = freq * 1.5; a2 = SinOsc.ar([freq, freq+detune], 0, amp); // Out.ar( , ); Out.ar(0, a1+a2); }).send(s);
  • 30. // s.sendMsg("/s_new", "unari", x = s.nextNodeID, 0, 1); // (arg) s.sendMsg("/n_set", x, "freq", 110); s.sendMsg("/n_set", x, "freq", 80); // s.sendMsg("/n_free", x); // OSC!!! // OSC s.dumpOSC(1); // OSC s.dumpOSC(0);
  • 31.
  • 32. // SynthDef("unari", { arg freq=440, detune=1, amp=0.2; var a1, a2; a1 = SinOsc.ar([freq, freq+detune], 0, amp); freq = freq * 1.5; a2 = SinOsc.ar([freq, freq+detune], 0, amp); // Out.ar( , ); Out.ar(0, a1+a2); }).send(s);
  • 33.
  • 34.
  • 35. // SynthDef("unari", { arg freq=440, detune=1, amp=0.2; var a1, a2; a1 = SinOsc.ar([freq, freq+detune], 0, amp); freq = freq * 1.5; a2 = SinOsc.ar([freq, freq+detune], 0, amp); // Out.ar( , ); Out.ar(0, a1+a2); }).send(s);
  • 36. // "/s_start" o = OSCresponderNode(nil, '/s_start', { s.sendMsg("/s_new", "unari", x = s.nextNodeID, 0, 1); }).add; // "/s_stop" p = OSCresponderNode(nil, '/s_stop', { s.sendMsg("n_free", x); }).add;
  • 37.
  • 38. // /tr/osc 1 /tr/osc 0 ( q = OSCresponderNode(nil, '/tr/osc', { arg time,responder,msg; if(msg[1] == 1, {s.sendMsg("/s_new", "unari", x = s.nextNodeID, 0, 1)}, { s.sendMsg("n_free", x)} ); }).add; // SynthDef Responder // r = OSCresponderNode(nil, '/set/osc', { arg time,responder,msg; s.sendMsg("/n_set", x, "freq", msg[1]); }).add; )
  • 39.
  • 40. // FM ( SynthDef("fm", { arg bus = 0, freq = 110, carPartial = 0.5, modPartial = 0.5, detune=2.0, index = 3, mul = 0.2, ts = 1; var mod; var car; mod = SinOsc.ar(freq* modPartial, 0, freq*index*LFNoise1.kr(5.reciprocal).abs); car = SinOsc.ar([(freq*carPartial)+mod,(freq+detune*carPartial)+mod] , 0, mul); car = FreeVerb.ar(car, 0.5, 0.8, 0.2, 1.0); Out.ar(bus, car); }).load(s);
  • 41. // ON/OFF t = OSCresponderNode(nil, '/tr/fm', { arg time,responder,msg; if(msg[1] == 1, { s.sendMsg("/s_new", "fm", x = s.nextNodeID, 0, 1)}, { s.sendMsg("n_free", x)} ); }).add; // SynthDef Responder // u = OSCresponderNode(nil, '/set/fm', { arg time,responder,msg; s.sendMsg("/n_set", x, "carPartial", msg[1], "modPartial", msg[2], "index", msg[3]); }).add;