Поиск по этому блогу

воскресенье, 16 марта 2014 г.

Основы Max ("причесанная" лекция)

Приветствую вас дорогие друзья. По просьбе трудящихся выкладываю презентацию и саму лекцию в виде более-менее удобоваримой статьи.
К сожалению с записью лекции так ничего толком до сих пор и не вышло, посему практику вам показать не смогу.
Хотя... Если наберется достаточное количество желающих, то тогда я постараюсь привести практический материал к виду статьи или же запишу скринкаст.





Введение

Что же такое MAX?
Max это аудиовизуальная среда программирования, не требующая глубоких знаний языков программирования, имеющая в своей основе модульную структуру. С помощью данной системы любой далекий от кодинга человек, сможет реализовать свои аудиовизуальные идеи.


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

К сожалению, исчерпывающей, четко структурированной информации по данному программному обеспечению в России (как показала практика, не только в России) на данный момент не представлено, нет также организованного, активного комьюнити специалистов.



Своей же целью и целью данной лекции я ставлю, популяризацию широчайших возможностей MAX для специалистов и любителей аудиовизуальных направлений.

И самое главное! Это избавление от страха, что Max это мега машина по детонации мозга с последующим выделением мозговых тканей через ушные проходы, ноздри и глазницы.



Далее, в процессе лекции, мы рассмотрим технические возможности, историю и перспективы развития программы.



А также сравним MAX с возможными альтернативными вариантами, объясним, почему не надо бояться кажущейся сложности программы и ответим на главный вопрос - действительно ли в перспективе возможности MAX могут оказаться безграничными для специалистов широкого спектра мультимедиа.

Модульные системы программирования, синтеза и DSP.




Для начала следует провести небольшую классификацию модульных систем и разобраться что вообще это такое и откуда растут ноги.



Предками всех виртуальных систем можно смело назвать "железные" модульные системы синтеза. Суть их заключается в том, что мы имеем наборы определенных блоков (модулей — отсюда и название) и можем их соединять в любой удобной для нас последовательности собирая как кирпичики конструктора блоки эффектов, модуляции и синтеза.



В некоторой степени все DAW тоже имеют модульную структуру. - т. к. студийные элементы изначально так же монтировались в рэк имели схожую коммутацию. Наиболее близко к аналоговым рэковым системам приближена DAW propellerhead reason.



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

И прежде чем двигаться дальше, следует немного здержаться на самой простой виртуальной модульной системе аудио процессинга - Audiomulch.


Которая, в отличии от Reason, является действительно модульным программным продуктом. Она по своему функционалу представляет из себя в некоторой степени EJAY среди модульных систем.



Причина такого определения с моей стороны кроется в том, что модульная структура достаточно проста и в ней мы оперируем уже готовыми достаточно комплексными по своей начинке блоками. Например блок хоруса, будет обычным хорусом без возможности глубокого редактирования компонентов данного блока, проще говоря программа представляет своего рода DAW, но вместо инсертов и посылов мы используем патчкорды.



Модульные цифровые системы синтеза — по сути дублируют своих аналоговых собратьев, а частенько вообще представляют собой виртуальную копию. Некоторые в плюс к "железным" репликам, имеют определенный дополнительный функционал.

И наконец апогеем виртуального модульного конструирования являются модульные системы программирования

предоставляющие безграничные возможности в виде еще большего набора элементов, которые в свою очередь позволяют реализовывать нестандартные решения как с точки зрения контроля так и с точки зрения генерирования звука или же вносить свои изменения в уже известные и реализованные алгоритмы.

Проще говоря, данные системы позволяют людям не желающим копаться в программном коде реализовывать свои музыкальные (и не только) идеи с помощью визуальной модульной среды парой движений мыши в режиме реального времени.

Что так же выделяет их на фоне языков программирования, при работе с которыми для проверки программ приходится проходить по вечному кругу — пишем код->компилирем> тестим>корректируем>компилируем>тестим


MAX
Ну, а теперь, пожалуй, стоит перейти к программной среде в связи с которой мы собственно сегодня и собрались здесь.

Max (как и его аналоги) представляет собой графически ориентированный язык программирования для работы с аудио и видео материалом.

Разработан компанией «Cycling 74» из г. Сан-Франциско.

За свою 20-летнюю историю, данный продукт был неоднократно использован композиторами, исполнителями, разработчиками программного обеспечения, учеными и художниками для создания инновационных записей и инсталляций.

