О звуке простыми словами42Производители Hi-Fi.
Истории и интервью111Репортажи с заводов65Репортажи с Hi-Fi выставок69"Сделай сам"44Готовые проекты Аудиомании42Пресса об Аудиомании50Видео494Фотогалерея100Интересное о звуке804Новости мира Hi-Fi2545Музыкальные и кинообзоры616Глоссарий
Как писать музыку на Python — помогут три тематические библиотеки (для специалистов разного уровня)
Продолжаем тему музыкального программирования — ранее мы говорили о языках Csound, SuperCollider и Pure Data, а сегодня рассказываем Python и библиотеках FoxDot, Pippi и Music-Code.
FoxDot
Это — библиотека для начинающих муз. программистов. Его разработал инженер Райан Киркбрайд (Ryan Kirkbride) в 2015 году. FoxDot задумывался как личный проект — с его помощью Райан устраивал live-сессии под псевдонимом Qirky — однако теперь с инструментом работают по всему миру.
Библиотека использует возможности пакетного протокола Open Sound Control (OCS) и виртуальной среды для аудиосинтеза SuperCollider, которая была разработана в 1996-м, но до сих пор активно поддерживается сообществом. Программист создает объекты с аргументами, обозначающими инструмент, высоту тона, продолжительность звучания. Звуки можно выстраивать в паттерны и зацикливать, чтобы создавать сложные музыкальные конструкции. Код превращается в музыку в реальном времени — вот пример работы с библиотекой:
Если вы хотите изучить инструмент самостоятельно, имеет смысл начать знакомство с подробной официальной документации. Ответы на многие вопросы есть на тематическом форуме. Свои предложения и пожелания с новыми функциями можно оставлять в репозитории на GitHub.
Pippi
Эту библиотеку разработал один из представителей инди-лейбла LuvSound, поддерживающего новую музыку и молодых исполнителей. В своём составе она имеет несколько структур для работы со звуком, включая распространенные SoundBuffer и Wavetable. Предназначение Pippi — работа с уже имеющимися звуками — инструмент позволяет объединять и модифицировать загруженные семплы.
Он также дает возможность строить на основе семплов абсолютно новые акустические конструкции — например, формировать «гранулированные» звуки. Это — метод, при котором семпл разбивают на множество коротких отрезков («гранул») и перемешивают их. Вот код для создания 10-секундного сигнала такого формата из звука в переменной enveloped:
Библиотека Pippi не позволяет воспроизводить музыку в реальном времени, поэтому сама по себе плохо подходит для «живых» концертов. Однако в тематическом треде на Hacker News автор рассказал, что разработал сторонний интерфейс — Astrid. Он автоматически перезапускает музыкальный файл после сохранения, тем самым открывая возможности для выступлений на сцене.
Music-Code
Эту небольшую библиотеку написал дата-саентист Уэсли Лоуренс (Wesley Laurence). Она умеет генерировать аккорды, звуки барабанов и бас-гитар. Свой инструмент автор использует, чтобы создавать семплы для моделей машинного обучения. Библиотека позволяет работать с секвенсорами, агрегаторами, семплерами и различными акустическими эффектами. Кроме музыки, Music-Code позволяет готовить визуализации для муз.композиций.
Пока что у Music-Code совсем небольшая аудитория, так как библиотека довольно молодая — она была опубликована на GitHub всего три месяца назад. Однако автор планирует развивать свой инструмент и надеется, что ему удастся привлечь новых пользователей — особенно среди специалистов в области систем ИИ. Автор планирует записать и выложить видео с инструкциями о том, как подступиться к Music-Code.