1. 개요
SuperCollider(SC, 슈퍼콜라이더)는 실시간 오디오 합성 및 알고리즘 작곡을 위한 소프트웨어 환경이다.SC는 1996년 James McCartney가 매킨토시 플랫폼으로 개발했으며 2.0 버전은 맥 OS 9 전용으로 설계되었다.
3.0은 처음에는 MacOSX전용으로 개발되었지만 오픈소스 프로젝트로 변경된 이후 여러 개발자들에 의해 윈도우 및 리눅스로 포팅되었다.
다른 플렛폼의 SC초기 버전들은 OSX에 비해 비 직관적인 사용자 인터페이스를 포함하여 많은 기능들이 제대로 지원되지 않았으나
새로운 Help 시스템과 (3.5부터) 새로운 IDE(3.6부터)시스템의 도입으로 많은 격차가 해소되었으며 3.6 이후로는 세가지 플렛폼 모두에서 거의 동일하게 작동한다.
SC는 실시간 소리합성에 최적화되어있으므로 라이브 퍼포먼스 뿐만 아니라 상호작용 가능한 각종 인스톨레이션에 사용하기에 이상적이다. 비 실시간 소리합성도 가능하지만 상대적으로 많이 사용되지는 않는다.
1.1. 설치
공식 SC 웹사이트SC사용에 필요한 모든것을 제공하며 학습 예제와 코드 예제를 제공한다.
또는 다음 다운로드 페이지에서 직접 내려받을 수 있다.
각종 플렛폼에서 바로 사용할 수 있게 사전에 컴파일된 바이너리 파일을 제공하므로 쉽게 설치가 가능하다.
SC번들 외에도 플러그인이나 Quark 형태의 여러 타사 확장도 제공한다.
2. 아키텍처
SC는 세 부분으로 구성되어 있다: 소리합성을 담당하는 서버인 scsynth와 메시지를 주고받기 위한 클라이언트 sclang, 그리고 IDE.SC는 프로그래밍 언어로 "객체 지향"언어에 속한다.
SC코드를 작동시키면 인터프리터에 의해 해석되어 서버측에 전달된다.
3. 문법
3.1. 괄호
한 덩어리의 코드 블럭은 대괄호()를 구분 기호로 사용한다.SC IDE에서 괄호 사이 어딘가에 커서를 두고 평가하면 해당 블록 전체가 평가된다.
3.2. 표현식
SC의 표현식은 세미콜론;으로 완성된다.인터프리터는 ;까지 코드를 수집하고 표현식의 결과를 분석한다.
만일 평가할 코드가 한 줄로 구성되었다면 ; 생략이 가능하다.
3.3. 주석
주석은 인터프리터가 무시하는 코드블록으로 SC에는 두 유형의 주석 작성이 가능하다.- //는 한줄 주석
2. /* ... */ 여러 라인의 주석
3.4. 문자열
문자열은 큰따옴표""로 묶인 문자들이다.3.5. 변수
변수는 자리 표시자로 어떤것을 저장할때마다 변수에 할당된다.SC의 변수 이름은 영문 소문자로 시작해야하며 대문자와 숫자를 포함할 수 있다.
변수 선언 앞에는 예약어 var이 있어야 하며 변수 선언과 동시에 변수에 값을 할당할 수 있다.
3.6. 심볼
심볼은 고유한 객체를 나타내는 이름으로 작은 따옴표''를 사용하거나 문자열에 공백이 없는 경우 앞에 \를 붙혀도 된다.3.7. 오류
SC IDE의 포스트 창 참조.3.8. 함수
value 메시를 수신할때 응답하는 연산을 정의한 표현식으로 중괄호{}로 묶어 정의한다.중괄호는 객체를 감싸는 일종의 껍질이며 내용은 호출시 평가되는 표현식들의 집합이다.
3.9. 클래스, 메소드, 키워드
SC의 모든 클래스는 대문자로 시작되는 문자로 표시된다.클래스는 기본적으로 사용 가능한 여러개의 메소드를 포함하는데
메소드는 기본적으로 특정 클래스에 대해 정의되어있는 함수로 생각할 수 있다.
#!syntax java
Class.method
SC는 메소드에 인수가 필요한 경우 기본값을 제공한다.
여기서 원하는 인수만을 선택하기 위해 키워드를 사용할 수 있다.
3.10. 제어구조
if, while, for 등이 사용 가능함Control structures 도움말 참조.
4. UGens
SC는 많은 클래스들을 제공한다.대문자로 시작하는 모든 것들은 클래스를 나타낸다.
자세한 내용은 UGen 문서 참고하십시오.