Хабрахабр

Алгорейв: как программисты устраивают вечеринки


Источник

Алгорейв — это написание и использование алгоритмов, генерирующих танцевальную музыку в режиме реального времени перед физически присутствующей аудиторией. Разработчики будущего пишут не просто код — они создают алгоритмический рейв.

Известно, что даже нейросеть способна создавать музыку, которую сложно отличить от творчества талантливого композитора. Генеративная музыка — явление не новое. Однако алгорейв имеет свои отличительные особенности.

При этом лайвкодеры транслируют происходящее на экране ноутбука.
Если работа традиционного диджея строится вокруг правильного сведения треков (конечно, если он не крутит с флешки готовый микс), то алгорейверы импровизируют, допускают и исправляют ошибки прямо во время представления.

Сообщество лайвкодеров-музыкантов разнообразно и стремится участвовать в широком спектре художественных практик, включая аудиовизуальное творчество, робототехнику, танцы, научные исследования и образование, смешивая эти практики.

Алгорейверы не всегда являются «рейверами» как таковыми, они не считают себя «будущим танцевальной музыки», но вдохновляются духом «полуанонимов», играющих для культурного объединения безымянной толпы. Что если вместо того, чтобы воспринимать «рейв» как «мероприятие», «развлечение» или «музыкальную вечеринку», относиться к нему как к потоку информации, к которому можно подключиться в режиме реального времени?

Так, на их выступлениях зрители, помимо проецируемого кода, могут наблюдать визуальные эффекты, и даже танцы роботов. Например, музыканты Aphex Twin и Autechre уже давно используют в своей музыке алгоритмические подходы, но в более традиционном смысле. Все элементы шоу не обязательно прописывать вживую — первичной остается работа над разнообразной музыкальной составляющей.

В узких кругах медленно эволюционируют приложения, отметившие уже 15-летний юбилей. Почти каждый представитель этой субкультуры использует бесплатный софт с открытым исходным кодом. Однако некоторые музыканты предпочитают сами писать программы для себя.

Алгорейв постепенно становится средой для обмена идеями — любой может воспользоваться всем доступным софтом или написать что-то сам.


Платформа Hydra генерирует трип-визуальные глич-эффекты.

Музыкант создает на своем компьютере отдельные шумы (ударные, бас), а специальный софт объединяет звуки на основе алгоритмов. С практической точки зрения всё происходит достаточно просто: загружается, к примеру, kitBleepFtech, дается команда highGlobalDensity, и комната заполняется грохочущим басом.

Если попытаться создать тот же трек в другой раз, с использованием тех же элементов, то композиция будет звучать знакомо, но получит другую структуру. В таком симбиозе человека и машины остается огромное пространство для творчества.

Написание видеомиксов, гармонично взаимодействующих с музыкой, — отдельный вид искусства внутри субкультуры. Помимо музыки большое внимание уделяется виджеингу.

API основан на аналоговом модульном синтезе, в котором множество визуальных источников (осцилляторы, камеры, окна приложений) могут быть преобразованы, модулированы и объединены. Так, Hydra, созданная с использованием WebRTC и WegGL, позволяет каждому подключенному браузеру, устройству или человеку выводить видеосигнал или поток, а также получать и изменять потоки от других браузеров, устройств или людей.

Лайв-трансляция с Таймс-сквер + трансляция из аквариума + код в Hydra: https://ojack.github.io/articles/hydra/times-square.mp4

Остальные функции преобразуют либо координаты, либо цвета. В Hydra базовым элементом является преобразование координат в цвет.

Демонстрация «гидры» во время алгорейва на международной конференции по лайвкодингу, Испания, Мадрид, 2019:

По этим причинам многие среды лайвкодинга используют специфичные, уникальные, гибкие языки. Среды программирования, поддерживающие лайвкодинг, требуют способности быстро создавать, копировать и дублировать аудиовизуальный контент, а также предоставлять обратную связь исполнителям и аудитории. Ниже мы рассмотрим несколько флагманских программ алгорейва.

Первая версия появилась в 1996 году. SuperCollider — невероятно мощный кросс-платформенный opensource-аудиодвижок и язык программирования, используемый для создания музыки, генерирования визуальных эффектов и лайвкодинга. Сейчас он поддерживается и развивается сообществом под лицензией GNU General Public License.

Сервер синтеза SuperCollider работает независимо и может управляться с помощью других языков, например, Haskell. Язык является объектно-ориентированным, основан на Smalltalk с синтаксисом C.

SuperCollider включает три основных компонента:

  • Scsynth — аудиосервер, работающий в реальном времени. Он имеет сотни генераторов (UGens) для анализа, синтеза и обработки аудио. Можно написать свои собственные UGens на C++, и добавить в репозиторий.
  • Sclang — интерпретируемый язык программирования, ориентированный на звук, но не ограниченный какой-либо конкретной областью. Sclang управляет Scsynth через пакетный протокол Open Sound Control. Его можно использовать для поиска новых методов синтеза звука, для подключения приложения к внешнему оборудованию, в том числе MIDI-контроллерам, для написания графических интерфейсов и визуальных дисплеев, а также для экспериментов по программированию. Имеет набор пользовательских расширений под названием Quarks.
  • Scide — редактор для Sclang со встроенной справочной системой.

ChucK

Кросс-платформенный язык программирования для синтеза звука в реальном времени и создания музыки. ChucK поддерживает визуализации, MIDI, Open Sound Control, HID- устройства, многоканальный звук, а также имеет возможность добавлять и изменять код, не прерывая процесс генерирования музыки.

Он легок для изучения и предлагает мощный инструмент программирования для создания и экспериментов со сложными программами синтеза и анализа звука в реальном времени.

Fluxus

Среда быстрого создания прототипов для 3D-графики, звука и игр. Расширяет возможности мультипарадигменного языка Racket с помощью графических команд, может использоваться в собственной среде лайвкодинга или в среде IDE DrRacket.

Al-Jazari

Среда программирования, написанная на Fluxus, — лайвкодинг внутри лайвкодинга. Управляется с помощью геймпада, используется простой графический язык. Имеется возможность отправлять команды роботам на экране для их взаимодействия друг с другом и перемещения по местности, заполненной аудиотриггерами. Рабочий код отображается в виде пузырьков над каждым роботом, и может быть отредактирован.

В программе могут работать (или играть) одновременно несколько пользователей (в первой версии, появившейся в 2008-м, одновременно могли находиться четыре человека).

Код, модели и текстуры Al-Jazari выпускаются бесплатно, тем не менее, программа не предназначена для использования в качестве законченного ПО, поэтому для настройки необходимо скомпилировать и установить различные пользовательские программы (подробнее об этом смотрите на странице проекта).

Алгорейв — это искусство, в котором переплелись элементы хакинга, геймдева и киберпанка. Сообщество лайвкодинга поощряет самосовершенствование, поэтому все инструменты доступны и постоянно поддерживаются в актуальном состоянии. По ссылкам, указанным в статье, вы найдете больше информации о том, как заняться лайвкодингом самостоятельно. Можете также попробовать поработать с TidalCycles, инструментом для создания алгоритмических шаблонов.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть