ChucK 는 실시간 사운드 합성 및 음악 제작을 위한 프로그래밍 언어입니다. 오픈 소스이며 macOS, Windows 및 Linux에서 무료로 사용할 수 있습니다. ChucK는 동적 제어 속도와 즉시 코드를 추가 및 수정할 수 있는 기능을 갖춘 정확하고 표현력이 풍부한(우리는 이를 강력한 타이밍 이라고 함) 고유한 시간 기반 동시 프로그래밍 모델을 제시합니다. 또한 ChucK는 MIDI, OpenSoundControl, HID 장치 및 다중 채널 오디오를 지원합니다. 재미있고 배우기 쉬우며 작곡가, 연구원, 연주자에게 복잡한 오디오 합성/분석 프로그램과 실시간 대화형 음악을 구축하고 실험할 수 있는 강력한 프로그래밍 도구를 제공합니다.
척에 오신 것을 환영합니다!
ChucK를 다운로드하고 설치하려면 공식 ChucK 릴리스 페이지를 방문하세요.
문서, 예제, 연구 간행물, 커뮤니티 리소스를 포함한 자세한 내용을 보려면 ChucK 홈페이지 나 Princeton 미러 를 방문하세요.
brew install chuck
소스에서 최신 ChucK를 빌드하려면 GitHub에서 chuck
저장소를 복제하세요.
git clone https://github.com/ccrma/chuck.git
chuck/src
디렉토리로 이동하여 make
실행하십시오.
cd chuck/src
make mac
또는 범용 바이너리(intel + apple Silicon)를 구축하려면:
make mac-ub
이것은 chuck/src
에 chuck
실행 파일을 빌드해야 합니다.
종속성: gcc, g++, make, bison, flex, libsndfile, ALSA(linux-alsa 빌드용), PulseAudio(linux-pulse 빌드용), JACK(linux-jack 빌드용)
Debian 또는 Ubuntu에서 Chuck 에 대한 빌드 환경을 설정하려면 다음을 수행하세요.
sudo apt install build-essential bison flex libsndfile1-dev
libasound2-dev libpulse-dev libjack-jackd2-dev
다른 Linux 배포판의 경우 패키지 설치 도구와 패키지 이름이 약간 다를 수 있지만 설정은 유사해야 합니다. ( 참고: JACK 또는 PulseAudio가 필요하지 않은 설정에서는 이러한 패키지 중 하나 또는 둘 다를 생략할 수 있습니다. Linux에서 MIDI를 지원하려면 ALSA가 필요합니다. )
척 (지원되는 모든 드라이버: ALSA, PulseAudio, JACK 포함)을 빌드하려면 chuck/src
디렉터리로 이동하여 make
실행하세요.
cd chuck/src
make linux-all
참고로 make linux-all
.
make linux-alsa linux-pulse linux-jack
ALSA, PulseAudio 또는 JACK의 하위 집합에 대한 척을 빌드하려면 원하는 드라이버로 make
실행하세요. 예를 들어 ALSA 및 PulseAudio 전용으로 빌드하려면 다음을 수행하세요.
make linux-alsa linux-pulse
또는 ALSA 전용으로 빌드하려면 다음을 수행하세요.
make linux-alsa
이 프로세스는 chuck/src
에 chuck
실행 파일을 빌드해야 합니다.
Visual Studio(2019 이상 권장)를 사용하여 chuck을 빌드하려면 chucksrcvisual-studio
로 이동하여 chuck.sln
열고 빌드하세요.
ChucK를 WebAssembly(WASM)로 컴파일하려면:
emsdk
디렉터리에서): source ./emsdk_env.sh
chuck/src/
디렉토리로 이동하여 make web
실행하십시오. cd chuck/src
make web
chuck/src/host-web/webchuck/js
디렉토리에 webchuck.wasm
및 webchuck.js
생성되어야 합니다. (참조: WebChucK)
다음은 ChucK 팀이 관리하는 소스 저장소입니다. 개발자가 원했어요!
척 | 핵심 언어, 가상 머신 및 합성 엔진
추긴스 | 플러그인으로 척을 확장하세요! 기여를 시작하기 좋은 곳
미니오디클 | 척용 IDE
웹척 | 웹 브라우저에서 실행되는 척(데스크탑과 휴대폰에서 작동합니다!)
웹척 IDE | Chuck용 브라우저 기반 IDE
츄니티 | Unity의 척
춘레알 | 언리얼 엔진의 Chuck(신규!)
처글 | Chuck 그래픽 라이브러리(새로운 기능!)
ChucK 코어 (컴파일러, 가상 머신, 합성 엔진)를 다른 C++ 소프트웨어 호스트 내의 구성 요소/라이브러리로 통합할 수 있습니다. 이는 소프트웨어 시스템에 ChucK 기능을 추가하거나 새 플러그인을 생성하는 데 유용할 수 있습니다. 이전 섹션에 나열된 다양한 도구는 모두 이 코어/호스트 모델에 ChucK를 통합합니다. 명령줄, miniAudicle, Unity, Unreal Engine, WebAssembly를 포함합니다. 또한 ChucK는 오픈프레임웍스, iOS/Android 앱, 임베디드 시스템 및 하이브리드 언어 시스템(예: FaucK(FAUST + ChucK), ChucKDesigner(ChucK in TouchDesigner), chuck~(ChucK in Pure Data), chuck~( Max/MSP의 척).
이러한 통합이 어떻게 수행될 수 있는지 보여주기 위해 우리는 C++로 ChucK를 C++ 호스트에 통합하는 방법을 보여주는 일련의 예제를 만들었습니다. 이러한 예제 중 가장 간단한 example-1-minimal.cpp는 약 20줄의 코드로 C++에서 최소 ChucK 호스트를 생성합니다. 후속 예제에서는 실시간 오디오 추가, ChucK 전역을 사용한 C++/ChucK 통신 및 C++의 ChucK 파쇄 제어를 각각 보여줍니다. 이러한 호스트 예제는 이 저장소의 src/host-examples/ 폴더에서 찾을 수 있습니다. 보다 고급 사용법을 알아보려면 위의 이전 섹션에 나열된 ChucK 생태계의 다양한 도구를 확인하세요. 이러한 호스트 예제 구축을 시작하려면 다음을 수행하세요.
cd src/host-examples
make
호스트나 플랫폼별 실시간 오디오 I/O 없이 ChucK 코어 (컴파일러, 가상 머신 및 합성 엔진) 만 구축하는 것도 가능합니다. 이는 이미 오디오 I/O가 있는 기존 호스트 시스템에 ChucK 코어를 통합하는 데 유용한 시작점이 될 수 있습니다. "바닐라" 모드에서 ChucK 코어를 구축하려면:
cd src/core
make vanilla
ChucK 소스 코드는 MIT 라이선스와 GNU General Public License 2.0(또는 이후 버전)에 따라 이중 라이선스가 부여됩니다. 이 저작물을 사용하는 경우 두 라이센스 중 하나를 선택할 수 있습니다.
ChucK는 2000년대 초반 프린스턴 대학교에서 Ge Wang과 Perry R. Cook이 만들었으며 Ge는 Ph.D. 컴퓨터 과학과에서 Perry의 지도를 받는 학생입니다. ChucK의 첫 번째 버전은 2003년에 GPL 라이선스에 따라 출시되었습니다. 많은 연구원, 교사 및 예술가가 수년에 걸쳐 ChucK의 발전에 기여했습니다. Spencer Salazar는 2004년에 ChucK를 위한 GUI 기반 통합 개발 환경인 miniAudicle을 만들었습니다(ChucK의 명령줄 버전 외에 이 IDE는 오늘날 ChucK가 배포되고 사용되는 방식으로 크게 남아 있습니다). 2005년 Dan Trueman과 Perry Cook이 설립한 PLOrk(Princeton Laptop Orchestra)는 교육은 물론 악기 및 사운드 디자인에도 ChucK를 사용하기 시작했습니다. 2006년에 Rebecca Fiebrink와 Ge Wang은 단위 생성기에 대응하는 분석인 단위 분석기를 통해 표현되는 ChucK의 오디오 분석 프레임워크를 만들었습니다. Ge는 2007년에 스탠포드 대학교 CCRMA의 교수진에 합류했으며 ChucK 연구 개발은 프린스턴, 스탠포드 및 기타 지역의 개발자들과 함께 배포되었습니다. SLOrk(Stanford Laptop Orchestra)는 2008년 CCRMA에서 설립되었으며 ChucK는 계속해서 악기 설계 및 교육 도구로 활동했습니다. 같은 해에 모바일 음악 스타트업 Smule이 공동 창립되어 iPhone의 ChucK(코드명 "ChiP")를 초기 앱인 Ocarina, Sonic Lighter, Zephyr 및 Leaf Trombone의 실시간 오디오 엔진으로 사용했습니다. 월드 스테이지. 한편 ChucK는 스탠포드, 프린스턴, CalArts를 포함하여 컴퓨터 음악 커리큘럼에 계속 진출했습니다. 2015년에는 Ajay Kapur, Perry Cook, Spencer Salazar 및 Ge Wang이 저술한 "Programming for Musicians and Digital Artists: Creating music with ChucK"라는 책이 출판되었습니다. 비슷한 시기에 Kadenze는 ChucK에서 실시간 오디오 프로그래밍 소개 온라인 강좌를 소개했습니다. Romain Michon과 Ge Wang은 FAUST와 ChucK를 통합하여 FaucK를 만들었습니다. 2017년 Jack Atherton은 Unity 게임 개발 프레임워크 내에서 ChucK를 프로그래밍할 수 있는 Chunity를 만들었습니다. 2018년 Ge는 기술 형성에 있어 문화적 인식의 중요성을 다룬 포토툰 인 Artful Design: Technology in Search of the Sublime 에서 ChucK에 대해 썼습니다. 이제 ChucK는 웹 브라우저(WebChucK)에서 기본적으로 실행되며 WebChucK IDE에서 직접 프로그래밍할 수 있습니다.
ChucK는 출판된 기사와 서적에 광범위하게 문서화되어 있습니다(목록 참조). 개요를 보려면 다음을 확인하세요.
Artful Design: Technology in Search of the Sublime 에서 발췌한 "ChucK: 강력한 타이밍의 음악 프로그래밍 언어" 만화책
왕, G., PR, 쿡, S. 살라자르. 2015. "ChucK: 강력한 타이밍의 컴퓨터 음악 언어" 컴퓨터 음악 저널 39:4. doi:10.1162/COMJ_a_00324
소스 코드가 아닌 문서(논문, 로고, 사운드바이트, 만화)가 chuck-media 저장소로 마이그레이션되었습니다.
우리와 함께하세요! 척 커뮤니티 디스코드 | Chuck 사용자 메일링 리스트
행복한 척킹!