К содержанию
fohbookбета/ grandMA3

Plugin на Lua

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

Версия ПО вашего пульта:4 фрагмента статьи для версий новее вашей4 фрагмента статьи для версий новее вашей4 фрагмента статьи для версий новее вашей4 фрагмента статьи для версий новее вашей3 фрагмента статьи для версий новее вашей3 фрагмента статьи для версий новее вашей3 фрагмента статьи для версий новее вашей2 фрагмента статьи для версий новее вашей2 фрагмента статьи для версий новее вашей2 фрагмента статьи для версий новее вашей2 фрагмента статьи для версий новее вашей
Быстрый выбор:

Plugin — программа на Lua, выполняющаяся внутри пульта. В отличие от Macro, это полноценный язык: переменные, условия, циклы, работа с Object шоу.

Появилось в 2.1 · в вашей версии этого нет

Версия Lua — 5.4.6.

Изменилось в 2.5 · в вашей версии работает иначе

Ядро Lua обновлено до 5.5.0. Plugin, хранящийся в Showfile в виде скомпилированного байткода, на новом ядре не запустится: его нужно пересобрать из исходника. Plugin, хранящиеся текстом, переносятся как есть.

Когда это оправдано

Пакетная обработка: переименовать сотню Object по правилу, раздать адреса, построить группы из Patch.

Проверки перед шоу: пройтись по шоу и сообщить о том, что забыто.

Диалоги с оператором: спросить параметр и выполнить действие с ним.

Интеграции: обмен данными с внешними системами.

Что нужно понимать

Plugin работает с деревом Object, поэтому знание структуры данных важнее знания синтаксиса Lua: язык можно освоить за вечер.

Редактор

Появилось в 1.8 · в вашей версии этого нет

В редакторе Plugin есть номера строк, показ табуляции, библиотека шаблонов кода, панель документации API и подсветка синтаксических ошибок.

Панель API — то, с чего стоит начинать: она отвечает на вопрос «как называется функция, которая мне нужна», быстрее любого поиска.

Убрали в 2.5 · в вашей версии ещё работает

HasActivePlayback() объявлена устаревшей и будет убрана. Вместо неё IsRunningPlayback() с той же сигнатурой. Функция пока работает, но на каждом запуске пишет предупреждение в Message Center.

Где брать

  • сообщество: форумы MA и репозитории с открытым кодом;
  • собственные, написанные под конкретное шоу;
  • шаблоны, которые проще переписать, чем изучать с нуля.
Осторожно

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

Plugin против Macro

Признак Macro Plugin
Логика Последовательность Полноценная программа
Условия и циклы Нет Да
Порог входа Минуты Часы
Отладка Простая Нужен опыт
Риск Ограниченный Выше

Большинство задач автоматизируются Macro. Plugin нужны там, где вы делаете одно и то же над десятками Object и делаете это регулярно.

С чего начать

командная строка
> Plugin 1
 
  1. Написать Plugin, который выводит сообщение, — убедиться, что цепочка работает.
  2. Научиться читать Object шоу и печатать их имена.
  3. Сделать первый полезный: например, отчёт по Patch.

Дальше станет видно, что стоит автоматизировать: это становится очевидным на третьем шоу подряд с одинаковой рутиной.

Нашли в статье ошибку, устаревшее или непонятное место?

рядом по смыслу