SuperCollider에서 140characters Project를 했죠. 정말 재미있고 공부가 많이 되는 소스들이 바로 저기 링크에 있습니다!
http://pipes.yahoo.com/pipes/pipe.info?_id=7aaebaf85a767b15c1143e602c4c2a5b
SuperCollider에서 140characters Project를 했죠. 정말 재미있고 공부가 많이 되는 소스들이 바로 저기 링크에 있습니다!
http://pipes.yahoo.com/pipes/pipe.info?_id=7aaebaf85a767b15c1143e602c4c2a5b
( ).play; // the default noteEvents 와 SynthDefs
( freq: 500, pan: -1) .play; // 500 Hz, panned left
( degree: (0..12)).play // a whole tone cluster
SynthDef(“pm”, { | out=0, freq=440, amp=0.1, pan=0, gate=1, ratio = 1, index = 1, ar = 0.1, dr = 0.1 |
var z;
z = LPF.ar(
PMOsc.ar(freq, freq * ratio, Linen.kr(gate, ar,index, dr), 0, 0.3),
XLine.kr(Rand(4000,5000), Rand(2500,3200), 1)
) * Linen.kr(gate, 0.01, 0.7, dr, 2);
OffsetOut.ar(out, Pan2.ar(z, pan, amp));
}).store;
(instrument: “pm”).play;
(instrument: “pm”, ratio: 3.42, index: 12, freq: 150, ar: 8, dr: 3, sustain: 10).play;
(
p = Pbind(*[
stepsPerOctave: Pstep(Pseq((2..12).mirror, inf),12), // 3 – 12 tone e.t. scales
note: Pseq((0..12).mirror, inf),
ctranspose: Pwhite(-0.2, 0.2), // detune up to +-20 cents
detune: Pwhite(-1.0, 1.0), // detune up to 1 Hz
sustain: Prand([0.2, 0.2, 0.2, 4], inf), // notes last 0.2 or 4 seconds
dur: Prand([0.2, 0.2, 0.2, 0.2, 0.2, 0.8], inf), // 1 in 6 chance note lasts 0.8 seconds
db: Pstep( // 4 beat accent structure
Pseq([-15, -25, -20, -25], inf),
0.8
)
]);
p.play
)
currentEnvironment.at(keyName)또는 ~keyName
currentEnvironment.put(keyNamem value)이는 다음과 같습니다.
~keyName = value여기서 ~keyName은 물론 저장된 키의 값, 위의 예제로 볼것같으면 ~sustain, 또는 ~dur등등이 되겠지요.
play {위에 예제를 설명하자면 ~play에 저장되어 있는 값이 없다면 defaultParentEvent를 재생하라는 뜻입니다.
if (parent.isNil) { parent = defaultParentEvent };
this.use { ~play.value };
}
그렇다면 send와 send(s)의 차이는 무엇일까요?
그것은 send(s)는 하나의 서버로, 그리고 send는 활성화 되고있는 모든 서버로 synthDef를보내게 된다는 것입니다.
참고하세요~