ЧакК
Парадигма | Мультипарадигмальность |
---|---|
Разработано | Ге Ван |
Впервые появился | 2003 год [1] |
Стабильная версия | 1.5.2.4 / апрель 2024 г [2] |
Дисциплина набора текста | Сильный |
ТЫ | Кросс-платформенный |
Лицензия | Mac , Linux , Windows : GPL-2.0 или более поздняя версия. iOS : закрытый исходный код (не общедоступный) |
Веб-сайт | патрон |
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]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Jump up to: а б Дин, RT (2009). Оксфордский справочник по компьютерной музыке . Оксфордские справочники в музыкальной серии. Издательство Оксфордского университета, США. п. 57. ИСБН 0-19-533161-3 .
- ^ «github.com/ccrma/chuck» . Проверено 18 января 2021 г.
- ^ Ван, Ге (2008). Язык аудиопрограммирования ChucK: четко рассчитанная по времени и оперативная среда/менталитет (доктор философии). Принстонский университет.
- ^ «ChucK: строго синхронизированный, параллельный и оперативный язык музыкального программирования» . Архивировано из оригинала 18 ноября 2003 г. Проверено 6 сентября 2013 г.
...предлагает композиторам, исследователям и исполнителям мощный инструмент программирования для создания и экспериментирования со сложными программами синтеза/анализа звука и интерактивной музыкой в реальном времени.
- ^ Ван, Ге. «Чуккианские поздравления и новости!» . список рассылки chuck-users . Принстонский университет . Проверено 24 мая 2011 г.
- ^ Ван, Г. и П. Кук (2003). «ChucK: параллельный, оперативный язык аудиопрограммирования» (PDF) . Материалы Международной компьютерной музыкальной конференции .
- ^ «Руководство ФЛОСС» . Руководства по использованию зубной нити . Проверено 18 января 2021 г.
- ^ Кирн, Питер (22 июля 2009 г.). «Интервью: Ге Ван из Smule о приложениях для iPhone, окаринах и демократизации музыкальных технологий» . Создание цифровой музыки . Проверено 24 мая 2011 г.
- ^ Петерсен, Бретань (11 июня 2008 г.). «Оркестр ноутбука создает (звуковые) волны» . Журнал ПК . Архивировано из оригинала 11 июля 2017 г. Проверено 25 августа 2017 г.
Еще одним отличием PLOrk с самого начала было использование текстовой программы ChucK, разработанной аспирантом Принстона. ChucK позволяет пользователю писать код быстро — аналогично живому кодированию — и «на лету» во время выступления, обеспечивая спонтанность и взаимодействие в реальном времени, что важно при живом исполнении музыки. «ChucK — единственный известный мне язык, который с самого начала был разработан для облегчения этой задачи», — говорит Труман. Программа также является «параллельной», что означает, что она может обрабатывать множество различных процессов, происходящих одновременно. Его «врожденное чувство времени» позволяет исполнителям общаться во время живых репетиций и выступлений, говорит он, добавляя, что многие другие музыканты, играющие на ноутбуках, вероятно, используют такую программу, как Max/MSP (которую PLOrk использует в дополнение к ChucK) или другую широко доступную коммерческую программу. Сегодня некоторые другие оркестры ноутбуков, в том числе Стэнфордский оркестр ноутбуков (SLOrk), вдохновленный PLOrk, также используют ChucK.
Дальнейшее чтение
[ редактировать ]Литература авторов
[ редактировать ]- Ван, Г. (2018). Искусный дизайн: технологии в поисках возвышенного . Издательство Стэнфордского университета. ISBN 978-1503600522 .
- Ван, Г.; Кук, П.; Салазар, С. (2015). «ChucK: строго синхронизированный язык компьютерной музыки» (PDF) . Компьютерный музыкальный журнал .
- Ван, Г. (2008). «Язык аудиопрограммирования ChucK» . Докторская диссертация, Принстонский университет .
- Ван, Дж; Фибринк, Р.; Кук, П. (2007). «Объединение анализа и синтеза в языке программирования ChucK» (PDF) . Материалы Международной компьютерной музыкальной конференции .
- Ван, Дж; Мисра, А.; Капур, А; Кук, П. (2005). «Да, Чак! => Динамическое, управляемое отображение интерфейса» (PDF) . Материалы Международной конференции по новым интерфейсам для музыкального выражения .
- Ван, Г.; Кук, П.; Мисра, А (2005). «Проектирование и реализация языка программирования ChucK» (PDF) . Материалы Международной компьютерной музыкальной конференции .
- Ван, Г.; Кук, П. (2004). «Audicle: контекстно-зависимая среда/менталитет аудиопрограммирования, действующий в режиме реального времени» (PDF) . В материалах Международной компьютерной музыкальной конференции .
- Ван, Г.; Кук, П. (2004). «Программирование на лету: использование кода как выразительного музыкального инструмента» (PDF) . Материалы Международной конференции по новым интерфейсам для музыкального выражения .
- Ван, Г.; Кук, П. (2003). «ChucK: параллельный, оперативный язык аудиопрограммирования» (PDF) . Материалы Международной компьютерной музыкальной конференции .
Казалось бы, независимое освещение
[ редактировать ]- Грэм Моррисон, (2009) Создавайте чуны с Чаком . Устав от одной и той же старой музыки в чартах, мы создаём свою собственную музыку из серии псевдослучайных чисел. формата Linux Проблема 125
- Алан Блэквелл и Ник Коллинз, «Язык программирования как музыкальный инструмент» П. Ромеро, Дж. Гуда, Э. Акосты Чапарро и С. Брайанта (редакторы). Учеб. PPIG 17, стр. 120–130.
- RT Дин , изд. (2009). Оксфордский справочник по компьютерной музыке . Издательство Оксфордского университета. стр. 27 и 580. ISBN. 978-0-19-533161-5 .
Внешние ссылки
[ редактировать ]- Домашняя страница Чака в Принстонском университете
- Зеркало Чака в Стэнфордском университете
- Чак FLOSS инструкция