MAX/MSP
Max — это язык визуального программирования для музыки и мультимедиа
Max был разработан в 1986 году как проект для генерации интерактивной музыки в центре IRCAM в Париже профессором Миллером Пакеттом. Max стал коммерческим проектом, когда его распространением в 1991 году занялась компания Opcode Systems в сотрудничестве с Пакеттом и Дэвидом Цикарелли. Компания Cycling’74 стала издателем Max в 2000 году. С тех пор Max был дополнен библиотеками по обработке аудио данных (MSP) и графики (Jitter).
Язык программирования, реализованный в Max относится к языкам потокового программирования, что свойственно многим средам программирования звукового синтеза. Программы, созданные в Max (называемые патч — patch), состоят из определенным образом соединенных между собой строительных блоков объектов внутри патчера (patcher). Данные объекты ведут себя как независимые программы (по факту, объекты — это динамически связанные библиотеки), каждая из которых может принимать входные данные из других блоков (через так называемые визуальные входы), генерировать выходные данные (через визуальные выходы), или и то и другое одновременно. Объекты передают сообщения из своих выходов во входы объектов, с которыми они соединены.
рабочий интерфейс программы Max с открытым окном редактирования нового патчера и блоком выбора объекта
пример связи простого объекта ‘56’ с другим объектом через выход одного объекта во вход другого
Max содержит 400 объектов, каждый из которых выполняет одну или несколько задач, MSP — 200 объектов для обработки аудио, а дополнение Jitter — 140 объектов для обработки видео и изображений (например, для синхронизации видеофона с музыкальной композицией во время живого выступления). Некоторые объекты не имеют входов или выходов — например, midiout, который отсылает сигнал непосредственно на MIDI–синтезатор компьютера.
По соединительным проводам объектов проходят сообщения. Сообщения могут быть числами, списками (list) чисел, разделенными пробелами, словами (symbol) или любыми комбинациями чисел и слов. Содержание сообщений определяется их типом (type).
Типы сообщений (messages):
В версии 4.5 и выше, несколько объектов Max\MSP используют атрибуты. Атрибуты — это еще один способ указывать поведение объектам Max. Вы можете использовать атрибуты, чтобы инициировать, изменять и выяснять текущие значения, находящиеся в объекте, а также привязывать каждое значение к фиксированному имени атрибута, поясняя, что вам не нужно помнить порядок вписанных аргументов, или, что конкретно делает каждый вход в комплексном объекте.
Пример представления алгоритмической композиции на основе Марковских цепей первого порядка