Например небезызвестные Autechre, используют MAX для создания композиций от начального алгоритма до звукоизвлекающих элементов.


Так же известно что в своем творчестве Max использовали Apparat, AFX и Radiohead.


Это я все к тому, что не только ученые и ботаники пользуются максом.

1.1 История развития системы

Изначально Мах был создан в середине 1980-х годов на базе IRCAM (Institut de Recherche et Coordination Acoustique/Musique - институт исследования и координации акустики и музыки).



Миллером Паккетом как редактор для компьютеров Макинтош, открывающий композиторам доступ к авторской системе интерактивной компьютерной музыки. На тот момент в IRCAM были собраны лучшие умы мира, занимающиеся исследованиями в области компьютерной музыки. Среди них был и Макс Мэттьюс (Max Mathews) - пионер электронной музыки, создавший первую музыкальную программу MUSIC I. Имя Max было присвоено программе в его честь. Это было сделано потому, что именно Макс Мэттьюс разработал “real-time scheduling”(планирование в реальном времени) алгоритм RTSKED, ставший основой программы Миллера Паккета. Суть этого алгоритма заключается в следующем: вычисления происходят в нескольких параллельных элементах, которые выполняют какие-то действия некоторое время, затем сообщают системе о завершении и далее бездействуют до тех пор, пока не будет получен сигнал-триггер. Это и является фундаментальной идеей Макса (программы).



В 1989 году в IRCAM была разработана версия под названием Max/FTS (FTS – faster than sound - быстрее, чем звук), являвшаяся предшественником Max/msp.


В 1989 году программа была лицензирована IRCAM для компании «Opcode Systems», которая в 1990 году продала разработанную и расширенную Дэвидом Цикарелли коммерческую версию программы под названием Max. Поскольку программное обеспечение никогда не являлось основным элементом разработок компании «Opcode Systems», она прекратила активное развитие данного продукта в середине 90-ых.



Текущая коммерческая версия Max с тех пор разрабатывается компанией Дэвида Цикарелли «Cycling '74», основанной в 1997 году.


В 1996 году Паккет также выпустил в свет, полностью перепроектированный бесплатный программный продукт под названием Pd (сокращение от Pure Data). Несмотря на многие принципиальные отличия от оригинала, разработанного IRCAM, он использовал те же принципы работы, что и Max/MSP.


На данный момент Max обладает множеством расширений и версий, частично полученных из последующих разработок Паккета в Pure Data.

Первое глобальное расширение, разработанное в 1997 году получило название MSP (сокращение от Max Signal Processing или же от инициалов разработчика - Миллера С. Паккета). Это дополнение для Max позволяло производить различные манипуляции с аудио материалом в реальном времени, что в свою очередь, позволяло пользователям создавать свои собственные синтезаторы и блоки эффектов. До этих пор Max мог лишь взаимодействовать с различными аппаратными синтезаторами, сэмплерами и т.д. как язык "контроля", используя MIDI или любой другой протокол передачи данных.

Чуть позже, в 2003 году, «Cycling '74» создает еще одно расширение для Max, ориентированное на работу с видео. Данное расширение получило название Jitter, оно обеспечивало возможность работы с видео и трехмерной графикой в реальном времени.



2 апреля 2009 вместе с 8 версияей Ableton Live на рынке появился Max4live, открывший все возможности макса для реализации m4l объектов.




В ноябре 2011 года была издана 6-я версия Max, поддерживающая 64-х битные операционные системы, и четвертое дополнение под названием Gen, позволяющее производить низкоуровневое редактирование и экспортировать свои наработки в код. По моим предположениям выход данного расширения был обусловлен тем, что экспорт в виде VST был выкинут после объединения Cycling и Ableton. Выход же gen компенсировал данный недостаток. Ну и по моему скромному мнению жажда денег Cycling =)



Так же в 2013 году появилось расширение Mirra являющееся первой ступенью для перехода на мобильные платформы.

1.2 Язык системы MAX/MSP

Простейший язык Max и его подпрограмм представляет собой систему, работающую с потоками информации. Каждая создаваемая в Мах программа называется patcher, по аналогии со студийной коммутацией при помощи шнуров соединения, именуемых patch-cord . По сути, они представляют собой виртуальную платформу, в пределах которой создаются соединения стандартных блоков, каждый из которых действует как самостоятельная мини программа (в реальности это динамически подключаемые библиотеки).


