Supercollider?

 

슈퍼콜라이더는 Java또는 C++ 같은 객체지향성 프로그래밍 언어입니다

 

SC 모든것은 객체로 이루어져있습니다

소리를 만들어주는 UGen부터 간단한 숫자까지 모두 SC 객체입니다

 

좀더 자세한 것은 다음 튜토리얼에서 이야기하겠습니다

 

 

 

슈퍼콜라이더는 누가 만들었나?

 

James McCartney 만들었고 1996년에 처음 릴리즈되었으며 지금까지 업데이트 되고 있습니다

 

 

 

슈퍼콜라이더로 할수 있는것?

 

소리합성, 작곡, 유저 인터페이스 구축(GUI), 플러그인 설계, 2D그래픽, (야매)3D그래픽,

OSC 통한 다른 어플리케이션과 소통(max, prossesing), 외부 기기와 연결 가능 많은 가능성이 있습니다

 

옛날에는 작곡을 한다는것이 악보에 음표를 그리는 행위였으며

화성법이나 대위법따위의 관습적인 규칙에 의해 있었지만

지금은 이것을 컴퓨터의 힘을 빌어 있게 되었습니다

이는 다양한 가능성을 열어줍니다

 

 

 

예를들어 짧은 하나의 소리를 만들어서 배치를 하는데

 

간격이 1초고 소리를 앞의 간격의 90% 하게되면

다음소리는 0.9초후 발생하게 되고

다음은 0.81, 0.729 ...

 

그렇게 간격이 점점 줄어서 최종적으로 간격이 0.01 이하로 들어오면

소리가 중지되게끔 수도 있습니다.

 

 

만약 이걸 악보에 그린다면 이것만큼 정확할 없을것입니다 

과거에 컴퓨터를 이용하지 않으면 불가능했었던 것들을 배치와 관련하여 가능하게 만들어 줍니다

 

 

 

또는 어떠한 전체적인 전체에 대한 구조를 프로그래밍 수도 있을것입니다

 

 

 

전체 곡을 3:2 나누고 그것을 다시 3:2 나누고 나누고....

(또는 황금분할을 쓴다던가)

 

그렇게되면 작은 시간의 영역들이 생기고

그것을 곡의 어떤 형식 부분으로 사용 되게 수도 있을것입니다.

 

 

 

쪼개게 되면 피치나 음색의 영역까지 들어오게 되고

여기까지 오면 단순히 소리의 위치가 형식이나 구조만 결정하는것이 아니라

소리합성의 영역까지 관련됩니다.

 

 

 

슈퍼콜라이더에서는 이러한 패턴에 관한 것들의 처리가 매우 유용하고

아주 복잡한 구조들을 쉽게 처리할 있게 해줍니다

 

그래서 슈퍼콜라이더에서는 이것을 주로 SynthDef 만들고

만들어진것을 패턴으로 운용하게 됩니다.

 

물론 내가만든 악기(SynthDef)소리에 파라메터를 줌으로써

실시간으로 피치나, 음색 소리를 변형할 수도 있습니다.

 

 

SC 음악을 만드는 경우 크게 2 파트로 나눌 있습니다

 

1) 소리를 만들고

2) 패턴으로 운용

 

Tape 경우는 이렇지만

Live퍼포먼스의 경우에는 조금 다를 수도 있습니다

 

경우에는 어느 시점에 어떤 SynthDef 작동시킬것인가가 중요합니다

 

슈퍼콜라이더로 곡을 만드는 방식은 정해져있다기보다 운영하기 나름으로

소리만 슈퍼콜라이더에서 만들고 다른 DAW툴에서 배치해 사용할 수도 있을 것입니다

 

 

 

서버와 언어

 

Status Bar 살펴보면  Interpreter Server라는 단어를 있습니다

처음 SC 구동하면 Interpreter 기본적으로 켜져있고 Server 꺼져있습니다

 

SC 구조는 크게 언어부분과 서버부분 둘로 나뉘어 있습니다

서버는 소리를 생성하고, 언어(클라이언트 또는 인터프리터) 서버를 제어하는데 사용됩니다

 

SC에서는 언어부분을 Sclang 에서, 서버부분을 Scsynth에서 처리합니다

, Sclang에서 프로그래밍을 하고 Scsynth 보내 최종적으로 소리를 만들어 내보내는 것입니다

 

이전 튜토리얼에서 작성한 "Hello World"

서버 사용 없이 언어 부분에서 모든것이 처리 되었지만

소리를 듣기 위해서는 서버가 작동하고 있는지 확인해야합니다

 

슈퍼콜라이더를 처음 실행한

창을 띄우기 위해

[cmd+n]  입력합니다.

 

소리를 듣기위해 서버를 부팅하면 OS 기본으로 설정되어있는 오디오 인터페이스에 자동으로 연결이 됩니다

 

서버를 부팅하는 가장 쉬운 방법은 단축키 cmd+b 이용하는것이고

Status Bar Server부분을 클릭해 나타나는 메뉴에서 Boot Server 클릭해도 됩니다


사인파 출력하기

 

 

 

슈퍼콜라이더에서 소리를 내려면 함수를 이용하면 됩니다

함수는 슈퍼콜라이더에서 {} 묶고 안에 내용물을 쓰면 그것이 함수의 인스턴스가 됩니다

안에 파형을 만드려면 오실레이터가 필요합니다

 

파형을 처음 생산해내는 기능을 오실레이터라 하고

SC에서는 소리를 만들거나 변형시켜주는 클레스들을 UGen이라고 부릅니다

 

이러한 소리를 만들내는 함수를 부르는 말이 프로그램마다 조금씩 다른데

Csound에서는 이를 옵코드라 부르고 MAX/MSP에서는 오브젝트라 부릅니다

모두 소리와 관련된 함수를 의미합니다.

 

사인파를 만들어주는 UGen SinOsc입니다

{SinOsc.ar}

 

SinOsc 클레스명이고

ar kr 같은것이 클레스 메쏘드입니다

{Class.Class Methods()}

 

 

 

모든 메쏘드 옆에는 ()안에 값들을 아규멘트의 형태로 넣을 있는데

SinOsc 클레스메쏘드 안에 어떤 아규멘트를 필요로 하는지 알아보려면

SinOsc Help파일을 보면 됩니다.

 

클레스명에서 [cmd+d] 누르면 있습니다

 

여기서는 4개의 arg 넣을 있게 되어있습니다

 

 

 

아래 식을 소리로 만들어봅시다

 

 

 

x(t)=0.3sin(2π100t+π/4)+0.5



(

a = {SinOsc.ar(100, pi/4, 0.3, 0.5 )};

a.plot;

)

 

소리를 들으려면 play 붙혀줘야

그래프를 보려면 plot 붙혀줘야 .

 

여기서의 play plot {} 인스턴스 메소드 입니다.

 

 

 

SC에서 실행되고 있는 모든 소리를 멈추려면 OSX [cmd+.], Win [ctrl+.] 누르면 됩니다.

 

 

 

아래 식을 소리로 만들어봅시다

 

x(t)=0.7cos(2π1000t-π/2)


(

b = {SinOsc.ar(1000, 0, 0.7)};

b.play;

b.plot;

)

 

다음장에서 메시지와 아규멘트에 대해 자세하게 알아봅니다.

 

 

 

*최종 출력 볼륨을 제어하려면 Status Bar Server부분을 클릭해 변경하거나

s.volume.gui; 입력해 그래픽 슬라이더를 불러와 제어할 있습니다



Posted by Elec-Kiwi
,