Код
#статьи

Max/MSP: можно ли накодить симфонию

Знакомимся с Max — любимым языком программирования гитариста Radiohead Джонни Гринвуда.

tesla / youtube

Пока некоторые разработчики говорят, что творчеству нет места в программировании, музыканты нашли место программированию в творчестве. Разбираем Max — музыкальный инструмент будущего, на котором не играют, а кодят.

Изображение: комикс World’s Finest / Dave Gibbons / DC Comics, 1993

Что такое Max и кто им пользуется

Max — это язык и среда визуального программирования, с помощью которых создают музыкальные и мультимедийные приложения. В отличие от традиционных языков вроде Java или Ruby, программы на Max не пишут, а собирают, как в конструкторе, перетаскивая и соединяя объекты.

Соединение эффектов в Max/MSP. Скриншот: официальный сайт Max

В Max сравнительно простой интерфейс, а модификации тестируются на ходу. Например, если добавить к проигрываемой дорожке эффект эхо, то его можно услышать сразу, не перезапуская программу.

У Max также есть два расширения: MSP для работы со звуком в реальном времени и Jitter для работы с визуальным контентом. Поэтому в творческих кругах язык часто называют Max/MSP или полностью — Max/MSP/Jitter.

Благодаря низкому порогу вхождения и множеству фич платформа собрала крепкий фандом среди поклонников IT и музыки. Самый известный среди них — гитарист Radiohead Джонни Гринвуд. Он использует фишки Max в песнях культовой британской группы.

Разбираемся в терминах: «язык» или «среда визуального программирования»

С точки зрения разработчиков и инженеров, Max — это среда визуального программирования или фреймворк. Программист использует не слова, а готовые объекты — например, объект seq~ эмулирует секвенсер, а delay~ создаёт затухающий эффект эхо. Связки объектов можно переиспользовать в других проектах. С другой стороны, Max напоминает интерпретируемый язык — тот же код, только визуализируется объектами.

В компании Cycling '74, которая разрабатывает Max, проект называют обобщённо — software. Поэтому единого обозначения нет: кто-то называет его языком или средой программирования, а кто-то — приложением. В этой статье будем считать, что Max — это платформа со своим языком программирования, и будем использовать оба термина.

Roll Over Beethoven, или Как появился Max

Язык разработал в конце 1980-х математик и программист Миллер Пакетт, который в свободное от науки время писал электронную музыку. С 1985 по 1987 год Пакетт был членом исследовательской лаборатории при MIT Media Lab. Лаборатория проводит эксперименты в области медицины и технологий, а также искусства, музыки и дизайна.

Среди наиболее интересных проектов MIT Media Lab — программа Hyperscore. Интуитивный интерфейс приложения учит людей без музыкального бэкграунда сочинять музыку — обучающиеся рисуют линии, которые затем трансформируются в мелодии. В этой лаборатории и появились заготовки Max.

Однако инициировал создание языка французский институт IRCAM, специализирующийся на музыкальных исследованиях. IRCAM основали в 1977 году по поручению французского президента Жоржа Помпиду, чтобы исследовать авангард и электроакустическую музыку — главные академические направления того времени.

В то время в IRCAM не знали, как написать программу, чтобы музыканты могли играть авангардные электронные композиции в реальном времени. Из-за этого приходилось кодить новую программу для каждого нового музыкального произведения. Это было неудобно, отнимало много времени и ресурсов. Пакетта пригласили поработать над одной из таких программ.

«Всю разработку оплачивал IRCAM. У них не было проблем с оборудованием, но нужна была программа для живых выступлений. В июле 1988 года состоялась премьера композиции Pluton Филиппа Манури. Для неё нужно было создать новую программу, но к тому времени я уже решил написать её так, чтобы её могли использовать повторно для разных музыкальных произведений. Так родилась программная среда Max, которую музыканты и композиторы могут полностью подстраивать под свои нужды».

Миллер Пакетт,
создатель Max

Пакетт справился с поставленной задачей, но коммерческий успех пришёл к Max только через 10 лет. В середине 1990-х проект передали компании Cycling '74. Тогда же они выпустили для Max расширение MSP, а в начале 2000-х разработали Jitter. Так язык Max превратился в полноценную мультимедийную платформу Max/MSP/Jitter.

Jitter — расширение Max для создания и работы с визуальным контентом. Соединение эффектов в Max/MSP. Скриншот: официальный сайт Max

Max назвали в честь пионера компьютерной музыки — Макса Мэтьюса, который в 1970-х работал в IRCAM. В конце 1950-х Мэтьюс создал MUSIC — первую программу, которая синтезировала и воспроизводила звук музыкальных инструментов на компьютере и получила широкое распространение за пределами лаборатории. Разработанный им алгоритм планирования в реальном времени RTSKED позднее лёг в основу работы Пакетта.

Пакетт и инженеры IRCAM так и не смогли использовать программную среду Мэтьюса в своём проекте — ПО и оборудование, на котором оно запускалось, принадлежало Bell Labs. Пакетту пришлось заново придумать и переосмыслить концепцию, чтобы музыканты могли работать с Max независимо от оборудования и сложности композиций.