Каждая мини программа имеет возможность получения входных сигналов с одним и более входами (inlets), а также возможность вывода данных за счет выходов (outlets). Объекты пропускают сообщения от своих выходов до входов связанных с ними объектов.



Max поддерживает шесть основных типов данных, которые могут передаваться в виде сообщений от объекта к объекту: int (целые числа), float (числа с плавающей точкой), list (набор данных), символы, bang-сообщения (простейшие сигналы, работающие, как триггеры) и signal (передачи аудио информации по виртуальным аудио-кабелям в MSP).


Сам Max изучается пользователем посредством постепенного расширения собственного словаря объектов, а точнее того, как они функционируют в пределах создаваемой программы. Например, объект metro представляет собой простой метроном, а объект random производит генерирование случайных целых чисел. Большинство объектов не имеют графического оформления, и состоят только из имени объекта и нескольких аргументов или атрибутов, вводимых в поле объекта. Некоторые объекты имеют графическое представление и включают в себя ползунки, числовые таблицы, редакторы таблиц, выпадающие меню, кнопки и множество других элементов. Данные объекты служат для интерактивного управления программой.

2 Сравнение с конкурентами

2.1 Плюсы Max
Прежде чем начать сравнение с конкурентами стоит немного остановиться на основных плюсах Max, выделяющих его на фоне конкурентов.

a) Модульная структура (О которой уже заходила речь).
Данная особенность сразу же исключает из дальнейшего сравнения не столь дружелюбные для музыкантов скриптовые языки, такие как Super Collider и CSound.

б) Интерактивная помощь и дружественный интерфейс
Из минусов кодинга вытекает и второй плюс отностительно простоты макса - это дружественный интерфейс и графическая оболочка.

При этом макс, как язык программирования, хоть и имеет свой собственный словарь объектов, знать всю базу объектов совершенно не обязательно, во первых — в pallete макса все объекты удобно разбиты на группы, и мы можем выбрать любой объект исходя из предпочтений в данный момент. Во вторых в максе имеется такая замечательная вещь как автозаполнение и контекстная подсказка. Автозаполнение, в стиле MS word предлагает нам варианты объектов исходя из введенных комбинаций символов. Контекстная подсказка же, в свою очередь, в краткой форме поясняет предназначение того или иного объекта выбранного из выпадающего списка автозаполнения.

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

в) Комъюнити

Хотя на просторах нашей родины так до сих пор и не появилось полноценного комьюнити, оно (комьюнити) живет и здравствует как на официальных форумах так и на сторонних. Где каждый пользователь готов помочь в реализации тех или иных идей, но не особо высокий стаж владения одним из расширений не позволяет сделать это адекватно.

2.2 Сравнение с альтернативами

NI Reaktor VS MAX


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

  • Обе системы работают как на маках так и на win, стоят по 400$.
  • Обе являются графическими средами.
  • Обе прекрасно справляются как с управлением «железом» так и с проектированием звуковых модулей.
Но!
  • Reaktor практически на никаком уровне обрабатывает видео материал.
  • Так же в Reaktor отсутствует поддержка HI - Human Interface (джойстики и т. п.)
  • Обучение Reaktor не столь продуктивно по сравнению с Max, т. к. отсутствуют информативные вспомогательные патчи и контекстные подсказки, точнее они хоть и реализованы, но по сравнению с Max проигрывают по всем статьям.
  • Для любителей кодинга, Max опять же отличается наличием поддержки C, Java, JavaScript.
И все же у Reaktor'а есть одно достоинство с которым Max не поспорит. Reaktor поддерживает загрузку системы в качестве VST плагина в отличии от Max, который перестал поддерживать экспорт в VST после объединения с Ableton.


PD VS MAX

Во многом эти системы схожи, т. к. «генетически» получили одного и того же отца.


И в принципе у PD есть очень большой плюс — она бесплатна и распространяется с открытым программным кодом.

Но дальше идут одни минусы:
  • Работа с видео присутствует, но поддерживается сторонними библиотеками не идущими в комплекте с программой, которые к тому же по функционалу проигрывают Jitter'у.
  • С помощью и обучением все так же не столь хорошо как хотелось бы. Имеются вспомогательные интерактивные проекты, но при этом программа не настолько интерактивна в связи с чем не столь приветственна для новичка.
  • PD — работает только как VST хост, т.е. мы можем только загружать VST в PD.
Ну вот как-то так. После этого я уже переходил к практической части.

Комментариев нет:

Отправить комментарий