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
或建構通用二進位(英特爾+蘋果晶片):
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。 )
若要建置chuck (使用所有支援的驅動程式: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 團隊維護的來源儲存庫。開發商想要!
卡盤|核心語言、虛擬機器與合成引擎
楚金斯|用插件擴充卡盤!開始貢獻的好地方
迷你Audicle |卡盤的 IDE
網路卡盤|在網頁瀏覽器中運行的 chuck(適用於桌上型電腦和手機!)
webchuck IDE |一個基於瀏覽器的 Chuck IDE
社區|查克統一
春瑞爾|虛幻引擎中的 ChucK(新!)
楚格| ChucK 圖形庫(新!)
可將 ChucK核心(編譯器、虛擬機器、綜合引擎)合併為其他 C++ 軟體主機中的元件/函式庫。這對於將 ChucK 功能新增至您的軟體系統或建立新外掛程式非常有用。僅供參考,上一節列出的各種工具都將 ChucK 納入此核心/主機模型中:包括命令列、miniAudicle、Unity、Unreal Engine、WebAssembly;此外ChucK還與openFrameworks、iOS/Android應用程式、嵌入式系統以及混合語言系統集成,例如FaucK(FAUST + ChucK)、ChucKDesigner(TouchDesigner中的ChucK)、chuck~(純資料中的ChucK)、chuck~( ChuckK 在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
也可以僅建置 ChucK核心(編譯器、虛擬機器和合成引擎),無需主機,也無需任何特定於平台的即時音訊 I/O。這對於將 ChucK 核心整合到已有音訊 I/O 的現有主機系統中來說是一個有用的起點。以「vanilla」模式建構 ChucK 核心:
cd src/core
make vanilla
ChucK 原始碼根據 MIT 授權和 GNU 通用公共授權 2.0(或任何更高版本)取得雙重授權。如果您使用本作品,您可以選擇任一授權。
ChucK 於 2000 年代初由 Ge Wang 和 Perry R. Cook 在普林斯頓大學創建,而 Ge 是普林斯頓大學的博士。計算機科學系佩里指導的學生。 ChucK 的第一個版本於 2003 年在 GPL 許可下發布。 Spencer Salazar 在 2004 年創建了 miniAudicle,這是一個基於 GUI 的 ChucK 整合開發環境(這個 IDE,除了 ChucK 的命令列版本之外,很大程度上仍然保留了今天 ChucK 的分發和使用方式)。普林斯頓筆記型電腦樂團 (PLORk) 由 Dan Trueman 和 Perry Cook 於 2005 年創立,開始使用 ChucK 進行教學以及樂器和聲音設計。 2006 年,Rebecca Fiebrink 和 Ge Wang 創建了 ChucK 的音訊分析框架,透過單元分析器(單元產生器的分析對應部分)來表達。 Ge 於 2007 年加入史丹佛大學 CCRMA 任教,ChucK 的研究和開發開始分散,開發人員來自普林斯頓大學、史丹佛大學和其他地方。史丹佛筆記型電腦樂團 (SLOrk) 於 2008 年在 CCRMA 成立,ChucK 繼續成為樂器設計和教學的工具。同年,與他人共同創立了行動音樂新創公司 Smule,該公司使用 iPhone 上的 ChucK(代號「ChiP」)作為其早期應用程式(Ocarina、Sonic Lighter、Zephyr 和 Leaf Trombone)的即時音訊引擎:世界舞台。同時,ChucK 繼續進入電腦音樂課程,包括史丹佛大學、普林斯頓大學、加州藝術學院。 2015 年,Ajay Kapur、Perry Cook、Spencer Salazar 和 Ge Wang 合著的《音樂家和數位藝術家編程:以 ChucK 創作音樂》一書出版。大約在同一時間,Kadenze 在 ChucK 中推出了線上課程「即時音訊程式設計簡介」。 Romain Michon 和 Ge Wang 將 FAUST 和 ChucK 結合起來創建了 FaucK。 2017 年,Jack Atherton 創建了 Chunity,它使人們能夠在 Unity 遊戲開發框架內對 ChucK 進行程式設計。 2018 年,葛在《藝術設計:追尋崇高的技術》中寫了關於 ChucK 的文章,這是一本關於文化意識在科技塑造中的重要性的漫畫書。 ChucK 現在在 Web 瀏覽器 (WebChucK) 中本機運行,並且可以直接在 WebChucK IDE 中進行程式設計。
ChucK 在已發表的文章和書籍中得到了廣泛的記錄(請參閱列表)。有關概述,請查看:
「ChucK:一種強定時音樂程式語言」漫畫書摘自《藝術設計:追求崇高的技術》
Wang, G.、PR、Cook 和 S. Salazar。 2015.「ChucK:一種強定時電腦音樂語言」電腦音樂雜誌39:4。號碼:10.1162/COMJ_a_00324
非原始碼文件(論文、標誌、原聲片段、漫畫)已遷移到 chuck-media 儲存庫。
加入我們! ChuckK 社區不和諧 | ChucK-用戶郵件列表
查金快樂!