Но платформу всё же назвали в честь Макса Мэтьюса — отдавая дань уважения революционным разработкам инженера. А имя Пакетта увековечили в Cycling '74, назвав его именем MSP (Miller Smith Puckette).

Звук на Max: как всё устроено

В Max есть несколько ключевых понятий:

  • Объекты (англ. — objects) — это фундамент языка. С их помощью можно генерировать звук, эмулировать музыкальное оборудование, создавать визуальные и аудиоэффекты. Группу объединённых объектов называют модулем.
  • Виртуальные провода (англ. — patch cords) соединяют объекты и модули через входы и выходы (англ. — inlets и outlets).
  • Патч (англ. — patch) — это полноценная программа, написанная на Max. Патчи сохраняются в форматах .maxpatch, .maxhelp или .json.
  • Субпатч (англ. — subpatch) — дочерний элемент патча. Субпатч может как находиться внутри патча, так и храниться отдельным файлом.
  • Патчер (англ. — patcher) — окно, в котором собирается патч.
MIDI-контроллер MAX. Как и в других языках программирования, под каждой функцией можно оставлять комментарий. Соединение эффектов в Max/MSP. Скриншот: официальный сайт Max

Работа в Max напоминает ООП. Пользователи создают объекты или кастомизируют готовые, объединяют их в модули, а из модулей собирают полноценные программы.

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

В патчи Max даже добавляют программы, написанные с нуля на других языках. В официальной документации есть куча примеров и туториалов. А благодаря открытому API можно подключать сторонние приложения.

Ещё одна крутая фича Max — возможность превращать визуальные объекты в код. Для этого их просто нужно выделить в патче и скопировать в любой текстовый редактор. Особенно полезно тем, у кого аллергия на визуальное программирование. Кстати, в Max лучше всего программировать традиционным способом на JavaScript — для этого языка есть официальная документация, а данные программы, по сути, представляются в JSON.

Если вы уже захотели протестировать возможности Max, советуем начать с этих ресурсов:

  1. Cycling74.com — официальный сайт с кучей видеоуроков, форумом сообщества и, конечно, самим Max.
  2. Меню Help в Max — там есть полезные обучалки и советы.
  3. Pattr.ru — русскоязычный блог энтузиастов с кучей мануалов: от «как включить тёмную тему» до «написания полиритмических секвенсоров».

Безделушка для гиков или действительно крутой инструмент

«Мне никогда не нравилось пользоваться чужим музыкальным софтом. Какие бы возможности ни открывали аудиоредакторы и плагины, они всё равно ограничивают творческий потенциал художника и заставляют его подстраиваться под программу. С Max я наконец-то обрёл полную свободу в работе со звуком и получил прямой доступ к возможностям компьютера».

Джонни Гринвуд,
гитарист Radiohead

Впервые музыканты из Radiohead использовали Max на шестом альбоме группы — Hail To The Thief. И хотя на концертах технической частью заправляет преимущественно Гринвуд, в студии с Max работает вся группа. Например, для записи восьмого студийника The King Of Limbs Radiohead создали на Max целую цифровую звуковую рабочую станцию.

Среди композиций Radiohead ярче и отчётливее всего Max слышен на The Gloaming. Почти весь аккомпанемент песни создан на этой платформе. Но по полной Гринвуд использует Max во время экспериментальных гитарных соло на живых концертах. Звук, который выдаёт гитарист Radiohead, даже называют «stutter effect Джонни Гринвуда». Почему stutter (с англ. — запинаться, заикаться) — можно понять из этого видео:

На этом список известных музыкантов, которые работают в Max, заканчивается. Большинство культовых и популярных артистов либо пишут аранжировки вживую, либо пользуются классическим музыкальным софтом вроде FL Studio, Steinberg Cubase и Ableton Live. Последний, кстати, хоть и написан на C++, но содержит аудиоустройства, спроектированные на Max.

Но хотя многие известные музыканты не горят желанием самостоятельно писать музыкальный софт, Max отнюдь не бессмысленная побрякушка инженеров и программистов. На этом языке создают мультимедийные инсталляции, пишут музыкальный софт и исследуют звук. А ещё экспериментируют андеграунд-композиторы и глитч-художники. Оценить проекты фанатов Max можно на сайте платформы.

Кадр из клипа на трек Facelyzer токийской арт-группы BRIDGE, созданный с помощью Max/MSP/Jitter

У Max всего один известный амбассадор, но это вовсе не означает, что он бесполезен и на нём невозможно написать симфонию. В отличие от многих других цифровых музыкальных инструментов, Max ничем не ограничен в своих возможностях. Вот только чтобы постичь их все, недостаточно быть только Канье Уэстом. Нужно быть программистом :)

А вот стать программистом со Skillbox можно за три простых шага. Заходите в раздел «Программирование», выбирайте подходящий курс и учитесь у опытных разработчиков из «Яндекса», Mail.ru, Tinkoff и других крупных IT-компаний.

Изучайте IT на практике — бесплатно

Курсы за 2990 0 р.

Я не знаю, с чего начать
Научитесь: Профессия Python-разработчик Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована