Как стать автором
Обновить
0
Аудиомания
Одна из крупнейших Hi-Fi, High End компаний в СНГ

Старт в музыкальном программировании — для начинающих достаточно и простого браузера

Время на прочтение3 мин
Количество просмотров6.4K

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

Фотография: Brandon Erlinger-Ford. Источник: Unsplash.com
Фотография: Brandon Erlinger-Ford. Источник: Unsplash.com

Музыкальное программирование — это процесс написания треков с использованием специализированного ПО, синтезаторов и секвенсоров. Есть огромное количество сервисов, позволяющих «влиться» в эту тему. О некоторых из них мы уже рассказывали — например, OpenMusic и ORCA. С их помощью можно писать музыку в разных жанрах, однако они требуют установки и настройки на компьютере. Композитор и разработчик Крис Форд посчитал, этот факт ограничивающим творчество начинающих музыкантов и решил исправить ситуацию.

Он разработал инструмент, позволяющий творить «без заморочек». Так появился Klangmeister — с немецкого переводится как «мастер звука» — работающий прямо из браузера.

Что под капотом

Для написания музыки Klangmeister предлагает использовать Clojurescript. Это — реализация языка LISP с компиляцией в JavaScript. Необходимые для работы функции хранятся в библиотеке Leipzig, которую написал автор проекта. Он также подготовил достаточно подробную документацию. Для воспроизведения треков приложение использует Web Audio API.

Интерфейс позволяет компилировать программы на лету — фактически писать и воспроизводить музыку в реальном времени. Ряд возможностей Крис Форд продемонстрировал на технологической конференции flatMap в Осло несколько лет назад. Например, чтобы написать мелодию, нужно составить массив, включающий продолжительность звучания и высоту тона для каждой отдельной ноты.

(phrase [3/3 3/3 2/3 1/3 3/3]
        [ 72  72  72  74  76])

Klangmeister также позволяет объединять несколько мелодий в одну:

(->>
  (phrase [3/3 3/3 2/3 1/3 3/3] 
          [ 72  72  72  74  76])
  (then
    (phrase [2/3 1/3 2/3 1/3 3/3]
            [ 76  74  76  77  79])))

На официальном сайте есть руководство с примерами кода для реализации более сложных техник написания музыки — зацикливанием треков и настройкой BPM.

В целом инструмент Klangmeister довольно прост, что является как его достоинством, так и недостатком. Он позволяет взять легкий старт в музыкальном программировании, но задействованный в работе Web Audio API плохо подходит для написания глубоких и комплексных композиций. Также автор отмечает, что Klangmeister лучше всего работает в Chrome. Функции синтеза, которые он использует, могут не поддерживаться в других браузерах (или поддерживаться плохо). Все желающие могут оценить «внутренности» проекта самостоятельно — его исходный код выложен в репозиторий на GitHub.

Какие есть альтернативы

Одна из известных виртуальных сред для аудиосинтеза в реальном времени — это SuperCollider. Мы кратко упоминали её в одном из предыдущих материалов. Она существует с 1996 года, и за это время вокруг неё сформировалось обширное сообщество поклонников. SuperCollider более сложный инструмент, чем Klangmeister и на его освоение может уйти длительное время, однако и возможности он предлагает более широкие.

С инструментом работает композитор Крис Браун (не путать с певцом и актером) из Сан-Франциско. С его помощью он написал альбом Branches. Эли Филдстил (Eli Fieldsteel), преподающий теорию музыкальной композиции в Университете Иллинойса, использует SuperCollider для анализа отдельных произведений на лекциях.

Фотография: Valentin Müller. Источник: Unsplash.com
Фотография: Valentin Müller. Источник: Unsplash.com

Еще одним аналогом Klangmeister, который упоминает сам Крис Форд, является платформа Extempore. Она включает в себя два языка программирования — Scheme и одноименный Extempore. Объединяет их возможности компилятор на базе LLVM, позволяющий обрабатывать цифровые сигналы в реальном времени. Как это работает, автор системы рассказывал на конференции OSCON, посвященной открытому ПО.


О чем еще мы пишем в «Мире Hi-Fi»:


Наши обзоры в блоге на Хабре:


Теги:
Хабы:
Всего голосов 9: ↑8 и ↓1+7
Комментарии0

Публикации

Информация

Сайт
www.audiomania.ru
Дата регистрации
Дата основания
Численность
101–200 человек
Местоположение
Россия

Истории