Max , также известный как Max/MSP/Jitter , — визуальный язык программирования для музыки и мультимедиа, разработанный и поддерживаемый компанией Cycling '74 из Сан-Франциско . За свою более чем тридцатилетнюю историю он использовался композиторами, исполнителями, разработчиками программного обеспечения, исследователями и художниками для создания записей, выступлений и инсталляций. [2]
Программа Max является модульной, большинство процедур существуют в виде общих библиотек . Интерфейс прикладного программирования (API) позволяет третьей стороне разрабатывать новые процедуры (называемые внешними объектами ). Таким образом, Max имеет большую пользовательскую базу программистов, не связанных с Cycling '74, которые улучшают программное обеспечение с помощью коммерческих и некоммерческих расширений к программе. Из-за этой расширяемой конструкции, которая одновременно представляет как структуру программы , так и ее графический пользовательский интерфейс (GUI), Max был описан как lingua franca для разработки интерактивного программного обеспечения для исполнения музыки. [3]
Миллер Пакетт начал работу над Max в 1985 году в Институте исследований и координации акустики/музыки (IRCAM) в Париже . [4] [5] Первоначально называвшаяся The Patcher , эта первая версия предоставляла композиторам графический интерфейс для создания интерактивных компьютерных музыкальных партитур на Macintosh . На этом этапе своего развития Max не мог выполнять собственный синтез звука в реальном времени в программном обеспечении, а вместо этого отправлял управляющие сообщения на внешние аппаратные синтезаторы и сэмплеры с помощью MIDI или аналогичного протокола . [6] Его самое раннее широко признанное использование в композиции было для Pluton , фортепианной и компьютерной пьесы 1988 года Филиппа Манури ; программное обеспечение синхронизировало компьютер с фортепиано и управляло Sogitec 4X для обработки звука. [7]
В 1989 году IRCAM разработала Max/FTS («Быстрее звука»), версию Max, портированную на рабочую станцию обработки сигналов IRCAM (ISPW) для NeXT . Также известная как «Audio Max», она стала предшественником аудиорасширений Max MSP, добавив возможность выполнять синтез в реальном времени с использованием внутренней аппаратной платы цифрового сигнального процессора (DSP). [8] [9] В том же году IRCAM лицензировала программное обеспечение для Opcode Systems . [10]
Opcode запустил коммерческую версию под названием Max в 1990 году, разработанную и расширенную Дэвидом Зикарелли . Однако к 1997 году Opcode подумывал об отмене. Вместо этого Зикарелли приобрел права на публикацию и основал новую компанию Cycling '74, чтобы продолжить коммерческую разработку. [11] [12] [13] Время было удачным, так как Opcode была приобретена Gibson Guitar в 1998 году и прекратила свою деятельность в 1999 году. [14]
Внутренняя разработка Max в IRCAM также сворачивалась; последней выпущенной там версией была jMax , прямой потомок Max/FTS, разработанного в 1998 году для Silicon Graphics (SGI), а позднее для систем Linux . Он использовал Java для своего графического интерфейса и C для своего бэкэнда реального времени и в конечном итоге был выпущен как программное обеспечение с открытым исходным кодом .
Тем временем, Пакетт независимо выпустил полностью переработанный инструмент для создания композиций с открытым исходным кодом под названием Pure Data (Pd) в 1996 году, который, несмотря на некоторые базовые инженерные отличия от версий IRCAM, продолжил ту же традицию. Первый релиз Max от Cycling '74, выпущенный в 1997 году, был частично получен из работы Пакетта над Pure Data. Названный Max/MSP («Max Signal Processing», или инициалы Miller Smith Puckette), он остается самым заметным из многих расширений и воплощений Max: он сделал Max способным манипулировать цифровыми аудиосигналами в реальном времени без специального оборудования DSP. Это означало, что композиторы теперь могли создавать свои собственные сложные синтезаторы и процессоры эффектов, используя только компьютер общего назначения, такой как Macintosh PowerBook G3 .
В 1999 году коллектив Неточки Незвановой выпустил NATO.0+55+3d — набор внешних модулей, добавивших в Max расширенные возможности управления видео в реальном времени.
Хотя NATO.0+55+3d становился все более популярным среди художников мультимедиа, его разработка резко остановилась в 2001 году. SoftVNS , другой набор расширений для визуальной обработки в Max, был выпущен в 2002 году канадским художником медиа Дэвидом Рокби . Cycling '74 выпустили свой собственный набор видеорасширений Jitter вместе с Max 4 в 2003 году, добавив видео в реальном времени, графику OpenGL и возможности обработки матриц . Max 4 также была первой версией, работающей на Windows . Max 5, выпущенный в 2008 году, впервые в коммерческой истории Max переработал графический интерфейс для исправления ошибок.
В 2011 году в Max 6 был добавлен новый звуковой движок, совместимый с 64-битными операционными системами, интеграция с программным обеспечением секвенсора Ableton Live и расширение под названием Gen, которое может компилировать оптимизированные патчи Max для более высокой производительности. [15] Max 7 был выпущен в 2014 году и был сосредоточен на улучшении 3D-рендеринга. [16]
6 июня 2017 года компания Ableton объявила о покупке Cycling '74, при этом Max продолжил издаваться Cycling '74, а Дэвид Зикарелли остался в компании. [17]
25 сентября 2018 года была выпущена последняя основная версия программного обеспечения Max 8. [18] Некоторые из новых функций включают MC, новый способ работы с несколькими каналами, поддержку JavaScript с Node для Max и Vizzie 2. [19]
29 октября 2024 года вышел Max 9.
Max назван в честь композитора Макса Мэтьюза и может считаться потомком его языка MUSIC , хотя его графическая природа скрывает этот факт. [20] Как и большинство языков MUSIC-N , Max различает два уровня времени: уровень планировщика событий и уровень DSP (это соответствует различию между процессами k-rate и a-rate в Csound , а также между скоростью управления и скоростью звука в SuperCollider ).
Базовый язык Max и родственных программ — это язык системы потока данных: программы Max (называемые патчами ) создаются путем организации и соединения строительных блоков объектов в патчере или визуальном холсте. Эти объекты действуют как самостоятельные программы (на самом деле, они являются динамически связанными библиотеками), каждая из которых может получать входные данные (через один или несколько визуальных входов ), генерировать выходные данные (через визуальные выходы ) или и то, и другое. Объекты передают сообщения от своих выходов к входам подключенных объектов.
Max поддерживает шесть основных атомарных типов данных, которые могут передаваться как сообщения от объекта к объекту: int, float, list, symbol, bang и signal (для аудиоподключений MSP). В программе существует несколько более сложных структур данных для обработки числовых массивов ( table data), хэш-таблиц ( coll data), информации XML ( pattr data) и словарей на основе JSON ( dict data). Структура данных MSP ( buffer~ ) может хранить цифровую аудиоинформацию в памяти программы. Кроме того, пакет Jitter добавляет масштабируемую многомерную структуру данных для обработки больших наборов чисел для хранения видео и других наборов данных ( matrix data).
Max обычно изучается посредством приобретения словаря объектов и того, как они функционируют в патчере; например, объект metro функционирует как простой метроном, а случайный объект генерирует случайные целые числа. Большинство объектов являются неграфическими, состоящими только из имени объекта и нескольких аргументов-атрибутов (по сути, свойств класса), введенных в поле объекта . Другие объекты являются графическими, включая ползунки, числовые поля, циферблаты, редакторы таблиц, выпадающие меню, кнопки и другие объекты для интерактивного запуска программы. Max/MSP/Jitter поставляется примерно с 600 из этих объектов в качестве стандартного пакета; расширения для программы могут быть написаны сторонними разработчиками как патчеры Max (например, путем инкапсуляции некоторых функций патчера в подпрограмму, которая сама является патчем Max), или как объекты, написанные на C , C++ , Java или JavaScript .
Порядок выполнения сообщений, проходящих через граф объектов, определяется визуальной организацией объектов в самом патчере. В результате этого принципа организации Max необычен тем, что логика программы и интерфейс, представленный пользователю, обычно связаны, хотя более новые версии Max предоставляют несколько технологий для более стандартного дизайна GUI.
Документы Max (названные патчерами) могут быть объединены в отдельные приложения и распространяться бесплатно или продаваться на коммерческой основе. Кроме того, Max может использоваться для создания программного обеспечения для аудио- и MIDI- плагинов для Ableton Live через расширение Max for Live.
С ростом интеграции ноутбуков в живое исполнение музыки (в электронной музыке и не только) Max/MSP и Max/Jitter привлекли внимание как среда разработки, доступная для тех, кто серьезно относится к исполнению музыки/видео на ноутбуках. Программы, разделяющие концепции визуального программирования Max, теперь широко используются для синтеза и обработки аудио и видео в реальном времени.
{{cite journal}}
: Цитировать журнал требует |journal=
( помощь ) {{cite journal}}
: Цитировать журнал требует |journal=
( помощь )