12.09.2020       Выпуск 351 (07.09.2020 - 13.09.2020)       Статьи

Как писать музыку на Python — помогут три тематические библиотеки (для специалистов разного уровня)

Продолжаем тему музыкального программирования — ранее мы говорили о языках Csound, SuperCollider и Pure Data, а сегодня рассказываем Python и библиотеках FoxDot, Pippi и Music-Code.

Читать>>




Экспериментальная функция:

Ниже вы видите текст статьи по ссылке. По нему можно быстро понять ссылка достойна прочтения или нет

Просим обратить внимание, что текст по ссылке и здесь может не совпадать.

Продолжаем тему

музыкального программирования

— ранее мы говорили о языках Csound, SuperCollider и Pure Data, а сегодня рассказываем Python и библиотеках

FoxDot

,

Pippi

и

Music-Code

.

Фото Conor Samuel / Unsplash

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

разработал

инженер Райан Киркбрайд (Ryan Kirkbride) в 2015 году. FoxDot задумывался как личный проект — с его помощью Райан устаивал live-сессии под псевдонимом

Qirky

— однако теперь с инструментом

работают

по всему миру.

Библиотека использует возможности пакетного протокола

Open Sound Control

(OCS) и виртуальной среды для аудиосинтеза

SuperCollider

, которая была разработана в 1996-м, но до сих пор

активно поддерживается

сообществом. Программист создает объекты с аргументами, обозначающими инструмент, высоту тона, продолжительность звучания. Звуки можно выстраивать в паттерны и зацикливать, чтобы создавать сложные музыкальные конструкции. Код превращается в музыку в реальном времени — вот

пример работы

с библиотекой:

Если вы хотите изучить инструмент самостоятельно, имеет смысл начать знакомство с подробной

официальной документации

. Ответы на многие вопросы есть на

тематическом форуме

. Свои предложения и пожелания с новыми функциями можно оставлять в

репозитории на GitHub

.

Эту библиотеку разработал один из представителей инди-лейбла LuvSound, поддерживающего новую музыку и молодых исполнителей. В своём составе она

имеет

несколько структур для работы со звуком, включая распространенные

SoundBuffer

и

Wavetable

. Предназначение Pippi — работа с уже имеющимися звуками — инструмент позволяет объединять и модифицировать загруженные семплы.

from pippi import dsp

sound1 = dsp.read('sound1.wav')
sound2 = dsp.read('sound2.flac')

# Mix two sounds
both = sound1 & sound2

Он также дает возможность строить на основе семплов абсолютно новые акустические конструкции — например, формировать «гранулированные» звуки. Это — метод, при котором семпл

разбивают

на множество коротких отрезков («гранул») и перемешивают их. Вот код для создания 10-секундного сигнала такого формата из звука в переменной

enveloped

:

# Synthesize a 10 second graincloud from the sound,
# with grain length modulating between 20ms and 2s
# over a triangle shaped curve.
cloudy = enveloped.cloud(10, grainlength=dsp.win('tri', dsp.MS*20, 2))

Библиотека Pippi не позволяет воспроизводить музыку в реальном времени, поэтому сама по себе плохо подходит для «живых» концертов. Однако в тематическом треде на Hacker News автор рассказал, что

разработал

сторонний интерфейс —

Astrid

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

Эту небольшую библиотеку написал дата-саентист Уэсли Лоуренс (

Wesley Laurence

). Она умеет генерировать аккорды, звуки барабанов и бас-гитар. Свой инструмент автор использует, чтобы создавать семплы для моделей машинного обучения. Библиотека позволяет работать с секвенсорами, агрегаторами, семплерами и различными акустическими эффектами. Кроме музыки, Music-Code позволяет готовить визуализации для муз.композиций.

Фото Tanner Boriack / Unsplash

Пока что у Music-Code совсем небольшая аудитория, так как библиотека довольно молодая — она была

опубликована на GitHub

всего три месяца назад. Однако автор планирует развивать свой инструмент и надеется, что ему удастся привлечь новых пользователей — особенно среди специалистов в области систем ИИ. Автор планирует записать и выложить видео с инструкциями о том, как подступиться к Music-Code.


Дополнительное чтение в «Мире Hi-Fi»:Что такое музыкальное программирование — кто и почему им занимаетсяГде взять аудио для машинного обучения: подборка открытых библиотекКак устроен Sporth — ЯП для музыкальных live-сессийГде брать аудио для разработки игр и других проектовЗвуки для UI: подборка тематических ресурсов





Разместим вашу рекламу

Пиши: mail@pythondigest.ru

Нашли опечатку?

Выделите фрагмент и отправьте нажатием Ctrl+Enter.

Система Orphus