Ранее мы говорили об инструменте OpenMusic. Он позволяет писать музыку, используя объектно-ориентированный подход. Сегодня речь пойдет о людях, которые создают композиции с помощью специализированных языков программирования. И зачастую делают это «в прямом эфире».


Фото Pixino / PD

Краткая история компьютерной музыки


Первым компьютером, который использовали для создания музыки, был CSIRAC. Его спроектировала группа австралийских инженеров в конце 40-х годов. Тогда математик Джеф Хилл (Geoff Hill) разработал специальную алгоритмическую программу для синтеза музыкальных произведений. В 1951 году CSIRAC успешно исполнил популярный «Марш полковника Боги» («Colonel Bogey March»). Но на этом его музыкальные достижения закончились.

Поэтому первым «компьютерным музыкантом» считают Макса Мэтьюса (Max Mathews). Он начал воспроизводить музыку с помощью мейнфрейма IBM. Пример такой композиции:


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

Кто программирует музыку


В качестве примера можно привести инженера Эндрю Соренсена (Andrew Sorensen). Он доктор компьютерных наук и обладатель степени бакалавра в сфере джаза. Эндрю пишет музыку с 2005 года. Примеры треков можно найти на его Vimeo-канале. Вот одна из его работ (музыка начинается со второй минуты). Такие музыканты часто устраивают live-сессии и пишут треки перед живой аудиторией. Например, этим занимается Эллисон Уокер (Allison Walker) — саунд-дизайнер в игрострое из Мельбурна. По её словам, на таких выступлениях аудитория лучше понимает, насколько сложную работу проделывает композитор цифровой музыки.

К слову, на подобные перформансы можно попасть и в России. Например, в минувшие выходные в Екатеринбурге прошел алгорейв — дискотека, на которой диджеи в реальном времени писали код. Слушатели могли наблюдать, как наборы переменных и цифр превращаются в мелодию.


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

В этом направлении работает композитор Дэвид Коп (David Cope) из Университета Калифорнии. Он разработал и запатентовал алгоритм, генерирующий музыкальные треки на основе существующих. Например, на видео выше представлена композиция, основанная на творчестве Баха.

На чем пишут


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

Примером может быть ORCA — это эзотерический ЯП для создания процедурных секвенсоров, в котором каждая буква алфавита представляет собой отдельную операцию. Один из резидентов Hacker News отметил, что написание мелодии с помощью операторов ORCA напоминает сборку пазла. Исходники и подробную инструкцию можно найти в репозитории на GitHub.

Вот пример мелодии, сгенерированной на ORCA:


Некоторые музыканты создают собственные языки. Например, уже упомянутый Эндрю Соренсен представил Extempore. Он разработан специально для проведения живых выступлений.

В 2014 году Эндрю выступил на конференции для разработчиков OSCON. Там он продемонстрировал возможности своего языка и написал мелодию с нуля. Запись есть на YouTube.

Также стоит выделить язык ChucK, который разработали инженеры из Принстонского университета еще в 2003 году. Он поддерживает параллельное выполнение нескольких потоков и дает возможность изменять программу прямо во время её исполнения. Подробная документация с примерами есть на сайте проекта.

Считать ли программную музыку искусством


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

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



Дополнительное чтение в нашем «Мире Hi-Fi»:

Каков юридический статус систем ИИ, создающих музыку
Рождение и смерть альбома: как менялись музыкальные форматы за последние 100 лет
Как IT-компания боролась за право продавать музыку
От критиков к алгоритмам: как демократия и технократия пришли в музыкальную индустрию
Исследование: музыка вредит творческому мышлению — обсуждаем альтернативные мнения
На IT-фестивале представили первый «гендерно-нейтральный» голосовой помощник


Комментарии (14)


  1. Symsym
    03.08.2019 21:18
    +2

    Надеялся прочитать что-то про Autechre


  1. FForth
    03.08.2019 21:37

    Вот ещё один музыкальный язык программирования
    HMSL — Hierarchical Music Specification Language

    P.S. Wikipedia: List of audio programming languages


  1. VladSavitsky
    04.08.2019 08:38
    +1

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


    1. brrr
      04.08.2019 09:36
      +1

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


    1. 015z
      04.08.2019 20:55

      Это просто примеры такие.
      У Aliceffekt, о котором речь, недавно был неплохой ambient релиз.


    1. timoteo_cirkla
      05.08.2019 20:25

      Либо вы не слушали все примеры. либо врёте. Очень даже музыка.


  1. NikitOS9
    04.08.2019 09:32
    +1

    >Вот пример мелодии, сгенерированной на ORCA
    классный idm получился


  1. grt_pretender
    04.08.2019 17:22

    Есть еще Pure Data, весьма любопытный язык, в том числе и для чисто саунд-дизайна.


  1. oosavu
    04.08.2019 18:10
    +1

    пытался когда-то разобраться с этим extempore — здоровская идея с дополнением лиспа низкоуровневым языком, но на практике документации практический нету, проект полудохлый и разбирается в нём только сам автор.
    Очень не хватает при написании реальной музыки разделить часть которую ты программируешь и часть которую ты крутишь мышкой или контроллером, как в обычном DAW. Когда в каком-нибудь условном аблетоне появится девайс в котором можно процедурно писать некий код (банально задать кривую автоматизации формулой) — вот тогда алгорейвы выйдут из подполья и будут новым словом в музыке. А пока — наслаждайтесь механистическими небалгозвучными мелодиями.
    ps: Autechre наверное единственное исключение, у них действительно что-то музыкальное, а не демонстрация «смотрите как можно писать буквы и будет что-то похожее на музыку». Впрочем они не лайвкодингом занимаются, а всего лишь пишут часть секвенций на визуальном max, что не очень то по теме статьи


    1. 015z
      04.08.2019 21:13

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


      1. AlexTOPMAN
        05.08.2019 13:18

        Согласен. В этой статье стоило также упомянуть, что до начала «эпохи программирования» музыки, была ещё «эпоха конструирования» (дальше пишу на примере самого яркого представителя этой эпохи — треккерной музыки с пиками её успехов на демосцене), когда музыку сочиняли уже не наигрывая её традиционно на муз. инструментах, а в специальном муз. редакторе для каждого семпла/инструмента, наподобие нотной записи задаются нужные высоту, длительность, эффекты и пр., тем самым полностью моделируя всё муз. произведение, а потом его воспроизводя и по результатам прослушивания итерационно корректируя до требуемого финального состояния. Огромным плюсом получается очень компактный размерчик итогового музыкального файла в таком формате, т.к. каждый уникальный семпл в музыке сохранён в файле лишь единожды и просто воспроизводится плеером нужное число раз в нужное время «по нотам», вместо многократного кодирования всей этой повторяемости, как в обычных wav, mp3, flac и т.п., на протяжении всего муз. файла.


  1. DrunkBear
    05.08.2019 10:42

    Больше похоже на создание демок: «ух ты, какой красивый глюк получился, давайте придумаем, как его использовать!»
    Не любитель IDM, а тех же самых Voodoo People или Propane Nightmares, написанных на музыкальных языках, в гугле не нашёл.
    PS с другой стороны, возможно, ещё нет того самого увлечённого чувака, который из хобби для некоторых сделает штуку, интересную многим, как Dub FX с битбоксом.


  1. zugzug
    05.08.2019 10:57

    Почему обошли стороной проект Sonic Pi и талантливого Sam Aaron?