블로그
[SuperCollider] 01.슈퍼콜라이더 기본구조 본문
기본구조
supercollider에서는 대표적으로 3개의 창이 존재한다.

Help browser : 슈퍼콜라이더에 대한 가이드와 각 용어들의 정리, 그리고 텍스트 창에서 선택하여 찾고 싶은 키워드 등을 검색하면 Help browser에서 볼 수 있다. 참고로 텍스트 창에서 단어 위에 커서를 대고 ctrl + D를 누르면 단어의 정의를 찾을 수 있다.
Post window : 에러메세지와 서버 연결, 프로그램이 실행되는 결과 등이 출력되는 창이다.
Text window : 텍스트 편집기이다. 여기서 소리와 값들을 제어하며 서버 등을 제어할 수 있다.
이외에도 크게 분리하면 서버(Scsynth) 와 언어(Sclang)으로 분리될 수 있는데 이번 글에서는 언어 부분만 설명하였다.
사운드 재생하기
슈퍼콜라이더에서 사인 파형을 만드는 방법은 간단하다.
{SinOsc.ar(440)}.play;
코드를 보면 SinOsc라는 함수가 중괄호에 포함되어있다. SinOsc는 사인파를 생성하는 클래스이며 UGen 이라는 슈퍼클래스에 포함되어 있다. UGen은 오디오 및 제어 신호를 생성하거나 처리하는 데 사용되며 많은 서브클래스들로 나뉘어있다.
뒤에 붙은. ar 함수는 앞서 생성된 신호를 읽는 부분으로, 이전에 위치한 Synth 노드를 오디오 신호로 접근시키는 것으로 쉽게 말해 소리를 재생시켜주는 함수이다. 매개변수로는 주파수, 위상, 진폭 등을 설정할 수 있으며 앞선 코드에서는 440Hz로 설정하였다.
이외에도. kr이라는 함수도 존재하는데 kr은 제어를 위한 함수로 소리를 만들기 위한 것이 아닌 소리를 제어하는 목적을 가진 함수로 연속적으로 값을 얻어서 재생시키는 ar과 달리 현재 값만 출력한다. 따라서 정적인 신호를 보내는 함수로 제어 값에 용이하다고 말할 수 있다.
이러한 함수가 중괄호에 포함되어 있는데 슈퍼콜라이더에서 UGen을 실행시키기 위해서는 중괄호로 둘러싸여야 하기 때문이다. 단순한 값의 계산에서는 필요가 없지만 신호 전송을 목적으로 한다면 중괄호를 꼭 사용하자.
마지막으로. play는 개체들에 따라서 다양한 방식으로 반응하지만 간단한 의미로는 프로세스를 실행하라는 의미이다.
변수 지정
슈퍼콜라이더에서는 변수에 신호를 저장하여 실행할 수도 있다.
z = {SinOsc.ar(440)}.play;
z.free;
z는 전역 변수로 슈퍼콜라이더 내에서는 모든 소문자 알파벳이 전역변수로 지정되어 있다. 따라서 따로 변수 선언을 하지 않아도 된다. z.free를 통하여 z에 있는 신호를 멈출 수 있으며 많은 신호를 하나씩 제어할 때 자주 쓰일 것 같다.
'Supercollider' 카테고리의 다른 글
| [SuperCollider] 05.반복자 (0) | 2022.01.26 |
|---|---|
| [SuperCollider] 04.MultChannel (0) | 2022.01.25 |
| [SuperCollider] 03.Envelope (0) | 2022.01.25 |
| [supercollider] Day3 - Envelope 예제 (0) | 2022.01.24 |