Chuck adalah bahasa pemrograman untuk sintesis suara dan pembuatan musik secara real-time. Ini adalah sumber terbuka dan tersedia secara gratis di macOS, Windows, dan Linux. ChucK menghadirkan model pemrograman konkuren berbasis waktu yang unik, tepat dan ekspresif (kami menyebutnya sangat waktunya ), dengan tingkat kontrol dinamis dan kemampuan untuk menambah dan memodifikasi kode saat itu juga. Selain itu, ChucK mendukung MIDI, OpenSoundControl, perangkat HID, dan audio multi-saluran. Menyenangkan dan mudah dipelajari, dan menawarkan kepada komposer, peneliti, dan pemain alat pemrograman yang kuat untuk membangun dan bereksperimen dengan program sintesis/analisis audio yang kompleks, dan musik interaktif waktu nyata.
Selamat datang di Chuck!
Untuk mengunduh dan menginstal ChucK, kunjungi halaman rilis resmi ChucK .
Untuk informasi lebih lanjut, termasuk dokumentasi, contoh, publikasi penelitian, dan sumber daya komunitas, kunjungi situs Chuck atau mirror Princeton- nya.
brew install chuck
Untuk membuat ChucK terbaru dari sumber, clone repo chuck
dari GitHub:
git clone https://github.com/ccrma/chuck.git
arahkan ke direktori chuck/src
, dan jalankan make
:
cd chuck/src
make mac
ATAU untuk membuat biner universal (intel + apple silikon):
make mac-ub
Ini seharusnya membuat chuck
dapat dieksekusi di chuck/src
.
Dependensi: gcc, g++, make, bison, flex, libsndfile, ALSA (untuk build linux-alsa), PulseAudio (untuk build linux-pulse), JACK (untuk build linux-jack)
Untuk menyiapkan lingkungan build untuk chuck di Debian atau Ubuntu:
sudo apt install build-essential bison flex libsndfile1-dev
libasound2-dev libpulse-dev libjack-jackd2-dev
Untuk distribusi Linux lainnya, pengaturannya harus serupa meskipun alat instalasi paket dan nama paket mungkin sedikit berbeda. ( CATATAN: setup yang tidak memerlukan JACK atau PulseAudio dapat menghilangkan salah satu atau kedua paket ini. ALSA diperlukan untuk dukungan MIDI di Linux. )
Untuk membuat chuck (dengan semua driver yang didukung: ALSA, PulseAudio, JACK), navigasikan ke direktori chuck/src
dan jalankan make
:
cd chuck/src
make linux-all
FYI make linux-all
memiliki hasil yang setara dengan menggabungkan driver individual:
make linux-alsa linux-pulse linux-jack
Untuk membuat chuck untuk subset ALSA, PulseAudio, atau JACK, jalankan make
dengan driver yang diinginkan. Misalnya, untuk membuat ALSA dan PulseAudio saja:
make linux-alsa linux-pulse
Atau, untuk membangun hanya untuk ALSA:
make linux-alsa
Proses ini harus membuat chuck
dapat dieksekusi di chuck/src
.
Untuk membuat chuck menggunakan Visual Studio (direkomendasikan 2019 atau lebih baru), navigasikan ke chucksrcvisual-studio
, buka chuck.sln
, dan buat.
Untuk mengkompilasi Chuck ke WebAssembly (WASM):
emsdk
): source ./emsdk_env.sh
chuck/src/
, dan jalankan make web
: cd chuck/src
make web
Ini akan membuat webchuck.wasm
dan webchuck.js
di direktori chuck/src/host-web/webchuck/js
. (Juga lihat: WebChucK)
Berikut adalah repositori sumber yang dikelola oleh Tim Chuck. Pengembang menginginkannya!
membuang | bahasa inti, mesin virtual, dan mesin sintesis
chugin | perluas chuck dengan plugin! tempat yang bagus untuk mulai berkontribusi
miniAudile | sebuah IDE untuk chuck
webchuck | chuck berjalan di browser web (berfungsi di desktop dan ponsel!)
IDE webchuck | IDE berbasis browser untuk chuck
kekenyalan | Chuck dalam Persatuan
chunreal | Chuck di Unreal Engine (baru!)
chugl | Perpustakaan Grafis Chuck (baru!)
Dimungkinkan untuk menggabungkan inti ChucK (kompiler, mesin virtual, mesin sintesis) sebagai komponen/perpustakaan dalam host perangkat lunak c++ lainnya. Ini dapat berguna untuk menambahkan fungsionalitas Chuck ke sistem perangkat lunak Anda atau untuk membuat plugin baru. Sekadar informasi, berbagai alat yang tercantum di bagian sebelumnya semuanya menggabungkan ChucK dalam model inti/host ini: termasuk baris perintah, miniAudicle, Unity, Unreal Engine, WebAssembly; selain itu ChucK telah terintegrasi dengan openFrameworks, aplikasi iOS/Android, sistem tertanam, dan sistem bahasa hibrid, misalnya, FaucK (FAUST + ChucK), ChucKDesigner (ChucK di TouchDesigner), chuck~ (ChucK di Pure Data), chuck~ ( Chuck di Maks/MSP).
Untuk menunjukkan bagaimana integrasi ini dapat dilakukan, kami telah membuat serangkaian contoh di C++ untuk menunjukkan bagaimana mengintegrasikan ChucK ke dalam host C++ mana pun. Contoh paling sederhana, example-1-minimal.cpp, membuat host ChucK minimal di C++ dalam sekitar 20 baris kode. Contoh berikutnya menunjukkan penambahan audio real-time, komunikasi C++/ChucK menggunakan global ChucK, dan kontrol rusak ChucK dari C++. Contoh host ini dapat ditemukan di folder src/host-examples/ repositori ini. Untuk penggunaan lebih lanjut, periksa berbagai alat di ekosistem Chuck seperti yang tercantum di atas pada bagian sebelumnya. Untuk mulai membuat contoh host berikut:
cd src/host-examples
make
Dimungkinkan juga untuk membangun hanya inti ChucK (kompiler, mesin virtual, dan mesin sintesis), tanpa host dan tanpa I/O audio real-time spesifik platform apa pun. Ini bisa menjadi titik awal yang berguna untuk mengintegrasikan inti Chuck ke dalam sistem host yang sudah memiliki I/O audio. Untuk membangun inti Chuck dalam mode "vanilla":
cd src/core
make vanilla
Kode sumber ChucK memiliki lisensi ganda di bawah Lisensi MIT dan GNU General Public License 2.0 (atau versi yang lebih baru). Anda dapat memilih salah satu lisensi jika Anda menggunakan karya ini.
ChucK diciptakan pada awal tahun 2000-an di Universitas Princeton oleh Ge Wang dan Perry R. Cook, sementara Ge adalah seorang Ph.D. mahasiswa yang dibimbing oleh Perry di Departemen Ilmu Komputer. Versi pertama ChucK dirilis di bawah lisensi GPL pada tahun 2003. Banyak peneliti, guru, dan seniman telah berkontribusi terhadap evolusi ChucK selama bertahun-tahun. Spencer Salazar menciptakan miniAudicle, lingkungan pengembangan terintegrasi berbasis GUI untuk ChucK pada tahun 2004 (IDE ini, selain versi baris perintah dari ChucK, sebagian besar tetap merupakan cara ChucK didistribusikan dan digunakan saat ini). Princeton Laptop Orchestra (PLOrk), yang didirikan oleh Dan Trueman dan Perry Cook pada tahun 2005, mulai menggunakan ChucK untuk pengajaran serta desain instrumen dan suara. Pada tahun 2006, Rebecca Fiebrink dan Ge Wang menciptakan kerangka analisis audio ChucK, yang diekspresikan melalui penganalisis unit--analisis yang setara dengan generator unit. Saya bergabung dengan fakultas di CCRMA Universitas Stanford pada tahun 2007, dan penelitian dan pengembangan Chuck didistribusikan, dengan pengembang di Princeton, Stanford, dan tempat lain. Stanford Laptop Orchestra (SLOrk) didirikan pada tahun 2008 di CCRMA, di mana ChucK terus menjadi alat untuk desain instrumen dan pengajaran. Pada tahun yang sama, startup musik seluler Smule didirikan bersama, yang menggunakan ChucK di iPhone (dengan nama kode "ChiP") sebagai mesin audio real-time untuk aplikasi awalnya: Ocarina, Sonic Lighter, Zephyr, dan Leaf Trombone: Panggung Dunia. Sementara itu, ChucK terus mempelajari kurikulum musik komputer, termasuk di Stanford, Princeton, CalArts. Pada tahun 2015, buku Pemrograman untuk Musisi dan Artis Digital: Menciptakan musik dengan ChucK diterbitkan, ditulis oleh Ajay Kapur, Perry Cook, Spencer Salazar, dan Ge Wang. Sekitar waktu yang sama, Kadenze memperkenalkan kursus online Pengantar Pemrograman Audio Real-Time di Chuck. Romain Michon dan Ge Wang mengintegrasikan FAUST dan ChucK untuk membuat FaucK. Pada tahun 2017, Jack Atherton menciptakan Chunity, yang memungkinkan seseorang memprogram Chuck dalam kerangka pengembangan game Unity. Pada tahun 2018, Ge menulis tentang Chuck dalam Artful Design: Technology in Search of the Sublime , sebuah buku fotokomik tentang pentingnya kesadaran budaya dalam pembentukan teknologi. ChucK sekarang berjalan secara native di browser web (WebChucK) dan dapat diprogram langsung di WebChucK IDE.
Chuck telah banyak didokumentasikan dalam artikel dan buku yang diterbitkan (lihat daftar). Untuk gambaran umum, lihat:
Kutipan buku komik “ChucK: Bahasa Pemrograman Musik dengan Waktu yang Sangat Tepat” dari Artful Design: Technology in Search of the Sublime
Wang, G., PR, Cook, dan S. Salazar. 2015. "ChucK: Bahasa Musik Komputer dengan Waktu yang Sangat Tepat" Jurnal Musik Komputer 39:4. doi:10.1162/COMJ_a_00324
Dokumen non-kode sumber (makalah, logo, soundbite, komik) telah dimigrasikan ke repositori chuck-media.
Bergabunglah dengan kami! Perselisihan Komunitas Chuck | Milis pengguna Chuck
Selamat Chucking!