ChucK - это параллельный язык программирования аудио с жесткой синхронизацией для синтеза, композиции и производительности в реальном времени [3], который работает в Linux , Mac OS X , Microsoft Windows и iOS . Он разработан для обеспечения удобочитаемости и гибкости для программиста по сравнению с другими соображениями, такими как чистая производительность. Он изначально поддерживает детерминированный параллелизм и множественные одновременные скорости динамического управления. Еще одна ключевая особенность - это возможность живого кода.; добавление, удаление и изменение кода «на лету» во время работы программы без остановки или перезапуска. Он имеет очень точную модель синхронизации / параллелизма, обеспечивающую сколь угодно мелкую детализацию. Он предлагает композиторам и исследователям мощный и гибкий инструмент программирования для создания и экспериментирования со сложными программами синтеза звука , а также интерактивного управления в реальном времени. [4]
Парадигма | Мультипарадигма |
---|---|
Разработано | Гэ Ван |
Впервые появился | 2003 [1] |
Стабильный выпуск | 1.4.0.2 / 20 июля 2020 г . [2] |
Печатная дисциплина | Сильный |
Операционные системы | Кроссплатформенность |
Лицензия | Mac , Linux , Windows : GPL-2.0 или более поздняя iOS : закрытый исходный код (не общедоступно) |
Веб-сайт | Чак |
ChucK был создан и главным образом разработан Ге Вангом, аспирантом, работающим с Перри Р. Куком . [1] ChucK распространяется бесплатно в соответствии с условиями Стандартной общественной лицензии GNU для Mac OS X , Linux и Microsoft Windows . На iPhone и iPad программа ChiP (ChucK для iPhone) распространяется по ограниченной лицензии с закрытым исходным кодом и в настоящее время не лицензирована для широкой публики. Тем не менее, основная группа заявила, что хотела бы изучить «способы открыть ChiP, создав благоприятную среду для всех». [5]
Особенности языка
Язык программирования ChucK - это объектно-ориентированный язык, в некоторой степени похожий на C, со строгой статической типизацией .
ChucK отличается следующими характеристиками: [6]
- Прямая поддержка синтеза звука в реальном времени
- Мощная и простая модель параллельного программирования
- Единый механизм синхронизации для многоскоростной обработки событий и управления.
- Синтаксис языка, который поддерживает синтаксис и семантику слева направо в операторах программы.
- Точная синхронизация: строго синхронизированная по времени модель синхронизации с выборкой.
- Программы динамически компилируются в байт-код виртуальной машины ChucK .
- Среда выполнения, поддерживающая программирование на лету .
- Оператор ChucK (=>), который можно использовать несколькими способами для «отбрасывания» любого упорядоченного потока данных слева направо.
Стандартные библиотеки ChucK предоставляют:
- MIDI вход и выход.
- Поддержка Open Sound Control .
- СПРЯТАННАЯ связь.
- Генераторы единиц (UGens) - т.е. осцилляторы, огибающие, ugens инструментария синтеза, фильтры и т. Д.
- Модульные анализаторы (UAnae) - блоки, которые выполняют функции анализа входных аудиосигналов и / или метаданных и выдают результаты анализа метаданных на выходе [7] - то есть БПФ / ОБПФ, спектральный поток / центроид, среднеквадратичное значение и т. Д.
- Возможности последовательного ввода-вывода - например, Arduino .
- Возможности файлового ввода-вывода.
Пример кода
Ниже приводится простая программа ChucK, которая генерирует звук и музыку:
// наш сигнальный график (патч) SinOsc f => dac; // устанавливаем усиление .3 => f.gain; // массив классов высоты тона (с половинными шагами) [0, 2, 4, 6, 9, 10] @ => int hi []; // бесконечный цикл while ( true ) { // выбираем ноту, сдвигаем регистры, конвертируем в частоту Std.mtof (65 + Std.rand2 (0,1) * 43 + привет [Std.rand2 (0, hi.cap () - 1)]) => f.freq; // увеличиваем время на 120 мс 120 :: мс => сейчас ; }
Использует
ChucK использовался в выступлениях Princeton Laptop Orchestra (PLOrk) и для разработки приложений Smule , включая их эмулятор окарины . [8] Организаторы PLOrk объясняют уникальность своих выступлений живым кодированием, которое они могут выполнять с ChucK. [9]
Смотрите также
- Сравнение сред аудиосинтеза
- Соник Пи
- Чистые данные
Рекомендации
- ^ а б Дин, RT (2009). Оксфордский справочник компьютерной музыки . Оксфордские справочники в музыкальной серии. Oxford University Press, США. п. 57. ISBN 0-19-533161-3.
- ^ "github.com/ccrma/chuck" . Проверено 18 января 20 .
- ^ Ван, Ге (2008). Язык программирования ChucK: среда / менталитет «на лету» и «на лету» (доктор философии). Университет Принстона.
- ^ "ChucK: язык программирования музыки с синхронизацией, одновременным и оперативным программированием" . Проверено 6 сентября 2013 .
... предлагает композиторам, исследователям и исполнителям мощный инструмент программирования для создания и экспериментов со сложными программами синтеза / анализа звука и интерактивной музыкой в реальном времени.
- ^ Ван, Ге. "ChucKian приветствия и обновления!" . Список рассылки chuck-users . Принстонский университет . Проверено 24 мая 2011 .
- ^ Ван Г. и П. Кук (2003). «ChucK: язык параллельного программирования на лету» (PDF) . Материалы Международной компьютерной музыкальной конференции .
- ^ «Руководство FLOSS» . Flossmanuals . Проверено 18 января 20 .
- ^ Кирн, Питер (22 июля 2009 г.). «Интервью: Ге Ван из Smule о приложениях для iPhone, окаринах и демократизации музыкальных технологий» . Создавайте цифровую музыку . Проверено 24 мая 2011 .
- ^ Петерсен, Бретань (11.06.2008). «Оркестр портативных компьютеров излучает (звуковые) волны» . Журнал ПК .
Еще одним отличием PLOrk с самого начала было использование текстовой программы под названием ChucK, разработанной аспирантом Принстона. ChucK позволяет пользователю быстро кодировать - аналогично живому кодированию - и «на лету» для выступления, обеспечивая спонтанность и взаимодействие в реальном времени, что важно при исполнении живой музыки. «ChucK - единственный известный мне язык, который с самого начала был разработан для облегчения этого», - говорит Труман. Программа также является «параллельной», что означает, что она может одновременно обрабатывать множество различных процессов. Его «врожденное чувство времени» позволяет исполнителям общаться во время живых репетиций и выступлений, говорит он, добавляя, что многие другие музыканты, играющие на переносных компьютерах, вероятно, используют программу вроде Max / MSP (которую PLOrk использует в дополнение к ChucK) или другую широко доступную коммерческую программу. Сегодня некоторые другие оркестры портативных компьютеров, включая Stanford Laptop Orchestra (SLOrk), который был непосредственно вдохновлен PLOrk, также используют ChucK.
дальнейшее чтение
Литература его авторов
- Ван, Г. (2018). Искусный дизайн: технологии в поисках возвышенного . Издательство Стэнфордского университета. ISBN 978-1503600522.
- Wang, G .; Cook, P .; Салазар, С. (2015). «ChucK: язык компьютерной музыки с жестким временным графиком» (PDF) . Компьютерный музыкальный журнал .
- Ван, Г. (2008). "Язык программирования аудио ChucK" . Докторская диссертация, Принстонский университет .
- Ванга, G; Фибринк, Р; Кук, П. (2007). «Объединение анализа и синтеза на языке программирования ChucK» (PDF) . Материалы Международной компьютерной музыкальной конференции .
- Ванга, G; Misra, A .; Капур, А; Кук, П. (2005). "Yeah ChucK it! => Динамическое, управляемое отображение интерфейса" (PDF) . Труды Международной конференции по новым интерфейсам для музыкального выражения .
- Wang, G .; Cook, P .; Мисра, А (2005). «Разработка и внедрение языка программирования ChucK» (PDF) . Материалы Международной компьютерной музыкальной конференции .
- Wang, G .; Кук, П. (2004). «Audicle: контекстно-зависимая среда / менталитет для программирования аудио на лету» (PDF) . В материалах Международной компьютерной музыкальной конференции .
- Wang, G .; Кук, П. (2004). «Программирование на лету: использование кода как выразительного музыкального инструмента» (PDF) . Труды Международной конференции по новым интерфейсам для музыкального выражения .
- Wang, G .; Кук, П. (2003). «ChucK: язык параллельного программирования на лету» (PDF) . Материалы Международной компьютерной музыкальной конференции .
На первый взгляд независимое освещение
- Грэм Моррисон, (2009) Создавайте choons с Чаком . Устав от одной и той же старой музыки в чартах, мы создаем собственную музыку из серии псевдослучайных чисел. Проблема формата Linux 125
- Алан Блэквелл и Ник Коллинз, Язык программирования как музыкальный инструмент П. Ромеро, Дж. Гуда, Э. Акоста Чапарро и С. Брайанта (ред.). Proc. PPIG 17, стр. 120–130
- RT Dean , под ред. (2009). Оксфордский справочник компьютерной музыки . Издательство Оксфордского университета. стр. 27 и 580. ISBN 978-0-19-533161-5.
Внешние ссылки
- Домашняя страница ChucK в Принстонском университете
- Зеркало ChucK в Стэнфордском университете
- ChucK FLOSS инструкция