- PVSM.RU - https://www.pvsm.ru -

Как написать музыку, используя ООП

Говорим об истории программного инструмента OpenMusic (OM), разбираем особенности его устройства, рассказываем о первых пользователях. Плюс к этому — приводим аналоги.

Как написать музыку, используя ООП - 1 [1]
Фото James Baldwin [2] / Unsplash

Что такое OpenMusic

Это — объектно-ориентированная визуальная среда программирования [3] для синтеза цифрового звука. Утилита основана на диалекте языка LISP — Common Lisp [4]. Стоит отметить, что OpenMusic можно использовать в качестве универсального графического интерфейса для этого ЯП.

Инструмент разработали в 90-е годы инженеры из французского Института исследований и координации акустики и музыки (IRCAM [5]). Всего было представлено семь версий OpenMusic — последнюю выпустили в 2013 году. Тогда инженер из IRCAM Джин Брессон (Jean Bresson [6]) переписал утилиту с нуля, взяв за основу оригинальный код [7] шестой версии (OM6). Сегодня OM7 распространяется по лицензии GPLv3 [8] — её исходники можно найти на GitHub [9].

Как с ней работать

Программы в OpenMusic создаются путем манипулирования графическими объектами вместо написания кода. В итоге получается некое подобие блок-схемы, которая называется «патчем». По аналогии с модульными синтезаторами, в которых для соединений использовались патч-корды.

Вот пример программы [10] OpenMusic, взятый из репозитория на GitHub:

Как написать музыку, используя ООП - 2

В OpenMusic есть объекты двух видов: базовые и партитурные (Score Object). Первые представляют собой различные математические операции для работы с матрицами, колонками и текстовыми формами.

Партитурные объекты необходимы для работы со звуком. Их также можно разбить на две группы:

Управляются партитурные объекты с помощью партитурных функций, например, объединяющих несколько компонентов в один для создания полифонического звука. Дополнительные функции можно найти в подключаемых библиотеках — полный их список доступен на официальном сайте [10].

Пример мелодии, сгенерированной OpenMusic, можно послушать в этом видео [12]:

Чтобы познакомиться с инструментом и его возможностями, рекомендуем обратиться к документации. Справочник для OM7 [10] пока находится в разработке. Но можно посмотреть справочник по OM6 — нужно пройти по ссылке [13] и в окне слева развернуть пункт User Manual.

Кто использует

По замыслу разработчиков, OpenMusic можно использовать для создания и редактирования аудиодорожек, генерации математических моделей произведений и анализа записанных музыкальных отрывков. Инженеры из ITCAM применили инструмент в нескольких научных исследованиях. Например, для создания [14] системы искусственного интеллекта, распознающей музыкальные жесты [15] на аудиозаписи.

Работают с OpenMusic и профессиональные исполнители — они используют утилиту для изучения гармонических спектров. Примером может быть швейцарский композитор Микаэль Жаррель [16], который является обладателем премии Бетховена. Его работы в исполнении гонконгского симфонического оркестра можно послушать тут [17].

Также стоит отметить Тристана Мюрая [18]. Он один из крупнейших композиторов, работающих в направлении спектральной музыки [19]. Например, на YouTube есть его работы Gondwana [20] и Le partage des eaux [21], созданные с помощью OpenMusic.

Английский композитор и педагог Брайан Фёрнихоу [22] использовал OpenMusic для работы с ритмом. Сегодня его музыка входит в репертуар крупнейших современных ансамблей и исполнителей — Квартета Ардитти [23] и Пьера-Ив Арто [24].

Аналоги

Существует несколько систем, аналогичных OpenMusic. Пожалуй, наиболее известным будет коммерческий инструмент Max/MSP [25]. Его разработал Миллер Пакетт (Miller Puckette) в конце 80-х, когда работал в IRCAM. Система позволяет синтезировать цифровой звук и видеоряд в реальном времени.

На видео ниже представлена инсталляция на одном из зданий в итальянском городе Кальяри. Цвет экранов меняется в зависимости от шума проезжающих автомобилей. Управляется инсталляция связкой из Max/MSP и Arduino.

Стоит отметить, что у Max/MSP есть аналог с открытым исходным кодом. Он называется Pure Data [26], и его разработчиком тоже выступил Миллер Пакетт.

Также стоит выделить визуальную систему ChucK [27], которую придумал Перри Кук (Perry Cook) с коллегами из университета Принстон в 2003 году. Она поддерживает параллельное выполнение нескольких потоков, плюс в программу можно вносить изменения прямо во время исполнения. Распространяется по лицензии GNU GPL.

На этом список инструментов для синтеза цифровой музыки не заканчивается. Еще есть Kyma [28] и Overtone [29], который позволяет программировать миксы прямо на сцене. О них мы постараемся рассказать в следующий раз.


Дополнительное чтение — из нашего «Мира Hi-Fi» и Telegram-канала:

