ChucK ist eine Programmiersprache für Echtzeit-Klangsynthese und Musikerstellung. Es ist Open Source und frei verfügbar auf macOS, Windows und Linux. ChucK präsentiert ein einzigartiges zeitbasiertes, gleichzeitiges Programmiermodell, das präzise und ausdrucksstark ist (wir nennen es stark getimt ), mit dynamischen Kontrollraten und der Möglichkeit, Code im laufenden Betrieb hinzuzufügen und zu ändern. Darüber hinaus unterstützt ChucK MIDI, OpenSoundControl, HID-Geräte und Mehrkanal-Audio. Es macht Spaß, ist leicht zu erlernen und bietet Komponisten, Forschern und Interpreten ein leistungsstarkes Programmiertool zum Erstellen und Experimentieren mit komplexen Audiosynthese-/Analyseprogrammen und interaktiver Musik in Echtzeit.
Willkommen bei ChucK!
Um ChucK herunterzuladen und zu installieren, besuchen Sie die offizielle ChucK-Release-Seite .
Weitere Informationen, einschließlich Dokumentation, Beispiele, Forschungspublikationen und Community-Ressourcen, finden Sie auf der ChucK-Homepage oder auf dem Princeton-Spiegel .
brew install chuck
Um das neueste ChucK aus dem Quellcode zu erstellen, klonen Sie das chuck
-Repo von GitHub:
git clone https://github.com/ccrma/chuck.git
Navigieren Sie zum Verzeichnis chuck/src
und führen Sie make
aus:
cd chuck/src
make mac
ODER um eine universelle Binärdatei zu erstellen (Intel + Apple Silicon):
make mac-ub
Dies sollte eine ausführbare chuck
Datei in chuck/src
erstellen.
Abhängigkeiten: gcc, g++, make, bison, flex, libsndfile, ALSA (für Linux-Alsa-Builds), PulseAudio (für Linux-Pulse-Builds), JACK (für Linux-Jack-Builds)
So richten Sie eine Build-Umgebung für Chuck unter Debian oder Ubuntu ein:
sudo apt install build-essential bison flex libsndfile1-dev
libasound2-dev libpulse-dev libjack-jackd2-dev
Bei anderen Linux-Distributionen sollte das Setup ähnlich sein, obwohl die Paketinstallationstools und Paketnamen möglicherweise etwas anders sind. ( HINWEIS: Setups, die JACK oder PulseAudio nicht benötigen, können eines oder beide dieser Pakete weglassen. ALSA wird für die MIDI-Unterstützung unter Linux benötigt. )
Um chuck zu erstellen (mit allen unterstützten Treibern: ALSA, PulseAudio, JACK), navigieren Sie zum Verzeichnis chuck/src
und führen Sie make
aus:
cd chuck/src
make linux-all
Zu Ihrer Information: make linux-all
entspricht im Ergebnis der Kombination einzelner Treiber:
make linux-alsa linux-pulse linux-jack
Um Chuck für eine Teilmenge von ALSA, PulseAudio oder JACK zu erstellen, führen Sie make
mit den gewünschten Treibern aus. Um beispielsweise nur für ALSA und PulseAudio zu erstellen:
make linux-alsa linux-pulse
Oder um nur für ALSA zu bauen:
make linux-alsa
Dieser Prozess sollte eine ausführbare chuck
Datei in chuck/src
erstellen.
Um Chuck mit Visual Studio (2019 oder höher empfohlen) zu erstellen, navigieren Sie zu chucksrcvisual-studio
, öffnen Sie chuck.sln
und erstellen Sie.
So kompilieren Sie ChucK zu WebAssembly (WASM):
emsdk
Verzeichnis): source ./emsdk_env.sh
chuck/src/
und führen Sie make web
aus: cd chuck/src
make web
Dadurch sollten webchuck.wasm
und webchuck.js
im Verzeichnis chuck/src/host-web/webchuck/js
erstellt werden. (Siehe auch: WebChucK)
Hier sind die vom ChucK-Team verwalteten Quellrepositorys. Entwickler gesucht!
Futter | Kernsprache, virtuelle Maschine und Synthese-Engine
Chugins | Chuck mit Plugins erweitern! ein großartiger Ort, um mit dem Beitragen zu beginnen
miniAudicle | eine IDE für Chuck
Webchuck | chuck läuft in Webbrowsern (funktioniert auf Desktops und Telefonen!)
Webchuck-IDE | eine browserbasierte IDE für chuck
Chunity | ChucK in Einheit
chunreal | ChucK in der Unreal Engine (neu!)
Chugl | ChucK-Grafikbibliothek (neu!)
Es ist möglich, den ChucK- Kern (Compiler, virtuelle Maschine, Synthese-Engine) als Komponente/Bibliothek in andere C++-Software- Hosts zu integrieren. Dies kann nützlich sein, um ChucK-Funktionalitäten zu Ihren Softwaresystemen hinzuzufügen oder neue Plugins zu erstellen. Zu Ihrer Information: Die verschiedenen im vorherigen Abschnitt aufgeführten Tools integrieren alle ChucK in dieses Kern-/Hostmodell: einschließlich Befehlszeile, miniAudicle, Unity, Unreal Engine, WebAssembly; Darüber hinaus wurde ChucK in openFrameworks, iOS/Android-Apps, eingebettete Systeme und in hybride Sprachsysteme integriert, z. B. FaucK (FAUST + ChucK), ChucKDesigner (ChucK in TouchDesigner), chuck~ (ChucK in Pure Data), chuck~ ( ChucK in Max/MSP).
Um zu zeigen, wie diese Integration erfolgen kann, haben wir eine Reihe von Beispielen in C++ erstellt, die zeigen, wie ChucK in jeden C++-Host integriert werden kann. Das einfachste dieser Beispiele, example-1-minimal.cpp, erstellt einen minimalen ChucK-Host in C++ in etwa 20 Codezeilen. Die folgenden Beispiele zeigen das Hinzufügen von Echtzeit-Audio, C++/ChucK-Kommunikation mithilfe von ChucK-Globals bzw. ChucK-Shred-Steuerung aus C++. Diese Host-Beispiele finden Sie im Ordner src/host-examples/ dieses Repositorys. Für eine fortgeschrittenere Nutzung schauen Sie sich die verschiedenen Tools im ChucK-Ökosystem an, wie oben im vorherigen Abschnitt aufgeführt. Um mit der Erstellung dieser Host-Beispiele zu beginnen:
cd src/host-examples
make
Es ist auch möglich, nur den ChucK- Kern (Compiler, virtuelle Maschine und Synthese-Engine) ohne Host und ohne plattformspezifische Echtzeit-Audio-I/O zu erstellen. Dies kann ein hilfreicher Ausgangspunkt für die Integration des ChucK-Kerns in bestehende Hostsysteme sein, die bereits über Audio-E/A verfügen. So erstellen Sie den ChucK-Kern im „Vanilla“-Modus:
cd src/core
make vanilla
Der ChucK-Quellcode ist unter der MIT-Lizenz und der GNU General Public License 2.0 (oder einer späteren Version) doppelt lizenziert. Sie können eine der beiden Lizenzen wählen, wenn Sie dieses Werk verwenden.
ChucK wurde in den frühen 2000er Jahren an der Princeton University von Ge Wang und Perry R. Cook gegründet, während Ge promovierte. Von Perry betreuter Student im Fachbereich Informatik. Die erste Version von ChucK wurde 2003 unter einer GPL-Lizenz veröffentlicht. Viele Forscher, Lehrer und Künstler haben im Laufe der Jahre zur Entwicklung von ChucK beigetragen. Spencer Salazar erstellte 2004 miniAudicle, eine GUI-basierte integrierte Entwicklungsumgebung für ChucK (diese IDE ist neben der Befehlszeilenversion von ChucK größtenteils noch heute die Art und Weise, wie ChucK heute verbreitet und verwendet wird). Das 2005 von Dan Trueman und Perry Cook gegründete Princeton Laptop Orchestra (PLOrk) begann, ChucK sowohl für den Unterricht als auch für das Instrumenten- und Sounddesign zu nutzen. Im Jahr 2006 erstellten Rebecca Fiebrink und Ge Wang das Audioanalyse-Framework von ChucK, ausgedrückt durch Unit-Analysatoren – das Analyse-Gegenstück zu Unit-Generatoren. Ge trat 2007 der Fakultät des CCRMA der Stanford University bei, und ChucKs Forschung und Entwicklung wurde verteilt, mit Entwicklern in Princeton, Stanford und anderswo. Das Stanford Laptop Orchestra (SLOrk) wurde 2008 am CCRMA gegründet, wo ChucK weiterhin als Instrument für Instrumentendesign und Unterricht fungierte. Im selben Jahr wurde das mobile Musik-Startup Smule mitgegründet, das ChucK auf dem iPhone (Codename „ChiP“) als Echtzeit-Audio-Engine für seine frühen Apps nutzte: Ocarina, Sonic Lighter, Zephyr und Leaf Trombone: Weltbühne. Unterdessen hielt ChucK weiterhin Einzug in die Lehrpläne für Computermusik, unter anderem in Stanford, Princeton und CalArts. Im Jahr 2015 erschien das Buch Programming for Musicians and Digital Artists: Creating music with ChucK , verfasst von Ajay Kapur, Perry Cook, Spencer Salazar und Ge Wang. Etwa zur gleichen Zeit führte Kadenze den Online-Kurs „Introduction to Real-Time Audio Programming“ in ChucK ein. Romain Michon und Ge Wang haben FAUST und ChucK integriert, um FaucK zu schaffen. Im Jahr 2017 schuf Jack Atherton Chunity, das es ermöglicht, ChucK innerhalb des Unity-Spieleentwicklungs-Frameworks zu programmieren. Im Jahr 2018 schrieb Ge über ChucK in Artful Design: Technology in Search of the Sublime , einem Fotocomic-Buch über die Bedeutung des kulturellen Bewusstseins bei der Gestaltung von Technologie. ChucK läuft jetzt nativ in Webbrowsern (WebChucK) und kann direkt in der WebChucK-IDE programmiert werden.
ChucK wurde ausführlich in veröffentlichten Artikeln und Büchern dokumentiert (siehe Liste). Eine Übersicht finden Sie hier:
„ChucK: A Strongly-Timed Music Programming Language“ Comic-Auszug aus Artful Design: Technology in Search of the Sublime
Wang, G., PR, Cook und S. Salazar. 2015. „ChucK: A Strongly Timed Computer Music Language“ Computer Music Journal 39:4. doi:10.1162/COMJ_a_00324
Nicht-Quellcode-Dokumente (Papiere, Logos, Soundbites, Comics) wurden in das Chuck-Media-Repository migriert.
Begleiten Sie uns! ChucK Community Discord | ChucK-Benutzer-Mailingliste
Fröhliches ChucKing!