language나 다른 application으로부터 commands(OSC)를 받는 synthesis engine
synth server 와 its clients는 아마 같은 machine내에 있거나 network를 사이에 두고 있다.
synthesis definitions (SynthDef) 는 서버에 올려질수 있는것.
서버는 MIDI를 send/receive하는것이 아니고 client가 control messages를 서버에 보내는 것이다.
Server는 nodes (a network)의 tree를 사용하며 그 tree 들은 synths이거나 groups이다.
-Synth : a collection of Unit Generators that run together
-Group : a collection of nodes represented as a linked list
(each node points to the next one).
새로운 node는 시작의 head에 더해지거나 list끝에 써진다.
SynthDefs를 실행하기위한 명령은 중요하다. (예를들어 reverb unit에 들어가기 위한 signal이라면 반드시 reverb processing 이전에 만들어 져야 한다.). 이 명령은 nodes (head or tail)의 명령과 함께 결정된다.
Audio 또한 SynthDef로 부터 또 다른곳으로, Audio Buffers (an array of 128 channels)와 같은 Audio output device 불려질수 있다.
Control information 또한 control buses (an array of 4096 buses)와 함께 전달된다.
{SinOsc.ar(440,mul: 0.1)}.play(s); // play and scope produce a synth definition
Synth(“temp__1966342724” : 1001) // name and node of a synth definition (in post window)
이 구문은 다음의 evaluating 에 의해 응답된다.:
Synth(“temp__1966342724”)
**letters a – z 는 ‘global’ variables로 정의되서 결과를 저장시킬수 있다.
a = {SinOsc.ar(440,mul: 0.1)}.play(s);
b = {SinOsc.ar(660,mul: 0.1)}.play(s);
c = {SinOsc.ar(740,mul: 0.1)}.play(s);
a.free;
b.free;
c.free;
//——————————————
http://csound.x-y.net
Ji Youn Kang,
Csound Max Community