company_banner

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


    Источник

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

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

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

    Субкультура программистов




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

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

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

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

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

    Визуальные и звуковые эффекты



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

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

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

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

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

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

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

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



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

    Создание музыки




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

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

    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, инструментом для создания алгоритмических шаблонов.
    Mail.ru Group
    819,34
    Строим Интернет
    Поделиться публикацией

    Комментарии 12

      –17
      Простите, но нет и не было никогда никакого алго-рейва (откуда вообще афтор почерпнул?).

      Программерские посиделки ничего общшего не имели и не имеют с psy и techno rave пати. Афтар похоже никогда не был участником подобных. Да, множество программеров и девелоперов встречаются, только совершенно НЕ в тех паттернах что пишет любитель-писатиль-афтар.

      какой гейвдем??? ты калека хоть раз был на 1й пати? вижу что никогда не был. И не будешь.
        –1
        Да частенько алгорейв-пати с лайв кодингом, что в москве, что в питере бывают. И в других больших городах (не факт, что в россии, конечно) точно.
        Последний из более-менее больших фестов, где оно было — июльская гамма в питере. Вроде бы вполне сойдет за пати, не?
        +1
        Спасибо за статью. Интересно и познавательно. Когда-то писал музыку в виндовозном редакторе на 486-й машине :) Было прикольно.
        По диджеям. Есть интересные проекты, типа Джузеппе Оттовияни. Он не сводит треки, а пишет музыку вживую. Получается весьма интересно. А тут еще и кодинг есть :)
          –2

          Если заменить слова "ты калека", на вы коллега, то будет намного уважительнее к автору, тем более, что он старался и выложил, с моей точки зрения, оченьинтересную статью.

            +6
            Как программисты устраивают вечеринки

            Так же, как и непрограммисты. Никаких претензий к статье, но название, на мой взгляд, неудачное.
              +1
              Джо Армстронг за пультом (rip)

                +5
                Знаете, с годами начал замечать такую тенденцию, что технические ограничения, которые были у нас в начале, они с одной стороны поднимали порог входа до уровня хардкор, тк порою приходилось оптимизировать невозможные вещи. Это были чисто кодерские понты, которые обыватель был близко не в состоянии оценить даже. Но при всём при этом, эстетическая составляющая была времени под стать, и во многом даже пережила своё время.
                Люди далёкие от драматургии, умудрялись делать шоу даже из банальных эффектов, даже не так, оно само получалось странным образом.

                Ныне же, колоссальные мощности, предельно сниженные входные пороги, и что?
                Эстетика где? На каком уровне её искать? Этот «лайв-кодинг» по сути " детская декламация стихов с табуретки" (была такая советская традиция), «незнайка играющей не трубе».
                Да, публике пару раз можно представить и такой перформанс, но тут искусство в представлять, об этом можно написать, тут написать — искусство. Но если это выглядит банально и звучит как банальная тягомотина, то может-быть это она и есть.
                  0
                  Согласен по большей части. Но если мы посмотрим тот же Черный квадрат, но это тоже далеко от искусства. Или перформансы по рисованию картин частями тела вживую. Просто народ наелся уже традиционным искусством и ищет чего-то нового. Кто знает, может через 3-4 года на сцене вообще будет стоять только коробочка и ИИ, который будет музыку делать, а заодно и мониторить реакцию аудитории :)
                    0
                    Первые перфомансы по рисованию картин телами вживую были ещё в начале 1900х.
                    А мониторинг настроения с помощью ии — почему нет?
                    Заодно можно собрать данные, распознать лица и добавить в госкарту конкретных людей.
                    «Сегодня за вертушками — AIJ Adrenaline и AIJ Наркоконтроль!»
                  0
                  Я вот чуть больше года как начал увлекаться написанием электронной музыки, и по правде говоря, у меня уже возникала мысль, мол, я ж умею программировать, к черту мне все эти интерфейсы непонятные. Но, посмотрев языки программирования для написания музыки я понял, что они даже близко не стоят.
                  Согласитесь, о каком лайв перформансе может идти речь, когда для генерации звука тебе нужно напечатать какую-то строчку. Все таки куда удобнее использовать фейдеры, нобы, педы, клавиши и прочее.
                  Такое искусство имеет место быть, но разве что искусством это называть не надо. Что-то вроде создания демо сцен, не более.
                  Серьезные треки все также будут писать либо в DAW, либо на специальных железках, разработанных именно под это. И на самом деле интерфейсы, что физические, что виртуальные (у секвенсоров, плагинов) куда удобнее и понятнее, чем код. А ведь мы говорим с вами про искусство. Тут наоборот нужно максимально облегчать взаимодействие, чтобы полностью уйти в творческий процесс, не зацикливаясь на технической части.
                  И к тому же, не очень хочется заставлять слушать людей багованную музыку, а без багов код не напишешь.
                  В общем, на эту тему можно долго писать, но давайте просто расставим все точки над И. Написание музыки через ЯП — это что-то наподобие брейнфака. Не стоит как-то стараться связать это с искусством.
                    0
                    Я лично видел, как DJ делал ремикс живьем в Nuendo от Steinberg, используя мышку и клавиатуру ноута. И это было нереально круто! Понятное дело, что он делал это не с нуля. Были какие-то приготовления сделаны заранее. Сейчас он правда перешел на Ableton :)
                    +1
                    Если работа традиционного диджея строится вокруг правильного сведения треков

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

                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                    Самое читаемое