Jump to content

ЧакК

ЧакК
Чак-2023
Парадигма Мультипарадигмальность
Разработано Ге Ван
Впервые появился 2003 год ; 21 год назад ( 2003 ) [1]
Стабильная версия
1.5.2.4 / апрель 2024 г .; 4 месяца назад ( 2024-04 ) [2]
Дисциплина набора текста Сильный
ТЫ Кросс-платформенный
Лицензия Mac , Linux , Windows : GPL-2.0 или более поздняя версия.
iOS : закрытый исходный код (не общедоступный)
Веб-сайт патрон .cs .Принстон .edu

ChucK — это параллельный, строго синхронизированный язык аудиопрограммирования для синтеза, композиции и исполнения в реальном времени. [3] который работает на Linux , Mac OS X , Microsoft Windows и iOS . Он разработан для обеспечения удобства чтения и гибкости для программиста по сравнению с другими соображениями, такими как чистая производительность. Он изначально поддерживает детерминированный параллелизм и несколько одновременных динамических скоростей управления. Еще одной ключевой особенностью является возможность « живого» кода ; добавление, удаление и изменение кода «на лету» во время работы программы, без остановки или перезапуска. Он имеет очень точную модель синхронизации/параллелизма, обеспечивающую сколь угодно высокую степень детализации. Он предлагает композиторам и исследователям мощный и гибкий инструмент программирования для создания и экспериментирования со сложными программами синтеза звука , а также интерактивного управления в реальном времени. [4]

ChucK был создан и разработан Ге Вангом , когда он был аспирантом и работал с Перри Р. Куком . [1] ChucK распространяется свободно на условиях GNU General Public License в Mac OS X , Linux и Microsoft Windows . На iPhone и iPad ChiP (ChucK для iPhone) распространяется по ограниченной лицензии с закрытым исходным кодом и в настоящее время не лицензируется для широкой публики. Однако основная команда заявила, что хотела бы изучить «способы открыть ChiP, создав благоприятную среду для всех». [5]

Особенности языка

[ редактировать ]

Язык программирования ChucK — это объектно-ориентированный язык, во многом похожий на C, со строгой статической типизацией .

ChucK отличается следующими характеристиками: [6]

  • в реальном времени. Прямая поддержка синтеза звука
  • Мощная и простая параллельного программирования. модель
  • Унифицированный механизм синхронизации для многоскоростной обработки событий и управления.
  • Синтаксис языка, который поддерживает синтаксис и семантику слева направо в операторах программы.
  • Точная синхронизация: строго синхронизированная модель синхронизации выборки.
  • Программы динамически компилируются в байт-код виртуальной машины ChucK .
  • Среда выполнения, поддерживающая оперативное программирование .
  • Оператор ChucK (=>), который можно использовать несколькими способами для «перебрасывания» любого упорядоченного потока данных слева направо.

Стандартные библиотеки ChucK предоставляют:

  • MIDI- вход и выход.
  • Open Sound Control . Поддержка
  • HID-подключение.
  • Генераторы модулей (UGens) — т.е. генераторы, огибающие, инструменты синтеза ugens, фильтры и т. д.
  • Анализаторы модулей (UAnae) — блоки, которые выполняют функции анализа входных аудиосигналов и/или метаданных и выдают результаты анализа метаданных на выходе. [7] - т.е. БПФ/ОБПФ, спектральный поток /центроид, среднеквадратичное значение и т. д.
  • Возможности последовательного ввода-вывода — например, Arduino .
  • Возможности файлового ввода-вывода.

Пример кода

[ редактировать ]

Ниже представлена ​​простая программа ChucK, генерирующая звук и музыку:

 // график сигнала (патч)  SinOsc s => JCRev r => dac; .2 => усиление;  // сухой/обработанный микс (для реверберации)  .1 => r.mix;   // массив классов высоты звука (полутонов)  [ 0, 2, 4, 7, 9, 11 ] @=>  int  hi[];   // делаем навсегда:   while  (  true  ) {      // выбираем ноту, регистры сдвига, конвертируем в частоту      Стандарт.mtof( 45 + Стандарт.rand2(0,3) * 12 +         hi[Std.rand2(0,hi.cap()-1)] ) => s.freq;       // время продвижения      120::  мс  =>  сейчас  ; } 

Использование

[ редактировать ]

ChucK использовался в выступлениях Принстонского оркестра ноутбуков (PLOrk) и для разработки Smule приложений , включая их эмулятор окарины . [8] Организаторы PLOrk отчасти объясняют уникальность своих выступлений живым программированием, которое они могут выполнять с ChucK. [9]

См. также

[ редактировать ]
  1. ^ Jump up to: а б Дин, RT (2009). Оксфордский справочник по компьютерной музыке . Оксфордские справочники в музыкальной серии. Издательство Оксфордского университета, США. п. 57. ИСБН  0-19-533161-3 .
  2. ^ «github.com/ccrma/chuck» . Проверено 18 января 2021 г.
  3. ^ Ван, Ге (2008). Язык аудиопрограммирования ChucK: четко рассчитанная по времени и оперативная среда/менталитет (доктор философии). Принстонский университет.
  4. ^ «ChucK: строго синхронизированный, параллельный и оперативный язык музыкального программирования» . Архивировано из оригинала 18 ноября 2003 г. Проверено 6 сентября 2013 г. ...предлагает композиторам, исследователям и исполнителям мощный инструмент программирования для создания и экспериментирования со сложными программами синтеза/анализа звука и интерактивной музыкой в ​​реальном времени.
  5. ^ Ван, Ге. «Чуккианские поздравления и новости!» . список рассылки chuck-users . Принстонский университет . Проверено 24 мая 2011 г.
  6. ^ Ван, Г. и П. Кук (2003). «ChucK: параллельный, оперативный язык аудиопрограммирования» (PDF) . Материалы Международной компьютерной музыкальной конференции .
  7. ^ «Руководство ФЛОСС» . Руководства по использованию зубной нити . Проверено 18 января 2021 г.
  8. ^ Кирн, Питер (22 июля 2009 г.). «Интервью: Ге Ван из Smule о приложениях для iPhone, окаринах и демократизации музыкальных технологий» . Создание цифровой музыки . Проверено 24 мая 2011 г.
  9. ^ Петерсен, Бретань (11 июня 2008 г.). «Оркестр ноутбука создает (звуковые) волны» . Журнал ПК . Архивировано из оригинала 11 июля 2017 г. Проверено 25 августа 2017 г. Еще одним отличием PLOrk с самого начала было использование текстовой программы ChucK, разработанной аспирантом Принстона. ChucK позволяет пользователю писать код быстро — аналогично живому кодированию — и «на лету» во время выступления, обеспечивая спонтанность и взаимодействие в реальном времени, что важно при живом исполнении музыки. «ChucK — единственный известный мне язык, который с самого начала был разработан для облегчения этой задачи», — говорит Труман. Программа также является «параллельной», что означает, что она может обрабатывать множество различных процессов, происходящих одновременно. Его «врожденное чувство времени» позволяет исполнителям общаться во время живых репетиций и выступлений, говорит он, добавляя, что многие другие музыканты, играющие на ноутбуках, вероятно, используют такую ​​программу, как Max/MSP (которую PLOrk использует в дополнение к ChucK) или другую широко доступную коммерческую программу. Сегодня некоторые другие оркестры ноутбуков, в том числе Стэнфордский оркестр ноутбуков (SLOrk), вдохновленный PLOrk, также используют ChucK.

Дальнейшее чтение

[ редактировать ]

Литература авторов

[ редактировать ]

Казалось бы, независимое освещение

[ редактировать ]
[ редактировать ]


Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: c331693005de85fe14a5d5ac4d66d475__1714886820
URL1:https://arc.ask3.ru/arc/aa/c3/75/c331693005de85fe14a5d5ac4d66d475.html
Заголовок, (Title) документа по адресу, URL1:
ChucK - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)