ChucK - ChucK

ChucK
ChucK logo2.jpg
Парадигма Мультипарадигма
Разработано Гэ Ван
Впервые появился 2003 ; 18 лет назад ( 2003 )
Стабильный выпуск
1.4.0.2 / 20 июля 2020 г . ; 10 месяцев назад ( 2020-07-20 )
Печатная дисциплина Сильный
Операционные системы Кроссплатформенность
Лицензия Mac , Linux , Windows : GPL-2.0 или более поздняя
iOS : закрытый исходный код (не общедоступно)
Веб-сайт Чак .cs .princeton .edu

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

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

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

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

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

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

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

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

Пример кода

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

 // our signal graph (patch)
 SinOsc f => dac;
 // set gain
 .3 => f.gain;
 // an array of pitch classes (in half steps)
 [ 0, 2, 4, 6, 9, 10 ] @=> int hi[];
 
 // infinite loop
 while( true )
 {
     // choose a note, shift registers, convert to frequency
     Std.mtof( 65 + Std.rand2(0,1) * 43 +
         hi[Std.rand2(0,hi.cap()-1)] ) => f.freq;
 
     // advance time by 120 ms
     120::ms => now;
 }

Использует

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

Смотрите также

Рекомендации

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

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

На первый взгляд независимое освещение

Внешние ссылки

  • Домашняя страница ChucK в Принстонском университете
  • Зеркало ChucK в Стэнфордском университете
  • ChucK FLOSS инструкция