Введение

SuperCollider — это среда и язык программирования, впервые представленный в 1996 году Джеймсом Маккартни для синтеза звука в реальном времени и алгоритмического сочинения музыки. С тех пор он превратился в систему, используемую и разрабатываемую как учеными, так и художниками, работающими со звуком. Это динамический язык программирования, предоставляющий платформу для акустических исследований, алгоритмической музыки, интерактивного программирования и лайв-кодинга. Изначально выпущенный под лицензией GPL 2.0 или более поздней версии в 2002 году, а начиная с версии 3.4 – под лицензией GPL 3.0 или более поздней версии, SuperCollider является бесплатным и открытым программным обеспечением.

Язык программирования SuperCollider (англ.

Язык программирования SuperCollider — это динамически типизированный, с автоматической сборкой мусора, однонаследственный объектно-ориентированный и функциональный язык, похожий на Smalltalk, предназначенный для разработки как пользовательского программного обеспечения, так и специализированных фреймворков. В отношении предметной области он является одновременно универсальным (например, позволяет представлять свойства, такие как время и высота тона, на различных уровнях абстракции) и содержит множество примеров реализации для конкретных задач.

Клиенты

Поскольку сервер управляется с помощью Open Sound Control (OSC), для управления сервером можно использовать различные приложения. Обычно используются среды SuperCollider (см. ниже), но также можно использовать и другие системы, поддерживающие OSC, такие как Pure Data, Overtone (на основе Scala), Overtone (на основе Clojure) и Sonic Pi. Они отличаются от сред разработки, упомянутых ниже, тем, что не предоставляют интерфейс к языку программирования SuperCollider, а вместо этого напрямую взаимодействуют с аудиосервером и предлагают собственные способы реализации творческих замыслов пользователя, а также поддерживают платформы iOS.

Живое кодирование

Как универсальный динамический язык программирования, SuperCollider можно использовать для живого кодирования, то есть для выступлений, в которых исполнитель модифицирует и выполняет код в реальном времени. Определенные типы прокси служат высокоуровневыми заполнителями для объектов синтеза, которые можно заменять или изменять во время работы программы. Среды позволяют совместно использовать и изменять объекты и объявления процессов по сети. Различные библиотеки расширений поддерживают различные уровни абстракции и доступ к звуковым объектам, например, библиотека dewdrop позволяет создавать и модифицировать псевдоклассы и псевдообъекты в реальном времени.