16.0.1 Что такое Max?
Первый вопрос который должен у вас возникнуть при прочтении заголовка это "Почему именно Max в заголовке и каким это образом он связан с max4live (далее m4l)?". Далее по тексту все подробно будет разжевано, но для нетерпеливых, дабы интерес не угас уже на старте, поясню. Фишка в том, что по сути m4l является тем же Максом, за тем лишь исключением что для запуска m4l необходимо сперва запустить Ableton Live, ну и есть некоторые ограничения при работе с видео, а так же ограничения накладываемые самой архитектурой Live.
Что же такое Max?
Говоря не совсем простыми словами, это визуальная среда программирования, не требующая глубоких познаний языков и имеющая в своей основе модульную структуру. Ну, а это в свою очередь говорит нам о том, что даже далекий от "кодинга" человек с помощью Max вполне может реализовать свои самые потаенные аудиовизуальные желания.
Ну и перед тем как приступить к постижению всех нюансов работы с этим "монстром", следует все же немного притормозить и разобраться с тем, что это вообще такое модульные системы синтеза и программирования.
Действительно, а что это такое? Ну судя по названию можно сделать логический вывод, что предками у них являются "железные" модульные синтезаторы которые работали абсолютно аналогичным образом. В них имелись определенные блоки (модули — отсюда и название) которые можно было соединять в любой удобной для нас последовательности собирая как кирпичики конструктора блоки эффектов, модуляции и синтеза.
На данный момент существует некоторое количество такого рода виртуальных систем, и пожалуй, самой простой является Audiomulch, который представляет из себя в некоторой степени EJAY среди модульных систем. Причина такого определения с моей стороны кроется в том факте, что модульная структура данного софта достаточно проста и в ней мы оперируем уже готовыми и достаточно комплексными по своей начинке блоками.
Следом за Audiomulch идут виртуальные модульные синтезаторы, которые по сути дублируют своих аналоговых собратьев (а зачастую выступают и копиями своих прародителей).
Ну и наконец, то ради чего весь разговор и затевался, модульные системы программирования, к коим и относится "герой этого романа". Данный софт предоставляет куда больше возможностей за счёт огромного набора нестандартных элементов, которые в свою очередь позволяют реализовывать нестандартные решения как с точки зрения контроля так и с точки зрения генерирования звука. Проще говоря если вы ничерта не шарите в кодинге, но хотите сделать свой синтезатор или эффект, то Max и его собратья именно та самая "палочка выручалочка".
Помимо этого, "знатокам кода", тоже не стоит закрывать данную страницу со словами "Ааа, ну все ясно", потому как и кодерам данные системы придутся по душе за счёт того, что в отличии от языков программирования вам не придётся проходить по вечному кругу — пишем код->компилирем> тестим>корректируем>компилируем>тестим. Вместо этой рутины вы сможете наблюдать результаты всех ваших манипуляций в реальном времени.
16.0.2 История
Итак Max, как и его аналоги, представляет собой графически ориентированный язык программирования для работы с аудио и видео материалом. Разработан Cycling 74, расположенной в Сан-Франциско.
Первая версия Мах была создана Миллером Паккетом в середине 1980-х годов на базе IRCAM (это институт такой), как редактор для компьютеров Макинтош, открывающий композиторам доступ к авторской системе интерактивной компьютерной музыки. На тот момент система выступала только в качестве управляющего элемента.
На тот момент в IRCAM были собраны лучшие умы мира, занимающиеся исследованиями в области компьютерной музыки. Среди них был и Макс Мэттьюс - пионер электронной музыки, создавший первую музыкальную программу MUSIC I (1957). Имя Max было присвоено программе в его честь т.к. именно Макс Мэттьюс разработал алгоритм обработки сигналов в реальном времени, ставший основой программы Миллера Паккета.
Суть этого алгоритма заключается в следующем: вычисления происходят в нескольких параллельных элементах, которые выполняют какие-то действия некоторое время, затем сообщают системе о завершении и далее бездействуют до тех пор, пока не будет получен сигнал-триггер. Это и является фундаментальной идеей Макса (программы).
В 1989 году в IRCAM была разработана версия под названием Max/FTS (FTS – faster than sound - быстрее, чем звук), являвшаяся предшественником Max/msp. Которая использовала для воспроизведения звука специальные DSP платы.
В этом же году программа была лицензирована IRCAM для компании «Opcode Systems», которая в 1990 году начала продажи разработанной и расширенной Дэвидом Цикарелли коммерческой версии программы, теперь уже названной Max.
Поскольку программное обеспечение никогда не являлось основным элементом разработок компании «Opcode Systems», она прекратила активное развитие данного продукта в середине 90-ых. Текущая коммерческая версия Max с тех пор разрабатывается компанией Дэвида Цикарелли «Cycling '74», основанной в 1997 году. (Название компании было выбрано в связи с катологом велосипедов 74 года, глядя на картинки из которого было почерпнуто вдохновение для дизайна первого сайта компании)
Параллельно с этим В 1996 году Миллер Паккет также выпустил в свет, полностью перепроектированный бесплатный программный продукт под названием Pd (сокращение от Pure Data). Несмотря на многие принципиальные отличия от оригинала, разработанного в IRCAM, он использовал те же принципы работы, что и Max.
На данный же момент Max обладает множеством расширений и версий, частично полученных из последующих разработок Паккета в Pure Data.
Первое глобальное расширение разработанное в 1997 году получило название MSP (сокращение от Max Signal Processing или же от инициалов разработчика - Миллера С. Паккета). Это дополнение для Max позволяло производить различные манипуляции с аудио материалом в реальном времени, что в свою очередь, позволяло пользователям создавать свои собственные синтезаторы и блоки эффектов. До этих пор Max мог лишь взаимодействовать с различными аппаратными синтезаторами, сэмплерами и т.д. как язык "контроля", используя MIDI или любой другой протокол передачи данных.
Позднее, в 2003 году, «Cycling '74» создает еще одно расширение для Max, ориентированное на работу с видео. Данное расширение получило название Jitter, и обеспечивало возможность работы с видео и трехмерной графикой в реальном времени.
Ну, и конечно же самое главное, 2 апреля 2009 года вместе с 8 версией Live выходит Max4live – открывший все возможности макса для реализации объектов, которые теперь стало возможно использовать без особых "костылей" в Live.
В ноябре 2011 года была издана 6-я версия Max, поддерживающая 64-х битные операционные системы, и четвертое дополнение под названием Gen, позволяющее производить низкоуровневое редактирование и экспортировать свои наработки в код. По моим предположениям выход данного расширения был в некоторой степени обусловлен тем, что экспорт в виде VST был выкинут после объединения Cycling и Ableton. Так же некоторое время спустя на этой же версии так вышло расширение Mira являющееся первой ступенью для перехода Max на мобильные платформы.
Ну а последняя на данный момент, седьмая, версия в основном коснулась юзабилити и улучшения перфоманса системы.
16.0.3 Язык Max или как это вообще работает
Простейший язык Max и его подпрограмм представляет собой систему, работающую с потоками информации. Каждая создаваемая в Мах программа называется patcher, по аналогии со студийной коммутацией при помощи шнуров соединения, именуемых patch-cord.
По сути, каждый патчер представляет собой виртуальную платформу, в пределах которой создаются соединения стандартных блоков (объектов), каждый из которых действует как самостоятельная мини программа (в реальности это динамически подключаемые библиотеки). Каждая мини программа имеет возможность получения входных сигналов с одним и более входами (inlets), а также возможность вывода данных за счет выходов (outlets). Объекты пропускают сообщения от своих выходов до входов связанных с ними объектов, ну и внутри у себя всякие там операции производят. И вот из этих вот объектов вы и будете в дальнейшем собирать эффекты и синтезаторы, а в случае с m4l и манипулировать API "лайва" (говоря простым языком управлять функционалом live).
Сами объекты в свою очередь делятся на графические и нет. Как понятно из названия одни из них (те которые графические) необходимы в первую очередь для создания интерфейса, в то время как обычные делают всю "черную работу".
Касаемо же самого процесса обучения Максу, весь секрет заключается в постепенном расширении собственного «словаря» объектов (модулей), точнее вы просто тупо запоминаете как они (эти самые модули) работают.
Так же если у вас все хорошо с английским, вы так же можете параллельно с чтением данного материала осваивать интерактивные вспомогательные патчи, отсылки на которые я буду делать далее по тексту. Если же у вас с языком все не так хорошо, то не стоит отчаиваться, потому как принцип работы тех или иных объектов я расскажу вам в любом случае, просто описание будет более емким и менее интерактивным.
На этом, пожалуй можно покончить с введением и перейти к тому ради чего вы собственно и начали все это читать. К магии Макса!