- PVSM.RU - https://www.pvsm.ru -
Продолжаем тему музыкального программирования [1] — ранее мы говорили о языках Csound, SuperCollider и Pure Data, а сегодня рассказываем Python и библиотеках FoxDot, Pippi и Music-Code.
[2]
Фото Conor Samuel [3] / Unsplash
Это — библиотека для начинающих муз. программистов. Его разработал [5] инженер Райан Киркбрайд (Ryan Kirkbride) в 2015 году. FoxDot задумывался как личный проект — с его помощью Райан устаивал live-сессии под псевдонимом Qirky [6] — однако теперь с инструментом работают [7] по всему миру.
Библиотека использует возможности пакетного протокола Open Sound Control [8] (OCS) и виртуальной среды для аудиосинтеза SuperCollider [9], которая была разработана в 1996-м, но до сих пор активно поддерживается [10] сообществом. Программист создает объекты с аргументами, обозначающими инструмент, высоту тона, продолжительность звучания. Звуки можно выстраивать в паттерны и зацикливать, чтобы создавать сложные музыкальные конструкции. Код превращается в музыку в реальном времени — вот пример работы [11] с библиотекой:
Если вы хотите изучить инструмент самостоятельно, имеет смысл начать знакомство с подробной официальной документации [12]. Ответы на многие вопросы есть на тематическом форуме [13]. Свои предложения и пожелания с новыми функциями можно оставлять в репозитории на GitHub [14].
Эту библиотеку разработал один из представителей инди-лейбла LuvSound, поддерживающего новую музыку и молодых исполнителей. В своём составе она имеет [15] несколько структур для работы со звуком, включая распространенные SoundBuffer и Wavetable. Предназначение Pippi — работа с уже имеющимися звуками — инструмент позволяет объединять и модифицировать загруженные семплы.
from pippi import dsp
sound1 = dsp.read('sound1.wav')
sound2 = dsp.read('sound2.flac')
# Mix two sounds
both = sound1 & sound2
Он также дает возможность строить на основе семплов абсолютно новые акустические конструкции — например, формировать «гранулированные» звуки. Это — метод, при котором семпл разбивают [16] на множество коротких отрезков («гранул») и перемешивают их. Вот код для создания 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 автор рассказал, что разработал [17] сторонний интерфейс — Astrid [18]. Он автоматически перезапускает музыкальный файл после сохранения, тем самым открывая возможности для выступлений на сцене.
Эту небольшую библиотеку написал дата-саентист Уэсли Лоуренс (Wesley Laurence [20]). Она умеет генерировать аккорды, звуки барабанов и бас-гитар. Свой инструмент автор использует, чтобы создавать семплы для моделей машинного обучения. Библиотека позволяет работать с секвенсорами, агрегаторами, семплерами и различными акустическими эффектами. Кроме музыки, Music-Code позволяет готовить визуализации для муз.композиций.
Фото Tanner Boriack [21] / Unsplash
Пока что у Music-Code совсем небольшая аудитория, так как библиотека довольно молодая — она была опубликована на GitHub [19] всего три месяца назад. Однако автор планирует развивать свой инструмент и надеется, что ему удастся привлечь новых пользователей — особенно среди специалистов в области систем ИИ. Автор планирует записать и выложить видео с инструкциями о том, как подступиться к Music-Code.
Что такое музыкальное программирование — кто и почему им занимается [22]
Где взять аудио для машинного обучения: подборка открытых библиотек [23]
Как устроен Sporth — ЯП для музыкальных live-сессий [24]
Где брать аудио для разработки игр и других проектов [25]
Звуки для UI: подборка тематических ресурсов [26]
Автор: Audioman
Источник [27]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/python/356897
Ссылки в тексте:
[1] музыкального программирования: https://habr.com/ru/company/audiomania/blog/496138/
[2] Image: https://habr.com/ru/company/audiomania/blog/518824/
[3] Conor Samuel: https://unsplash.com/photos/AdnHBOr09i8
[4] FoxDot: https://foxdot.org/
[5] разработал: https://ryan-kirkbride.github.io/
[6] Qirky: https://qirky.github.io/
[7] работают: https://forum.toplap.org/t/artist-who-use-foxdot/881
[8] Open Sound Control: https://ru.wikipedia.org/wiki/Open_Sound_Control
[9] SuperCollider: https://www.audiomania.ru/content/art-7405.html
[10] активно поддерживается: https://supercollider.github.io/download
[11] пример работы: https://www.youtube.com/watch?v=CXrkq7u69vU
[12] официальной документации: https://foxdot.org/docs/
[13] тематическом форуме: https://toplap.lurk.org/c/communities/foxdot
[14] репозитории на GitHub: https://github.com/Qirky/FoxDot
[15] Pippi: https://github.com/luvsound/pippi
[16] разбивают: https://www.izotope.com/en/learn/the-basics-of-granular-synthesis.html
[17] разработал: https://news.ycombinator.com/item?id=24290920
[18] Astrid: https://github.com/luvsound/astrid
[19] Music-Code: https://github.com/wesleyLaurence/Music-Code
[20] Wesley Laurence: https://github.com/wesleyLaurence
[21] Tanner Boriack: https://unsplash.com/photos/hxnBkzz9iL4
[22] Что такое музыкальное программирование — кто и почему им занимается: https://www.audiomania.ru/content/art-6815.html
[23] Где взять аудио для машинного обучения: подборка открытых библиотек: https://www.audiomania.ru/content/art-7382.html
[24] Как устроен Sporth — ЯП для музыкальных live-сессий: https://www.audiomania.ru/content/art-7140.html
[25] Где брать аудио для разработки игр и других проектов: https://www.audiomania.ru/content/art-6948.html
[26] Звуки для UI: подборка тематических ресурсов: https://www.audiomania.ru/content/art-6930.html
[27] Источник: https://habr.com/ru/post/518824/?utm_source=habrahabr&utm_medium=rss&utm_campaign=518824
Нажмите здесь для печати.