Как написать музыку, используя ООП - 3 Как ПК завоевал медиаиндустрию с помощью успешного ПО [30]
Как написать музыку, используя ООП - 4 Где взять аудиосемплы для ваших проектов: подборка из девяти ресурсов [31]
Как написать музыку, используя ООП - 5 Музыка для ваших проектов: 12 тематических ресурсов с треками по лицензии CC [32]
Как написать музыку, используя ООП - 6 Innovation SSI-2001: история одной из самых редких звуковых карт для IBM PC [33]
Как написать музыку, используя ООП - 7 История аудиотехнологий: синтезаторы и сэмплеры [34]
Как написать музыку, используя ООП - 8 Энтузиаст воссоздал звуковую карту Sound Blaster 1.0 [35]
Как написать музыку, используя ООП - 9 Как менялись музыкальные форматы за последние 100 лет [36]
Как написать музыку, используя ООП - 10 Как IT-компания боролась за право продавать музыку [37]


Автор: Audioman

Источник [38]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/programmirovanie/325284

Ссылки в тексте:

[1] Image: https://habr.com/ru/company/audiomania/blog/461403/

[2] James Baldwin: https://unsplash.com/photos/J6WmcJrvlLI

[3] визуальная среда программирования: https://ru.wikipedia.org/wiki/%D0%92%D0%B8%D0%B7%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5

[4] Common Lisp: https://ru.wikipedia.org/wiki/Common_Lisp

[5] IRCAM: https://ru.wikipedia.org/wiki/IRCAM

[6] Jean Bresson: https://github.com/j-bresson

[7] основу оригинальный код: https://github.com/openmusic-project/OM6/

[8] GPLv3: https://ru.wikipedia.org/wiki/GNU_General_Public_License#GPL_v3

[9] найти на GitHub: https://github.com/openmusic-project/om7

[10] пример программы: https://openmusic-project.github.io/om7/

[11] гармоничные последовательности: https://ru.wikipedia.org/wiki/%D0%90%D0%BA%D0%BA%D0%BE%D1%80%D0%B4%D0%BE%D0%B2%D0%B0%D1%8F_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C

[12] в этом видео: https://www.youtube.com/watch?v=YA0azFm29ts

[13] пройти по ссылке: http://support.ircam.fr/docs/om/om6-manual/co/OM-Documentation.html

[14] создания: https://hal.archives-ouvertes.fr/hal-01839050/document

[15] музыкальные жесты: https://en.wikipedia.org/wiki/Musical_gesture

[16] Микаэль Жаррель: https://ru.wikipedia.org/wiki/%D0%96%D0%B0%D1%80%D1%80%D0%B5%D0%BB%D1%8C,_%D0%9C%D0%B8%D0%BA%D0%B0%D1%8D%D0%BB%D1%8C

[17] послушать тут: https://www.youtube.com/watch?v=2by3aXXd6Pg

[18] Тристана Мюрая: https://ru.wikipedia.org/wiki/%D0%9C%D1%8E%D1%80%D0%B0%D0%B9,_%D0%A2%D1%80%D0%B8%D1%81%D1%82%D0%B0%D0%BD

[19] спектральной музыки: https://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%BC%D1%83%D0%B7%D1%8B%D0%BA%D0%B0

[20] Gondwana: https://www.youtube.com/watch?v=q6WXzOIsBuQ

[21] Le partage des eaux: https://www.youtube.com/watch?v=Oo_RyHTnERU

[22] Брайан Фёрнихоу: https://ru.wikipedia.org/wiki/%D0%A4%D1%91%D1%80%D0%BD%D0%B8%D1%85%D0%BE%D1%83,_%D0%91%D1%80%D0%B0%D0%B9%D0%B0%D0%BD

[23] Квартета Ардитти: https://ru.wikipedia.org/wiki/%D0%9A%D0%B2%D0%B0%D1%80%D1%82%D0%B5%D1%82_%D0%90%D1%80%D0%B4%D0%B8%D1%82%D1%82%D0%B8

[24] Пьера-Ив Арто: https://ru.wikipedia.org/wiki/%D0%90%D1%80%D1%82%D0%BE,_%D0%9F%D1%8C%D0%B5%D1%80_%D0%98%D0%B2

[25] Max/MSP: https://en.wikipedia.org/wiki/Max/MSP

[26] Pure Data: https://en.wikipedia.org/wiki/Pure_Data

[27] ChucK: http://chuck.cs.princeton.edu/

[28] Kyma: https://en.wikipedia.org/wiki/Kyma_(sound_design_language)

[29] Overtone: http://overtone.github.io/

[30] Как ПК завоевал медиаиндустрию с помощью успешного ПО: https://habr.com/ru/company/audiomania/blog/461299/

[31] Где взять аудиосемплы для ваших проектов: подборка из девяти ресурсов: https://www.audiomania.ru/content/art-6670.html

[32] Музыка для ваших проектов: 12 тематических ресурсов с треками по лицензии CC: https://www.audiomania.ru/content/art-6638.html

[33] Innovation SSI-2001: история одной из самых редких звуковых карт для IBM PC: https://www.audiomania.ru/content/art-6637.html

[34] История аудиотехнологий: синтезаторы и сэмплеры: https://www.audiomania.ru/content/art-6552.html

[35] Энтузиаст воссоздал звуковую карту Sound Blaster 1.0: https://www.audiomania.ru/content/art-6499.html

[36] Как менялись музыкальные форматы за последние 100 лет: https://t.me/audiomaniaRU/783

[37] Как IT-компания боролась за право продавать музыку: https://t.me/audiomaniaRU/773

[38] Источник: https://habr.com/ru/post/461403/?utm_source=habrahabr&utm_medium=rss&utm_campaign=461403