ChucK เป็นภาษาโปรแกรมสำหรับการสังเคราะห์เสียงและการสร้างเพลงแบบเรียลไทม์ เป็นโอเพ่นซอร์สและใช้งานได้ฟรีบน macOS, Windows และ Linux ChucK นำเสนอโมเดลการเขียนโปรแกรมที่ทำงานพร้อมกันตามเวลาอันเป็นเอกลักษณ์ซึ่งมีความแม่นยำและแสดงออกได้อย่างชัดเจน (เราเรียกว่าสิ่งนี้ กำหนดเวลาอย่างยิ่ง ) พร้อมด้วยอัตราการควบคุมแบบไดนามิกและความสามารถในการเพิ่มและแก้ไขโค้ดได้ทันที นอกจากนี้ ChucK ยังรองรับอุปกรณ์ MIDI, OpenSoundControl, HID และเสียงแบบหลายช่องสัญญาณ การเรียนรู้นี้สนุกและง่ายดาย อีกทั้งยังมอบเครื่องมือการเขียนโปรแกรมอันทรงพลังให้กับนักแต่งเพลง นักวิจัย และนักแสดงสำหรับการสร้างและทดลองโปรแกรมสังเคราะห์เสียง/วิเคราะห์เสียงที่ซับซ้อน และเพลงโต้ตอบแบบเรียลไทม์
ยินดีต้อนรับสู่ชัคเค!
หากต้องการดาวน์โหลดและติดตั้ง ChucK โปรดไปที่ หน้าเผยแพร่อย่างเป็นทางการของ ChucK
สำหรับข้อมูลเพิ่มเติม รวมถึงเอกสาร ตัวอย่าง เอกสารงานวิจัย และทรัพยากรของชุมชน โปรดไปที่ หน้าแรกของ ChucK หรือ เว็บไซต์ Princeton
brew install chuck
หากต้องการสร้าง ChucK ล่าสุดจากแหล่งที่มา ให้โคลน chuck
repo จาก GitHub:
git clone https://github.com/ccrma/chuck.git
นำทางไปยังไดเร็กทอรี chuck/src
และรัน make
:
cd chuck/src
make mac
หรือเพื่อสร้างไบนารีสากล (intel + apple silicon):
make mac-ub
สิ่งนี้ควรสร้าง chuck
ที่สามารถเรียกทำงานได้ใน chuck/src
การพึ่งพา: gcc, g++, make, bison, flex, libsndfile, ALSA (สำหรับบิลด์ linux-alsa), PulseAudio (สำหรับบิลด์ linux-pulse), JACK (สำหรับบิลด์ linux-jack)
วิธีตั้งค่าสภาพแวดล้อมบิลด์สำหรับ chuck บน Debian หรือ Ubuntu:
sudo apt install build-essential bison flex libsndfile1-dev
libasound2-dev libpulse-dev libjack-jackd2-dev
สำหรับลีนุกซ์รุ่นอื่นๆ การตั้งค่าควรจะคล้ายกัน แม้ว่าเครื่องมือการติดตั้งแพ็คเกจและชื่อแพ็คเกจอาจแตกต่างกันเล็กน้อย ( หมายเหตุ: การตั้งค่าที่ไม่จำเป็นต้องใช้ JACK หรือ PulseAudio สามารถละเว้นแพ็คเกจใดแพ็คเกจหนึ่งหรือทั้งสองแพ็คเกจได้ ALSA จำเป็นสำหรับการรองรับ MIDI บน Linux )
หากต้องการสร้าง chuck (พร้อมไดรเวอร์ที่รองรับทั้งหมด: ALSA, PulseAudio, JACK) ให้นำทางไปยังไดเร็กทอรี chuck/src
แล้วรัน make
:
cd chuck/src
make linux-all
FYI 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
ที่สามารถเรียกทำงานได้ใน chuck/src
หากต้องการสร้าง chuck โดยใช้ Visual Studio (แนะนำปี 2019 หรือใหม่กว่า) ให้ไปที่ chucksrcvisual-studio
เปิด chuck.sln
และสร้าง
ในการคอมไพล์ ChucK เป็น WebAssembly (WASM):
emsdk
): source ./emsdk_env.sh
chuck/src/
และรัน make web
: cd chuck/src
make web
สิ่งนี้ควรสร้าง webchuck.wasm
และ webchuck.js
ในไดเรกทอรี chuck/src/host-web/webchuck/js
(ดูเพิ่มเติมที่: WebChucK)
นี่คือแหล่งเก็บข้อมูลต้นทางที่ดูแลโดยทีมงาน ChucK นักพัฒนาต้องการ!
ชัค | ภาษาหลัก เครื่องเสมือน และกลไกการสังเคราะห์
ชูกินส์ | ขยาย Chuck ด้วยปลั๊กอิน! เป็นสถานที่ที่ดีเยี่ยมในการเริ่มมีส่วนร่วม
มินิออดิเคิล | IDE สำหรับชัค
เว็บชัค | Chuck ทำงานในเว็บเบราว์เซอร์ (ทำงานบนเดสก์ท็อปและโทรศัพท์!)
เว็บชัค IDE | IDE บนเบราว์เซอร์สำหรับ Chuck
ชุนตี้ | Chuck ในความสามัคคี
ชุนเรียล | ChuckK ใน Unreal Engine (ใหม่!)
ชูเกิล | ไลบรารีกราฟิก ChuckK (ใหม่!)
เป็นไปได้ที่จะรวม ChucK core (คอมไพเลอร์, เครื่องเสมือน, เอ็นจิ้นการสังเคราะห์) เป็นส่วนประกอบ/ไลบรารีภายใน โฮสต์ ซอฟต์แวร์ c++ อื่น ๆ สิ่งนี้มีประโยชน์สำหรับการเพิ่มฟังก์ชันการทำงานของ ChucK ให้กับระบบซอฟต์แวร์ของคุณหรือเพื่อสร้างปลั๊กอินใหม่ โปรดทราบว่าเครื่องมือต่างๆ ที่ระบุไว้ในส่วนก่อนหน้าทั้งหมดรวม ChucK ไว้ในโมเดลหลัก/โฮสต์นี้: รวมถึงบรรทัดคำสั่ง, miniAudicle, Unity, Unreal Engine, WebAssembly; นอกจากนี้ ChucK ยังได้รับการบูรณาการเข้ากับ openFrameworks, แอป iOS/Android, ระบบฝังตัว และในระบบภาษาไฮบริด เช่น FaucK (FAUST + ChucK), ChucKDesigner (ChucK ใน TouchDesigner), chuck~ (ChucK ใน Pure Data), chuck~ ( ChuckK ใน Max/MSP)
เพื่อแสดงให้เห็นว่าการรวมระบบนี้สามารถทำได้อย่างไร เราได้สร้างชุดตัวอย่างในภาษา C++ เพื่อแสดงวิธีรวม ChucK เข้ากับโฮสต์ C++ ใดๆ ตัวอย่างที่ง่ายที่สุดเหล่านี้ example-1-minimal.cpp จะสร้างโฮสต์ ChucK ขั้นต่ำใน C++ โดยใช้โค้ดประมาณ 20 บรรทัด ตัวอย่างต่อมาแสดงการเพิ่มเสียงแบบเรียลไทม์ การสื่อสาร C++/ChucK โดยใช้ ChucK globals และการควบคุมการทำลายเอกสาร ChucK จาก C++ ตามลำดับ ตัวอย่างโฮสต์เหล่านี้สามารถพบได้ในโฟลเดอร์ src/host-examples/ ของที่เก็บนี้ สำหรับการใช้งานขั้นสูง โปรดดูเครื่องมือต่างๆ ในระบบนิเวศของ ChuckK ตามที่ระบุไว้ข้างต้นในส่วนก่อนหน้า หากต้องการเริ่มต้นสร้างตัวอย่างโฮสต์เหล่านี้:
cd src/host-examples
make
นอกจากนี้ยังสามารถสร้าง เฉพาะ แกน ChucK เท่านั้น (คอมไพเลอร์ เครื่องเสมือน และกลไกการสังเคราะห์) โดยไม่ต้องใช้โฮสต์และไม่มี I/O เสียงแบบเรียลไทม์เฉพาะแพลตฟอร์มใดๆ นี่อาจเป็นจุดเริ่มต้นที่เป็นประโยชน์สำหรับการรวมแกน ChucK เข้ากับระบบโฮสต์ที่มีอยู่ซึ่งมี I/O เสียงอยู่แล้ว วิธีสร้างแกน ChuckK ในโหมด "วานิลลา":
cd src/core
make vanilla
ซอร์สโค้ดของ ChucK มีลิขสิทธิ์แบบคู่ภายใต้ใบอนุญาต MIT และ GNU General Public License 2.0 (หรือเวอร์ชันที่ใหม่กว่า) คุณสามารถเลือกใบอนุญาตอย่างใดอย่างหนึ่งหากคุณใช้งานนี้
ChucK ก่อตั้งขึ้นเมื่อต้นปี 2000 ที่มหาวิทยาลัยพรินซ์ตันโดย Ge Wang และ Perry R. Cook ในขณะที่ Ge สำเร็จการศึกษาระดับปริญญาเอก นักเรียนแนะนำโดยเพอร์รี่ในภาควิชาวิทยาการคอมพิวเตอร์ ChucK เวอร์ชันแรกเปิดตัวภายใต้ใบอนุญาต GPL ในปี 2546 นักวิจัย ครู และศิลปินหลายคนมีส่วนร่วมในการพัฒนาของ ChucK ตลอดหลายปีที่ผ่านมา Spencer Salazar ได้สร้าง miniAudicle ซึ่งเป็นสภาพแวดล้อมการพัฒนาแบบบูรณาการบน GUI สำหรับ ChucK ในปี 2004 (IDE นี้ นอกเหนือจากเวอร์ชันบรรทัดคำสั่งของ ChucK แล้ว ยังคงเป็นวิธีการกระจายและใช้งาน ChucK ในปัจจุบันเป็นส่วนใหญ่) Princeton Laptop Orchestra (PLORk) ก่อตั้งโดย Dan Trueman และ Perry Cook ในปี 2548 เริ่มใช้ ChucK ในการสอน รวมถึงการออกแบบเครื่องดนตรีและเสียง ในปี 2549 Rebecca Fiebrink และ Ge Wang ได้สร้างกรอบงานการวิเคราะห์เสียงของ ChucK ซึ่งแสดงผ่านเครื่องวิเคราะห์หน่วย ซึ่งเป็นการวิเคราะห์ที่เทียบเท่ากับเครื่องกำเนิดหน่วย Ge เข้าร่วมคณะที่ CCRMA ของมหาวิทยาลัยสแตนฟอร์ดในปี 2550 และการวิจัยและพัฒนาของ ChucK ได้รับการเผยแพร่ร่วมกับนักพัฒนาที่พรินซ์ตัน สแตนฟอร์ด และที่อื่นๆ Stanford Laptop Orchestra (SLOrk) ก่อตั้งขึ้นในปี 2008 ที่ CCRMA โดยที่ ChucK ยังคงเป็นเครื่องมือสำหรับการออกแบบและการสอนเครื่องดนตรี ในปีเดียวกันนั้นเอง Smule สตาร์ทอัพด้านดนตรีบนมือถือได้ถูกร่วมก่อตั้งขึ้น ซึ่งใช้ ChucK บน iPhone (ชื่อรหัสว่า "ChiP") เป็นเครื่องมือเสียงแบบเรียลไทม์สำหรับแอปรุ่นแรกๆ ได้แก่ Ocarina, Sonic Lighter, Zephyr และ Leaf Trombone: เวทีโลก. ในขณะเดียวกัน ChucK ยังคงหาทางเข้าสู่หลักสูตรดนตรีคอมพิวเตอร์อย่างต่อเนื่อง รวมถึงที่ Stanford, Princeton, CalArts ในปี 2015 หนังสือ การเขียนโปรแกรมสำหรับนักดนตรีและศิลปินดิจิทัล: การสร้างเพลงด้วย ChucK ได้รับการตีพิมพ์ ประพันธ์โดย Ajay Kapur, Perry Cook, Spencer Salazar และ Ge Wang ในเวลาเดียวกัน Kadenze ได้เปิดตัวหลักสูตรออนไลน์เบื้องต้นเกี่ยวกับการเขียนโปรแกรมเสียงแบบเรียลไทม์ใน ChucK Romain Michon และ Ge Wang ผสานรวม FAUST และ ChucK เพื่อสร้าง FaucK ในปี 2560 Jack Atherton ได้สร้าง Chununity ซึ่งช่วยให้สามารถตั้งโปรแกรม ChucK ภายในกรอบการพัฒนาเกม Unity ได้ ในปี 2018 Ge เขียนเกี่ยวกับ ChucK ในเรื่อง Artful Design: Technology in Search of the Sublime ซึ่งเป็นหนังสือภาพการ์ตูนเกี่ยวกับความสำคัญของการรับรู้ทางวัฒนธรรมในการสร้างเทคโนโลยี ขณะนี้ ChucK ทำงานบนเว็บเบราว์เซอร์ (WebChucK) และสามารถตั้งโปรแกรมได้โดยตรงใน WebChucK IDE
ChucK ได้รับการบันทึกไว้อย่างกว้างขวางในบทความและหนังสือที่ตีพิมพ์ (ดูรายชื่อ) สำหรับภาพรวม โปรดดูที่:
หนังสือการ์ตูน “ChucK: ภาษาโปรแกรมดนตรีที่มีกำหนดเวลาชัดเจน” ที่ตัดตอนมาจาก การออกแบบอย่างมีศิลปะ: เทคโนโลยีในการค้นหาสิ่งประเสริฐ
Wang, G., PR, Cook และ S. Salazar 2015 "ChucK: ภาษาดนตรีคอมพิวเตอร์ที่มีกำหนดเวลาอย่างมาก" วารสารดนตรีคอมพิวเตอร์ 39:4 ดอย:10.1162/COMJ_a_00324
เอกสารที่ไม่ใช่ซอร์สโค้ด (เอกสาร โลโก้ ซาวนด์ไบท์ การ์ตูน) ได้ถูกย้ายไปยังพื้นที่เก็บข้อมูล chuck-media
เข้าร่วมกับเรา! ความไม่ลงรอยกันของชุมชน ChuckK | รายชื่อผู้รับจดหมายของผู้ใช้ ChucK
แฮปปี้ชัคคิง!