ChucK هي لغة برمجة لتوليف الصوت وإنشاء الموسيقى في الوقت الفعلي. إنه مفتوح المصدر ومتاح مجانًا على أنظمة التشغيل macOS وWindows وLinux. يقدم ChucK نموذجًا فريدًا للبرمجة المتزامنة يعتمد على الوقت، وهو نموذج دقيق ومعبر (نطلق عليه التوقيت القوي )، مع معدلات تحكم ديناميكية والقدرة على إضافة التعليمات البرمجية وتعديلها بسرعة. بالإضافة إلى ذلك، يدعم ChucK أجهزة MIDI وOpenSoundControl وHID والصوت متعدد القنوات. إنها ممتعة وسهلة التعلم، وتوفر للملحنين والباحثين وفناني الأداء أداة برمجة قوية لبناء وتجربة برامج التوليف/التحليل الصوتي المعقدة، والموسيقى التفاعلية في الوقت الفعلي.
مرحبا بكم في تشوك!
لتنزيل ChucK وتثبيته، تفضل بزيارة صفحة إصدار ChucK الرسمية .
لمزيد من المعلومات، بما في ذلك الوثائق والأمثلة والمنشورات البحثية وموارد المجتمع، قم بزيارة الصفحة الرئيسية لـ ChuckK أو مرآة Princeton الخاصة بها.
brew install chuck
لإنشاء أحدث إصدار من ChuckK من المصدر، قم باستنساخ 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
بالنسبة لتوزيعات Linux الأخرى، يجب أن يكون الإعداد مشابهًا على الرغم من أن أدوات تثبيت الحزمة وأسماء الحزم قد تكون مختلفة قليلاً. ( ملاحظة: يمكن للإعدادات التي لا تحتاج إلى JACK أو PulseAudio حذف أي من هاتين الحزمتين أو كلتيهما. هناك حاجة إلى ALSA لدعم MIDI على Linux. )
لإنشاء ظرف (مع كافة برامج التشغيل المدعومة: 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
قابل للتنفيذ في chuck/src
.
لإنشاء ظرف باستخدام 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. أراد المطورين!
تشاك | اللغة الأساسية والآلة الافتراضية ومحرك التوليف
تشوجينز | تمديد تشاك مع الإضافات! مكان عظيم لبدء المساهمة
miniAudicle | IDE للظرف
ويبشوك | تشاك يعمل في متصفحات الويب (يعمل على أجهزة الكمبيوتر المكتبية والهواتف!)
ويبشوك IDE | بيئة تطوير متكاملة (IDE) تعتمد على المتصفح لـ Chuck
تشونيتي | تشاك في الوحدة
شونريال | تشاك في محرك غير واقعي (جديد!)
تشوغل | مكتبة رسومات ChuckK (جديدة!)
من الممكن دمج ChucK core (المترجم، الجهاز الظاهري، محرك التوليف) كمكون/مكتبة ضمن مضيفي برامج c++ الآخرين. يمكن أن يكون هذا مفيدًا لإضافة وظائف ChucK إلى أنظمة البرامج الخاصة بك أو لإنشاء مكونات إضافية جديدة. لمعلوماتك، تتضمن جميع الأدوات المتنوعة المدرجة في القسم السابق ChucK في هذا النموذج الأساسي/المضيف: بما في ذلك سطر الأوامر، وminiAudicle، وUnity، وUnreal Engine، وWebAssembly؛ بالإضافة إلى ذلك، تم دمج ChuckK مع openFrameworks، وتطبيقات iOS/Android، والأنظمة المدمجة، وفي أنظمة اللغات الهجينة، على سبيل المثال، FaucK (FAUST + ChucK)، وChucKDesigner (ChucK في TouchDesigner)، وchuck~ (ChucK في Pure Data)، وchuck~ ( تشاك في ماكس/MSP).
لإظهار كيفية إجراء هذا التكامل، قمنا بإنشاء سلسلة من الأمثلة في C++ لإظهار كيفية دمج ChucK في أي مضيف C++. أبسط هذه الأمثلة، example-1-minimal.cpp، ينشئ الحد الأدنى من مضيف ChucK في C++ في حوالي 20 سطرًا من التعليمات البرمجية. توضح الأمثلة اللاحقة إضافة الصوت في الوقت الفعلي، واتصالات C++/ChucK باستخدام ChucK globals، والتحكم في ChucK من C++، على التوالي. يمكن العثور على أمثلة المضيف هذه في مجلد src/host-examples/ لهذا المستودع. لمزيد من الاستخدام المتقدم، قم بمراجعة الأدوات المتنوعة في نظام ChucK البيئي كما هو مذكور أعلاه في القسم السابق. للبدء في إنشاء أمثلة المضيف هذه:
cd src/host-examples
make
من الممكن أيضًا إنشاء نواة ChucK فقط (المترجم والجهاز الظاهري ومحرك التوليف)، بدون مضيف وبدون أي إدخال/إخراج صوتي في الوقت الفعلي خاص بالمنصة. يمكن أن تكون هذه نقطة بداية مفيدة لدمج نواة ChucK في الأنظمة المضيفة الحالية التي تحتوي بالفعل على إدخال/إخراج صوتي. لإنشاء نواة ChucK في وضع "الفانيليا":
cd src/core
make vanilla
كود مصدر ChucK مرخص بشكل مزدوج بموجب ترخيص MIT وترخيص GNU General Public 2.0 (أو أي إصدار أحدث). يمكنك اختيار أي ترخيص إذا كنت تستخدم هذا العمل.
تم إنشاء ChuckK في أوائل العقد الأول من القرن الحادي والعشرين في جامعة برينستون على يد Ge Wang وPerry R. Cook، بينما كان Ge حاصلاً على درجة الدكتوراه. طالب ينصحه بيري في قسم علوم الكمبيوتر. تم إصدار الإصدار الأول من ChuckK بموجب ترخيص GPL في عام 2003. وقد ساهم العديد من الباحثين والمعلمين والفنانين في تطور ChuckK على مر السنين. أنشأ سبنسر سالازار miniAudicle، وهي بيئة تطوير متكاملة قائمة على واجهة المستخدم الرسومية لـ ChucK في عام 2004 (يظل IDE هذا، بالإضافة إلى إصدار سطر الأوامر من ChucK، إلى حد كبير هو كيفية توزيع ChucK واستخدامه اليوم). بدأت أوركسترا برينستون للكمبيوتر المحمول (PLORk)، التي أسسها دان ترومان وبيري كوك في عام 2005، في استخدام ChuckK للتدريس بالإضافة إلى تصميم الآلات والصوت. في عام 2006، أنشأت ريبيكا فيبرينك وجي وانغ إطار التحليل الصوتي الخاص بـ ChucK، والذي تم التعبير عنه من خلال محللات الوحدات - نظير التحليل لمولدات الوحدات. انضم Ge إلى هيئة التدريس في CCRMA بجامعة ستانفورد في عام 2007، وتم توزيع أبحاث وتطوير ChuckK، مع المطورين في برينستون، وستانفورد، وأماكن أخرى. تأسست Stanford Laptop Orchestra (SLOrk) في عام 2008 في CCRMA، حيث استمر ChuckK في كونه أداة لتصميم الآلات وتعليمها. في نفس العام، تم تأسيس شركة Smule الناشئة للموسيقى المحمولة، والتي استخدمت ChucK على iPhone (الاسم الرمزي "ChiP") كمحرك صوتي في الوقت الفعلي لتطبيقاتها المبكرة: Ocarina، وSonic Lighter، وZephyr، وLeaf Trombone: المرحلة العالمية. وفي الوقت نفسه، واصل ChuckK شق طريقه إلى مناهج موسيقى الكمبيوتر، بما في ذلك جامعات ستانفورد، وبرينستون، وكالارتس. في عام 2015، نُشر كتاب البرمجة للموسيقيين والفنانين الرقميين: إنشاء الموسيقى باستخدام ChuckK ، من تأليف أجاي كابور، وبيري كوك، وسبنسر سالازار، وجي وانغ. في نفس الوقت تقريبًا، قدم Kadenze الدورة التدريبية عبر الإنترنت مقدمة إلى البرمجة الصوتية في الوقت الفعلي في ChuckK. قام رومان ميشون وجي وانج بدمج FAUST وChucK لإنشاء FaucK. في عام 2017، أنشأ جاك أثرتون Chunity، والتي تمكن الشخص من برمجة ChuckK داخل إطار تطوير لعبة Unity. في عام 2018، كتب جي عن تشاك في التصميم الفني: التكنولوجيا بحثًا عن السمو ، وهو كتاب فكاهي عن أهمية الوعي الثقافي في تشكيل التكنولوجيا. يعمل ChucK الآن أصلاً في متصفحات الويب (WebChucK) ويمكن برمجته مباشرة في WebChucK IDE.
تم توثيق ChuckK على نطاق واسع في المقالات والكتب المنشورة (انظر القائمة). للحصول على نظرة عامة، راجع:
"ChucK: لغة برمجة موسيقية ذات توقيت قوي" مقتطف من الكتاب الهزلي من التصميم الفني: التكنولوجيا بحثًا عن السمو
وانغ، جي، بي آر، كوك، وس. سالازار. 2015. "ChucK: لغة موسيقى الكمبيوتر ذات التوقيت القوي" مجلة موسيقى الكمبيوتر 39: 4. دوى:10.1162/COMJ_a_00324
تم ترحيل المستندات التي لا تحتوي على تعليمات برمجية مصدرية (الأوراق، والشعارات، ومقاطع الصوت، والرسوم الهزلية) إلى مستودع وسائط تشاك.
انضم إلينا! تشاك المجتمع الخلاف | القائمة البريدية لمستخدمي ChuckK
سعيد تشوكينج!