Введение

Программа предназначена для автоматического, автоматизированного и ручного управления осветительными приборами по интерфейсу DMX. В качестве преобразователей используются модули FARA DMX Access или Sunlite Suite.

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

Фара предоставляет художнику по свету отличные инструменты для создания динамичных световых картин, в ней предусмотрено автоматическое управление светом по времени, по событиям и от музыки.

Удобное оперативное управление приборами позволяет быстро создать сцену и сохранить её с помощью функции скриншота DMX в виде статической сцены. Скриншот DMX можно использовать и в том случае если подключен внешний пульт. Сцену можно создать на пульте, а в ФАРЕ сохранить скриншот DMX и потом запускать его.

Возможно удалённое управление программой при помощи DMX световых пультов, MIDI контроллеров, через интернет или с помощью пультов дистанционного управления.

Если программа устанавливается на переносной компьютер и её предполагается использовать на нескольких площадках, то рекомендуется установить для каждой площадки свой экземпляр FARA в свою папку, в этом случае адреса DMX могут быть разными, а программы, при правильном выборе имен приборов и названий адресов для каналов DMX, - одинаковыми.

Одной из ключевых особенностей является то что абсолютные адреса DMX программой FARA не используются. Для адресации приборов используются имена которые определяют прибор в библиотеке приборов. Это значительно упрощает процедуру замены приборов на другие. Даже если таблица адресов прибора не соответствует заменяемому, нужно только сохранить имя прибора и названия адресов каналов DMX. В этом случае все сэмплы, в которых используется этот прибор будут продолжать работать так, как будто никакой замены не было. Назначить имена для приборов и каналов DMX можно при помощи утилиты DJLib которая находится в папке с установленной программой. Во время первого запуска ФАРЫ - DJlib запускается автоматически. Так же DJlib будет запущен автоматически если файлы библиотеки приборов fixture.lib или fixture.dmx не будут обнаружены. Следует заметить что если у прибора несколько адресов одинакового цвета, то такие приборы лучше описать как несколько приборов. Например светодиодные рампы имеют несколько секций RGB. Такие секции нужно описать как отдельные RGB приборы, это позволит составлять бегущие огни по отдельной рампе. Если составить из таких рамп матрицу то на неё можно выводить рисунки, тексты или видео. Из-за низкой скорости DMX и ограниченного количества адресов качество изображения будет не очень высоким.


Управление приборами осуществляется сэмплами в которых описываются правила по которым меняется свет. Сэмплы могут быть объединены в сценарии. Кроме этого предусмотрено программное управление при помощи версии встроенного интерпретатора с языка Бэйсиик. В случае необходимости, Фара может работать самостоятельно без участия оператора, она подбирает сэмплы соответствующие текущей динамике музыки которые предварительно записаны в необходимую папку.

Для оперативного управления можно использовать однострочные функции. С их помощью можно назначать параметры на любую ручку на пульте дистанционного управления. Например яркость можно назначить на ручку DMX 1 функцией для яркости Remote(1)/2.55, а скорость движения бегущих огней на ручку DMX 2 командой Remote(2)/25.5 - в этом случае время шага будет изменяться от 0 до 10 секунд.

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



В папке с установленной программой есть два специальных файла которые, при необходимости настраиваются пользователем для правильной работы программы - autorun.bas и blackout.sc1 Если эти файлы не нужны - их можно удалить. После запуска FARA выполняет программу autorun.bas если она есть в папке с программой. В этой программе можно запустить сэмплы для включения свитчерных каналов, например питание сканеров выполнить предварительную настройку программы, запустить меню или даже просто вывести на экран напоминание. Файл blackout.sc1 выполняется при очистке панели. В него можно записать сэмплы которые нужно выполнить при выполнении blackout например установка подвижных приборов в начальную позицию или очистка каналов которые недоступны программе. Файл blackout.sc1 выполняется только для панели на которой выполняется blackout.


Два экземпляра программы на одном компьютере одновременно не запускаются, при попытке запуска второго экземпляра программы - окно запущенной Фары становится видимым если оно было скрыто.

В программе есть возможность управления некоторыми элементами механизации сцены - например открытие занавеса. Эти возможности становятся доступными при наличии специального оборудования.


Начало работы

Для установки программы нужно запустить инсталлятор FaraLightInstaller.exe. Если установка производится первый раз, то, для регистрации файлов ФАРЫ, нужно запустить инсталлятор от имени администратора. Если прогрограмма уже была установлена - будет предложено выполнить обновление. Обновляются только файлы программы, сэмплы и папки не изменяются.

Программа устанавливается в выбранную папку (как правило C://fara/), кроме программы в эту же папку устанавливаются дополнительные программы и утилиты, а также две программы для работы с системой это двухпанельный файловый менеджер Double Commander и графический редактор PixBuilder. Все необходимые файлы содержатся внутри папки fara и поэтому для создания резервной копии просто скопируйте всю папку fara в другое место или под другим именем.

Быстрый старт

  • Установите программу FARA в выбранную папку.
  • Запустите программу. Если библиотека приборов не создана то откроется библиотекарь. В редакторе библиотеки приборов выберите или запишите приборы которые используются в вашем проекте.
  • Для увеличение функциональности автоматически сгенерированных программ необходимо чтобы в названии приборов установленных перед актерами было слово FRONT, а в названиях приборов расположенных за актерами было слово CONTRA.
  • Сохраните созданную библиотеку и запустите Фару.
  • Запустите программку "Утилиты"-"Мастер генератор сэмплов" в открывшемся окне включите галочку "Запустить сгенерированное меню" и нажмите кнопку "создать".
  • В открывшемся меню можно выбрать необходимый свет.

Запустить программу можно прямо из папки C:\fara\fara.exe. Если программа запускается первый раз - то будет предложено запустить библиотекарь для создания списка приборов. В библиотекаре создаём список приборов в котором указываем соответствие имени прибора - его адресу. Тип прибора выбираем из правой половины - библиотеки приборов. Если необходимого прибора нет - то создаем новый прибор. Нажимаем в меню НОВЫЙ ПРИБОР, заполняем название производителя и название прибора и нажимаем записать. В последней колонке записываем список используемых адресов. Список адресов это простой текст. Каждая строка состоит из номера адреса DMX прибора начинается от 1. затем, через запятую название адреса. Если необходимо, в строку можно добавить ключевые слова bright, blackout которые указывают ФАРЕ что эти адреса нужно изменять при изменении яркости мастера и выключать во время команды блокаут. Для сохранения сделанных изменений нужно выбрать в меню команду РЕДАКТОР-СОХРАНИТЬ. После этого прибор можно перетащить мышкой на нужный адрес или просто дважды кликнуть на названии прибора в списке приборов. Кстати все адреса можно не записывать если они не нужны. Главное записать последний (максимальный) адрес - чтобы правильно определялось количество адресов прибора.

Один адрес может иметь несколько названий, а вот использовать одинаковое название для нескольких адресов или индексов нельзя. Все используемые названия в одном приборе должны быть разными.
Имена приборов тоже имеют очень важное значение. В выпадающем списке можно сразу выбрать название. Библиотекарь автоматически добавляет к названию прибора цифровой индекс.По окончании создания списка приборов нужно нажать команду ЗАПУСТИТЬ ФАРУ.
Предлагаются следующие

Contra
приборы расположенные сзади артистов, для танцпола можно назвать приборы расположенные вокруг танцпола.
SideLeft
приборы расположенные сбоку от артистов на башнях или прострелах слева
SideRight
приборы расположенные сбоку от артистов на башнях или прострелах справа
Front
приборы освещающие артистов спереди
FrontLeft
приборы освещающие артистов спереди слева
FrontRight
приборы освещающие артистов спереди справа
Stage
приборы расположенные на сцене или спец эффекты
Head
приборы с подвижным корпусом

Приборы можно называть любыми удобными именами. Не рекомендуется использовать символ пробела в названии приборов.


После назначения адресов нужно открыть нужный генератор сэмплов и создать сэмпл, затем сохранить сэмпл в файл и запустить созданный сэмпл на любой панели. Можно просто нажать F1 или F2 для запуска на левой или правой панели.
Можно воспользоваться генератором сэмплов УТИЛИТЫ - МАСТЕР-ГЕНЕРАТОР СЭМПЛОВ (Sample Maker). С помощью этого мастера можно быстро создать набор сэмплов для вашего набора приборов. После окончания работы мастера, созданные сэмплы можно запускать на любой панели. Нужно помнить что для включения света могут понадобиться дополнительные команды например открыть SHUTTER у сканеров или установить DIMMER в значение более 0 на некоторых RGB приборах. Утилита создаёт сэмплы для всех приборов которые есть в библиотеке, поэтому сначала нужно создать библиотеку приборов. Если библиотеку приборов нужно изменить - то после этого можно снова запустить SampleMaker и он снова создаст все свои сэмплы для всех приборов, в том числе и для новых

Важным отличием ФАРЫ от остального светового софта является то-что свет можно включить сразу после заполнения списка приборов.



Структура папок и файлов

Все сэмплы должны находится в папке "\SAMPLES\" или во вложенных в неё папках, которая находится в папке с файлом программы. Если сэмпл находится не в этой папке - он не может быть выполнен в автоматическом режиме и к нему нельзя привязать "горячую клавишу". Рекомендуется, в папке \SAMPLES\ размещать только файлы сценариев (*.sc1), а файлы сэмплов входящие в сценарии размещать вo вложенных в неё папках. Таким образом можно создавать различные конфигурации, устанавливая программу в разные папки можно создавать различные настройки.


Структура папок программы

Папка с программой FARA
Fara.exe
autorun.bas
blackout.sc1
Program
папка с программами, папка недоступна для горячих клавиш или для автоматического выполнения)


Samples
(папка с сэмплами)
AutoLight
(папка с сэмплами для автоматического управления светом)


Control
(папка с сэмплами для управления питанием приборов)


Рабочие папки с сэмплами
Папка с другой программой FARA
Fara.exe
autorun.bas
blackout.sc1
Program
(папка с программами папка недоступна для горячих клавиш или для автоматического выполнения)


Samples
(папка с сэмплами)
AutoLight
(папка с сэмплами для автоматического управления светом)


Control
(папка с сэмплами для управления питанием приборов)


Рабочие папки с сэмплами


На основе Сэмпла создаётся файл с параметрами управления сэмпла. Если сэмпл входит в состав сценария, то время выполнения и палитра сэмпла могут перекрываться параметрами из сценария. В автоматическом режиме палитра может быть изменена автоматом выполнения сценария. Каждый сэмпл имеет свой тип файла, изменять тип файла нельзя. Из сэмплов можно создавать сценарии для одновременного выполнения. Использовать папки которые находятся выше чем /Samples/ нельзя, ошибка не произойдет, но файл не будет запущен. Для создания сложных программ или сценариев нужно использовать программу на БЭЙСИКЕ. На Бэйсике можно создавать меню или последовательное меню для удобного выбора программ. Для быстрого создания меню можно использовать мастера меню который поможет создать меню для папки.

Клавиши предопределённые в программе

ESCСделать активным главное окно программы.
F1открыть файл помощи
F2 -
F3открыть план размещения приборов
F4открыть редактор "горячих клавиш"
F5открыть DMX монитор
F6открыть протокол программы
F7открыть окно регулировки звука
F8Открыть Панель управления (Single)
F9 -
F10заблокировать/разблокировать клавиатуру
F11Настройка для левой панели
F12Настройка для правой панели
TABпереключить активную панель, для клавиш
Shift+F1Настроить кроссфейдер для левой панели
Shift+F2Настроить кроссфейдер для правой панели
alt+F1Загрузить сэмпл для левой панели
alt+F2Загрузить сэмпл для правой панели
alt+F4Выключить ФАРУ
alt+F11Очистить Левую панель и запустить blackout
alt+F12Очистить правую панель и запустить blackout
ctrl+F1Переключить режим для левой панели(Обычный/Соло)
ctrl+F2Переключить режим для левой панели (Обычный/Соло)
ctrl+F5Открыть DMX in монитор
ctrl+влевовключить кроссфейдер влево
ctrl+вправовключить кроссфейдер вправо
ctrl+пробелпауза активной панели, без выключения cэмпов
влевоперемещать кроссфейдер влево
вправоперемещать кроссфейдер вправо
вверхувеличить Мастер (яркость)
внизуменьшить Мастер (яркость)

клавиши '1' .. '0' , 'A' .. 'Z' предназначены для быстрого доступа к сэмплам и могут быть переопределены пользователем в окне "горячие клавиши"
клавиши Ctrl+'1'..Ctrl+'0', Ctrl+'A' Ctrl+'Z' используются в сэмплах - "Бликах".
клавиши F1, F2, ctrl+F1, ctrl+F2 в редакторах сэмплов служат для загрузки/перезагрузки сэмпла на панель

Параметры запуска ФАРЫ

Во время запуска Фары можно использовать следующие параметры

Параметры могут быть указаны в любом порядке, если в имени файла или пути есть пробел то такое имя нужно взять в кавычки.
Например Fara.exe -b "$samples\рабочие сэмплы\F 1.bas"
Но лучше пробелы в именах файлов не использовать нигде.

Сэмплы

Во многих системах управления светом сначала создаются сцены которые затем можно использовать для построения световой картинки. В ФАРЕ есть готовые сцены в которых нет приборов, из-за этого такие заготовки называются Сэмплы. Любой сэмпл создаёт свою группу приборов, поэтому в ФАРЕ удобнее чтобы каждый прибор имел свой адрес. В сэмплах выбираются световые приборы и описываются правила их поведения. Каждый сэмпл хранится в отдельном файле. Имя файла задаётся пользователем, а расширения определяют к какому сэмплу относится этот файл. Для каждого сэмпла формат файла свой и они не одинаковые, поэтому изменять расширение нельзя. Сэмплы, предназначенные для регулирования яркости света используют только адреса DMX с названиями R, G, B , соответственно красный, зелёный, синий, остальные адреса не используются и могут быть изменены только в сэплах статического света, "Бликах" или при помощи функций в Бэйсике или однолинейных функциях.



Для создания нового сэмпла - откройте необходимый редактор, в открывшемся окне нажмите кнопку "Сохранить как" (save as) и сохраните новый сэмпл, после этого можно начинать редактировать. Иначе вы будете редактировать сэмпл открытый первым.


Список генераторов сэмплов :

Сэмпл статического света (сцены)

Функционально Сэмпл статического света используется аналогично сценам в большинстве световых пультов.Однако функции значительно расширены - Сэмпл состоит из трёх страничек "Старт", "Значения", "Стоп" с помощью которых можно очень гибко управлять поведением света. Не обязательно заполнять все страницы, достаточно заполнить только необходимую, например если нужно включить свитчер, то нужно заполнить включение только на странице СТАРТ. А если нужно выключить свитчер, то можно заполнить значения только на страничке СТОП или на страничке СТАРТ установить значения для выбранных адресов=0 и включить галочку. С помощью этого генератора можно на любые адреса приборов посылать любые данные. На странице "сэмпл" регулируются параметры запуска сэмпла. А также устанавливаются флажки характеристик. На странице "Старт" Устанавливаются значения для используемых параметров приборов. Для того чтобы параметр был включен при выполнении необходимо установить флажок напротив выбранного параметра. Страница "Старт" используется для подготовительных включений, например для подачи питания на нужную линию - типа включение зеркального шарика. Значения на странице "Старт" включаются сразу, без нарастания. На странице "Значения" для необходимых приборов устанавливаются требуемые значения. Значения плавно увеличиваются со скоростью указанной в параметрах сэмпла. Страница "стоп" используется для выключения указанных на ней приборов. На отмеченные адреса будет плавно послано указанное значение c заданной скоростью.

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

На страничках "Старт" и "Значения" в качестве значения можно указать однострочную функцию, в результате прибором можно управлять с внешнего пульта или реагировать на изменения возникающие в приборах.
Ещё одна интересная возможность - случайный выбор значений. Для этого нужно использовать функцию random(255), в скобках указывается максимальное значение. Если эту функцию вставить на страничке "Старт" то она будет вызвана только один раз, а если на страничке "Значения" - то будет вызываться всё время пока работает сэмпл.

Будьте внимательны - если ввести значения для одного и того же адреса на страницах "СТАРТ" и "ЗНАЧЕНИЯ" то на этот адрес будет выведено сначала цифра указанная на странице "СТАРТ", а затем через установленное время задержки выполнения старта, будет плавно нарастать от 0 до указанного уровня на странице "ЗНАЧЕНИЯ" в результате свет моргнёт.

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


Сэмпл переливающегося света "Радуга"

Генератор предназначен для создания сэмплов с плавным изменение цвета. Стартовый цвет указывается на странице параметров сэмпла. Диапазон изменения показывает на сколько цвет может изменяться от стартового в градусах по цветовому кругу. Максимальное значение +- 180, в этом случае изменяться будет по всему кругу, на любой цвет. Если поставить 0, то цвет изменяться не будет. Во время работы сэмпла используются только адреса приборов с именами R, G, B, (красный, зелёный, синий) другие адреса не используются. У сэмпла есть возможность синхронного запуска с другим сэмплом если установить галочку "Только для включенных приборов". В этом случае после запуска сэмпл будет управлять только теми приборами у которых адреса R или G или B будут включены. Это можно использовать например при загрузке картинки на матрицу и затем эта картинка будет изменять свой цвет. Спад после стопа определяет время выключения приборов, если это время поставить 0 - то приборы останутся включенными последним светом.


Сэмпл на основе рисунка

Генератор предназначен для создания сэмплов на основе сканирования рисунка. Во время работы выбранный рисунок сканируется в указанном направлении и цвет пикселей рисунка передаётся на выбранные приборы. Используются только адреса приборов с именами R, G, B, (красный, зелёный, синий) другие адреса не используются. Если назначенный стартовый цвет сэмпла отличается от черного - то палитра рисунка будет смещаться по цветовому колесу на выбранный цвет.

Можно использовать любой свой рисунок, для загрузки нажмите на рисунок внизу редактора. Картинка, которая используется в сэмпле сохраняется в файле сэмпла. Рекомендуется использовать картинки размером 200 на 200 пикселей, но это не принципиально, только в целях экономии памяти.



Сэмпл "Ретранслятор"

Сэмпл берёт указанный пиксель или несколько пикселей с экрана монитора и передаёт их выбранным прожекторам. Удобно передавать видео или создавать цветомузыку на основе программ - визуализаторов музыки. При помощи регуляторов можно корректировать получаемый цвет и динамику.



Сэмпл "Матрица"


Создание группы приборов. С помощью этого сэмпла осветительные приборы можно объединить в группу с определенным количеством строк и столбцов. На страничке "Матрица" нужно выбрать количество строк и столбцов, а затем перетащить на созданные кнопки необходимые приборы из левого столбца. Используются только приборы у которых есть адреса с именами R,G,B другие адреса не используются. Если включить галочку "вывести на прибор" то при нажатии на кнопку, на назначенный прибор, на адреса R,G,B будет выведено максимальное значение 255, а при отпускании кнопки =0.

На страничке "Режим работы" нужно назначить режим. Сэмпл выполняет только один режим - тот который который был включен при сохранении.


Режим "Сдвиг/Очистка" сдвигает включенные приборы по матрице согласно выбранному правилу.


Галочка "Выключить приборы по СТОП" предназначена для выключения приборов во время остановки сэмпла, если эту галочку очистить то приборы остануться в том состоянии в котором их настигла команда остановки сэмпа. Режим необходим для загрузки на матрицу картинок. После загрузки картинки, матрицу можно очистить другим сэмплом для этой матрицы. Можно после загрузки картинки запустить сэмпл "РАДУГА" для всех приборов матрицы с включенным режимом "только для включенных приборов".

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


Cэмпл группировки "Эхо"

Повтор света с задержкой. Цвет RGB который включается у мастера - повторяется на приборах в порядке очереди в списке. Каждый прибор может быть использован только один раз, но любой прибор сам может быть мастером в другом сэмпле Эхо. Опция "Игнорировать цвет" - позволяет использовать одноцветные приборы. Сэмпл можно использовать для создания группы приборов. Для этого нужно время задержки шага поставить 0.

Сэмпл бегущих огней



На основе этого генератора создаются бегущие огни для любого количества приборов. Используется только адреса приборов с именами R, G, B, (красный, зелёный, синий) другие адреса не используются. Если задан цвет шага, то этот цвет не изменяется ни при подстройке сэмпла ни в автоматическом режиме. Бегущие огни могут работать как в обычно режиме - последовательно переключая заданные шаги, так и в режиме случайного выбора шага. В таком режиме можно сделать например звездное небо. Кроме того есть возможность изменять цвет бегущих огней в режиме радуги - когда цвет плавно переходит в другой или в режиме случайного выбора цвета, в этом случае каждый следующий шаг будет с новым цветом.



Сэмпл бликов

Сэмпл предоставляет возможность прямого, мгновенного включения (или выключения) любого адреса DMX который описан в библиотеке. Сэмпл удобно использовать для ручного включения генераторов спец эффектов (дым,снег и т.д.), включения стробокопов, блиндеров, создания ярких вспышек группой приборов. Используются фиксированные комбинации клавиш Ctrl+цифра или буква. В первом столбике выберите необходимую комбинацию клавиш, во втором столбике нужный прибор, на страничке "Значения" установите необходимое значение для этого канала. На страничке "Параметры" выберите режим сэмпла при запуске. Можно создать несколько сэмплов с разными параметрами запуска и объединить их в сценарий. В этом случае параметры запуска "Бликов" нужно зафиксировать. Во время редакции можно нажать необходимую комбинацию клавиш и она будет сразу активирована. Есть небольшая хитрость - если во время выключения первым отпустить ctrl а затем клавишу - то Блик останется включенным. А если первой отпустить клавишу а затем ctrl то Блик выключится. Этим можно пользоваться. Если установлена галочка "Сэмпл не выключать" - сэмпл остается включенным во время очистки панели, но включенные каналы могут быть выключены сэмплом очистки DMX. Если сэмпл необходимо отключить - то эту галочку нужно очистить на форме "Настроек".



Зарезервированы следующие клавиши:
Ctrl+0 - очистить все включенные блики
Ctrl+1 - включить режим "КНОПКА" - клавиша нажата - канал включен. Будьте внимательны, далеко не все клавиатуры поддерживают большое количество одновременно нажатых клавиш.
Ctrl+2 - включить режим "ПЕРЕКЛЮЧАТЕЛЬ" - выключение вторым нажатием.
Ctrl+3 - включить режим "СОЛО" - нажатые включаются, остальные выключаются.

Сэмпл спектроанализатор

Спектроанализатор позволяет создавать сэмплы которые реагируют на музыку. Источником звука является линейный вход компьютера, микрофон или дополнительный модуль MSGEQ7 с интерфейсом USB. Для каждой полосы спектра назначаются приборы у которых есть RGB. Допустимо назначать на один и тот же прибор несколько полос анализатора, можно с разным цветом.



Сэмпл частотомер

В этом сэмпле устанавливается частотная полоса спектра звука, при наличие сигнала в этой полосе включаются выбранные приборы. Эквалайзер на панели регулировки звука не влияет на работу сэмпла.



Сэмпл измеритель уровня

Позволяет организовать из приборов измеритель уровня сигнала или состояние байта в адресе DMX или REMOTE. Источник - функция по умолчанию SoundLevel, но можно указать и любую другую, например BAND(1) будет показывать уровень самой низкочастотной полосы спектроанализатора, а DMX(1) будет показывать состояние в адресе DMX(1).


Сэмпл подвижных приборов

В этом генераторе создаются любые перемещения приборов с подвижным корпусом. Используются адреса с именами PAN, TILT, PAN FINE, TILT FINE, SPEED PANTILT. Остальные адреса не используются. Все расчеты точек передвижения выполняются для 16 битного позиционирования, если у прибора 8 битное позиционирование - то у него есть только адреса с названиями PAN и TILT, на них посылается старшая половинка значения. После окончания работы сэмпла приборы остаются в последней позиции. Скорость работы прибора устанавливается на странице параметров сэмпла и передаётся на прибор по адресу с названием "SPEED PANTILT".


Есть возможность оперативно передвигать прибор в позицию с выбранными координатами, следует заметить что если в это время будет работать сэмпл использующий эти приборы - они будут конфликтовать и реальная позиция может оказаться искажена. Передвигать прибор можно клавишами управления курсора или на планшете для мышки. Если удерживать клавишу CTRL и регулировать клавишами курсора - то значения изменяются шагами по 255, эта возможность позволяет оперативно управлять приборами с восьмибитным позиционированием PAN и TILT.


На страничке "Фигура" выбираем способ позиционирования "Вписанные фииуры", "Спираль","Догонялки", "Эллипс" или "Полигон". Если выключить галочку "Выполнять циклически" то фигура будет выполнена только один раз, а прибор остановится в последней точке. Исключение - "Догонялки" и "Случайные точки" во вписанных фигурах, эти сэмплы независимо от галочки "Выполнять циклически" будут работать всё заданное время.


Вписанные фигуры строятся внутри четырёхугольника который задаётся четырьмя угловыми точками.


Спираль задаётся точкой центра и максимальной точкой в которой спираль закончится.


Догонялки передают DMX адресам PAN, PAN fine, TILT, TILT fine значения в соответствии с указанной функцией. Выбор мастера влияет только на кнопку "сбросить" - значения координат берутся у мастера.


Эллипс строится по трём точка - две точки - это точки полуосей и точка центра фигуры. Время обрисовки эллипса - это время за которое прибор должен пройти всю фигуру. Кроме того точки полуосей могу вращаться вокруг точки центра. Задаётся угол на который будет повернута фигура и время одного шага, в течении этого времени фигура не поворачивается.


Полигон - это набор точек на которые будет направлен прибор. Для каждой точки можно задать индивидуальную скорость движения 0..255 (посылается на адрес SPEED PANTILT ) и индивидуальное время остановки в этой точке в секундах. Если эти параметры не нужны - то в ячейки нужно записать -1.


Сценарии

Предназначены для одновременного или последовательного запуска нескольких сэмплов или сценариев. Если запускаются сценарии, убедитесь что не произойдёт перекрестный циклический вызов сценария. В этом случае может произойти аварийное завершение работы программы из-за переполнения памяти. Для каждого сэмпла устанавливаются необходимые параметры. Палитра и время работы сэмпла изменяются в соответствии с указанными. В автоматическом режиме палитра может быть изменена если не установлен флажок "Фиксированный".

В сценарий могут быть включены файлы программ (*.bas), при запуске программы из сценария, текущая программа, если она выполнялась, будет остановлена и перезагружена программой из сценария, будьте внимательны при запуске программ! Тексты программ которые используются в сценариях также как и сэмплов, должны находится в папке \SAMPLES\.


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


Сценарий можно создать кнопкой "Создать сценарий" в меню панели. Все сэмплы которые в это время загружены на панели будут включены в новый сценарий.



Запуск Сэмплов


Созданные сэмплы хранятся в папках \Папка с Фарой\SAMPLES\ и ниже. Папки можно создавать по типам сэмплов, по спектаклю, по номеру или по другим параметрам. Запустить сэмпл на выполнение можно несколькими способами.

  • во время создания сэмпла, в редакторе можно выбрать страничку "проверка" и на этой страничке запустить сэмпл на нужной панели или нажать клавиши F1,F2 или ctrl+F1, ctrl+F2.
  • нажать кнопку с рисунком папки сбоку от необходимой панели, кнопка позволяет запустить любой сэмп расположенный в любом месте на компьютере, а не только в папке /samples/.
  • назначить сэмпл на клавишу клавиатуры. В этом случае первое нажатие на назначенную клавишу запустит сэпл, а второе нажатие остановит этот сэмпл. Зависит от режима работы панели (СОЛО-Обычный).
  • Запустить сэмпл из программы можно командами Left.SampleLoad,Left.Sample на левую панель или Right.SampleLoad, Right.Sample на правую панель. Для правильного выполнения программы можно использовать команды проверки If Right.sample <file> If Left.sample <file>. Для остановки сэмпла можно использовать команды Left.SampleStop, Right.SampleStop.
  • записать Сэмпл в сценарий. При выполнении сценария сэмпл будет запущен с указанной задержкой. Будьте внимательны при повторах программы Сэмпл может оказаться выключенным, а хотели наоборот.
  • выбрать файл сэмпла в главном меню Фары для необходимой панели. В меню хранятся имена посл-едних 10 запущенных сэмплов.
  • перетащить файл сэмпла из проводника на панель. Если файл будет брошен не на панель - то он будет закгружен на активную панель (для которой кроссфейдер больше половины). Если такой сэмпл был включен - он выключится. Не забывайте что сэмплы должны находится в папке Fara/samples/ или ниже.
  • Если во время установки типы файлов зарегестрированы за ФАРОЙ - то достаточно дважды кликнуть на файле и он будет загружен на активную панель

Если время работы сэмпла установлено "-1" то сэмпл будет выполняться пока его не выключат. Если указано время работы больше нуля, то сэмпл автоматически выключится по истечении заданного времени.
Включение сэмплов на панели зависит от включенного режима. Режимов два - "Обычный" режим все сэмплы включаются и выключаются по получении команды. и "Соло", в этом режиме все остальные включенные сэмплы, на панели выключаются, а вновь включаемый запускается.

Настройка Сэмплов



Во время выполнения сэмпла можно открыть окно настройки. В этом окне для каждого сэмпла есть возможность регулировать некоторые значения. Результат регулирования сразу отражается на поведении сэмпла. Для сохранения произведённых изменений можно нажать кнопку "Сохранить версию как".


Однострочные функции


Используются для вычислений значений в сэмплах. Позволяют привести значения к необходимому диапазону. Можно сделать реакцию сэмпла на изменение значений в дистанционке или при изменении значений в адресе или группе адресов DMX.


В строке функции можно использовать
арифметические знаки
+ - * /
Возведение в степень
^
знаки группировки
( )
логические знаки
<  >  =  <=  >= <> результат вычислений = 1 -истина, 0-фальш
константа
Pi
тригонометрические функции, аргумент в радианах
SIN(аргумент)
COS(аргумент)
ARCTAN(аргумент)
TAN(аргумент)
ARCSIN(аргумент)
ARCCOS(аргумент)
математические функции
FACT(число)
ABS(число)
SQRT(неотрицательное число)
SQR(число)
LN(число)
LOG(число)
EXP(число)
MIN(число1,число2)
MAX(число1,число2)
Генерация случайного числа
RANDOM(максимальное число)
Функции изменения диапазона
TRUNC(число,минимум,максимум)
MAP(число,минимум,максимум,результат минимум, результат максимум)
Функции сдвига
SHL(число,сколько раз)
SHR(число, сколько раз)

функция для манипуляции с данными DMX
DMX(адрес)
DMXSET(адрес,значение)
REMOTE(адрес)
FIXTURE.NameOfFixture.NameOfDMXadr
функция выбора значения и переменные
IF(выражение,если истина,если фальшь)
TABLE(целое число,результат если=0,если=1, .., если равно N)
LET(XX=ЧИСЛО)

функция звукового спектроанализатора

BAND(0) уровень громкости звука (аналог SOUNDLEVEL)
BAND(1..7) уровни звука по спектру 1-низкие частоты, 7 - высокие частоты
SOUNDLEVEL уровень громкости звука


Краткое описание функций


  • RANDOM(максимальное число) - генерирует число от 0 до максимального числа. Генерируемое число всегда меньше максимального числа, максимальное число не генерируется.
  • TRUNC(число,минимум,максимум) - проверяет число на вхождение в диапазон. Если число меньше минимума - то возвращает минимум, если больше максимума то максимум.
  • MAP(число,минимум,максимум,результат минимум, результат максимум) - вычисляет число в новом диапазоне.
  • SHL(число,сколько раз) - cдвигает биты числа влево на сколько указано раз.
  • SHR(число,сколько раз) - cдвигает биты числа вправо на сколько указано раз.
  • DMX(адрес) - возвращает значение из указанного адреса DMX
  • REMOTE(адрес) - возвращает значение из указанного адреса Remote (адреса от 0 до 511)
  • DMXSET(адрес,значение) - записывает в указанный адрес, указанное значение. Возвращает записанное значение. Пример использования: dmxSet(1,255) В DMX адрес 1 запишет значение 255
  • Fixture.NameOfFixture.NameOfAdr Возвращает значение из указанного адреса. Если такого прибора или адреса нет - возвращает 0.
  • IF(выражение,если истина,если фальшь) вычисляет выражение и возвращает значение если истина, или значение если фальш.
  • TABLE(целое число,результат если=0,если=1, .., если равно N) - возвращает значение из таблицы в зависимости от числа.
  • LET(имя,значение) позволяет сократить запись функции при помощи имён, возвращает присваиваемое значение. Например в строке if(mirror<>LET(xx=AA+BB),XX,mirror) используется имя XX вместо выражения AA+BB. Первый раз с ним сравнивается значение mirror, а второй присваивается mirror если выражение истинно Допустимо использовать любые имена написанные латинскими символами. Имя переменной не должно быть именем функции или именем используемого синонима. Место расположения LET в строке значения не имеет, в любом случае сначала будет вычислено значение переменной, а затем во все эти переменные будет подставлено вычисленное значение.

ПРОГРАММНОЕ управление "Light BASIC"




В "Фару" встроена сильно урезанная версия интерпретатора с языка BASIC - "Light BASIC". Параллельно могут выполняться две программы. Одна программа запускается вместе с сэмплами и находится в генераторах сэмплов - "редактор программ", вторая предназначена для работы дистанционного управления и располагается в дистанционке (REMOTE). Эти программы не имеют общих таблиц переменных или меток и работают независимо друг от друга. Общими являются только - область памяти DMX, область памяти REMOTE, и сэмплы на панелях. B интерпретаторе можно использовать большинство операторов, функций и выражений описанных в стандартном языке BASIC. Но есть и отличия.

Light Basic не совсем интерпретатор. Перед запуском программы происходит её предварительная проверка на соответствие синтаксиса, определение переменных и меток и если есть такие ошибки - программа не будет запущена.

В операторе ветвления IF ключевое слово THEN не используется можно использовать только GOTO <метка> (GOSUB <метка>).

Добавлены операторы для досрочного прерывания циклов - BREAK и CONTINUE

Для управления панелями встроены объекты LEFT, RIGHT, ACTIVE, INACTIVE, BOTH и SINGLE соответственно левая, правая, активная - на которой фэйдер больше 50%, неактивная - на которой фейдер меньше 50%, обе панели и панель управления SINGLE, с помощью их методов можно загружать сэмплы, очищать панели, останавливать и запускать сэмплы на панелях и так далее. И ещё объект REMOTE с помощью его методов можно управлять Фарой используя удаленные пульты.

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


в переменную $i будет записана строка 2+2 и она не изменится во время выполнения программы. Использование префикса $ в именах переменных значительно улучшает читаемость кода - так например встретившееся в тексте имя VS - это метка, а $VS - переменная. В любую переменную можно записывать как строку так и число, если вычислить значение невозможно - то значение переменной считается строкой.

Комментарии можно обозначать символом # или словом REM.
Кроме того встроено много функций которые управляют поведением программы ФАРА, в том числе загрузка сэмплов, регулировка положения кроссфейдера, ожидание или проверка различных состояний, прямое включение каналов DMX проверка состояния значений дистанционного управления REMOTE.

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

Сразу после запуска FARA запускает программу autorun.bas которая находится в одной папке с файлом FARA.EXE. В autorun.bas записываются действия которые должны быть выполнены для нормальной работы световых приборов и самой FARA, например включение питания приборов на свитчере установка необходимых параметров кроссфейдера, загрузка сэмпла включающего дежурный свет. Если какие то значения не должны изменяться во время работы, то эти значения должны быть установлены на обоих панелях Левой и Правой иначе при переключении кроссфейдера эти значения могут быть изменены.

Текст файла autorun.bas всегда загружается на закладку autorun.bas в редакторе и всегда доступен для редактирования. Если нажать кнопку запуска программы находясь на странице autorun.bas - то: текст программы autorun.bas будет сохранён и загружен во вторую закладку, на рабочий редактор и там запущен. Поэтому текст который находился на второй закладке будет перезагружен.




Список всех доступных команд:

# - признак комментария, все символы в строке после этого # игнорируются
REM - признак комментария, все символы в строке после этого игнорируются.


Команды проверки времени
Sleep<секунд>
Delay <секунд>
If Time Less hh:mm:ss
If Time More hh:mm:ss
Now.Hour
Now.Min
Now.Sec
Clockcount
Команды ожидания события
Wait Button,текст
Wait Time hh:mm:ss, текст
Wait Music
Wait Pause

Методы объектов - панелей (LEFT, RIGHT, ACTIVE, INACTIVE, BOTH, SINGLE)
Clear
Count
Freeze
UnFreeze
Sample <сэмпл>
Sample RandomSample <папка>
SampleLoad <сэмпл>
SampleLoad RandomSample <папка>
SampleStop <сэмпл>
Pause
Start
CrossMode <цифра от 1 до 3>
Style <Solo, Normal> или <S, N>
FadeIn
FadeOut
Методы обьекта REMOTE
Remote.Load
Remote.Run
Remote.Stop
Remote.Clear
Remote.адрес=число
Remote.адрес
Remote.move fromRemote,toDMX,Count

Команды загрузки файлов сэмплов
SampleLoad сэмпл
SampleStop сэмпл
Sample сэмпл
$samples

Команды управления Фарой, кроссфэйдером и мастером
LToRFade
RToLFade
SetFadeTime
Fader  процентов
Master процентов
Hide
Show
Close
PowerOff
Execute файл
Команды для изменения данных DMX
DMX адрес = число
DMX адрес
DMX clear
REMOTE адрес =число
REMOTE адрес
REMOTE clear
FIXTURE.название.адрес

Команды ветвления и  управления выполнением программы
Menu
Que
Goto
Gosub
Return
For <переменная> to
Next
IF  <выражение>
IF <выражение><метка>
IF <выражение><метка>
If Time Less hh:mm:ss
If Time More hh:mm:ss       
If Music
If Pause
If Left.Clear
If Right.Clear
If Left.Sample
If Right.Sample
ELSE
ENDIF
END IF

FOR <переменная = число> TO <число> (STEP <число>)
NEXT

WHILE <выражение>
WEND

DO
LOOP WHILE <выражение>

BREAK
CONTINUE

ON <цифра> GOTO <список меток>
ON <цифра><список меток>

Stop
End

PRINT


Арифметические команды и Системные переменные

Inc
Dec
Random
true
false
ClockCount
$samples
$menu
$Que
$random

Логические операторы
AND или &
OR    или |
NOT или !

В тексте программы, вместо цифр или имён файлов можно использовать переменные. Переменные начинаются с символа $ и состоят из латинских букв и цифр, первый символ - буква. Символом для разделения дробной части является точка.



Системные переменные :


$Samples - путь до папки FARA\Samples\
$Menu - результат работы меню выбора
$Que - результат работы функции QUE
$Random - результат работы функции Random
$QueTime - время выполнения следующего пункта в функции QUE
Системные переменные $Samples изменить нельзя, переменные $Random и $Menu изменяются вызовом соответствующей функции, их нельзя изменить оператором приравнивания,
переменную $QueTime можно изменить для установки времени выполнения следующего пункта функции QUE

примеры :


$a1=5
$var = 1.2
$sample=$samples\s1.sl1
$sample=RandomSample $samples\disco\s1.sl1 #выбрать случайный файл из папки в которой находится s1.sl1

Описание функций


Макрокоманды для управления программой



SLEEP  <время>,<текст> #- пауза в выполнении программы, параметр <время> в секундах или переменные , если время больше 5 сек. то будет открыто окно sleep, если это окно закрыть - sleep будет завершен. Если есть ТЕКСТ то он будет выведен в окне SLEEP. Время может быть задано в формате времени HH:MM:SS - часы минуты секунды. В таком формате лучше записать все цифры например  sleep 00:1:10 = 70 секунд, а sleep 1:10 = 1 час,10 минут.
Delay  <время>,<текст> #- пауза в выполнении программы, параметр <время> в секундах или переменные. Время может быть задано в формате времени HH:MM:SS - часы минуты секунды. В таком формате лучше записать все цифры например  sleep 00:1:10 = 70 секунд, а sleep 1:10 = 1 час,10 минут.
Различие между функциями SLEEP и DELAY состоит в том что DELAY никогда не выводит окно с обратным отсчетом времени.
NOW.Hour   возвращает текущий час
NOW.Min   возвращает текущую минуту
NOW.Sec   возвращает текущую секунду
CLOCKCOUT   возвращает время работы компьютера от включения, в секундах

Пример:


WAIT TIME
hh:mm:ss ($h:$m:$s) #Приостановит выполнение программы пока не наступит назначенное время
WAIT MUSIC -# Приостановит выполнение программы пока не начнется музыка или не закроют форму с кнопкой
WAIT PAUSE -# Приостановит выполнение программы пока не закончится музыка или не закроют форму с кнопкой
WAIT BUTTON <текст> - #Приостановит выполнение программы пока не закроют форму с кнопкой, <текст> введённый после команды, если он есть, будет выведен в открывшуюся форму.


Left.CLEAR
- очистить левую панель
Right.CLEAR - очистить правую панель
BOTH.CLEAR
- очистить обе панели
Left.count
- количество сэмплов работающих на левой панели
Right.count - количество сэмплов работающих на правой панели
Left.Freeze - заморозить все сэмплы запущенные на  левой панели до этой команды, сэмплы не будут выключаться командами Left.Sample, Left.Clear, Left.SampleStop
Right.Freeze - заморозить все сэмплы запущенные на правой панели, эти сэмплы не будут выключаться командами Right.Sample, Right.Clear, Right.SampleStop
Left.UnFreeze - разморозить все сэмплы запущенные на левой панели
Right.UnFreeze - разморозить все сэмплы запущенные на правой панели
Команда Freeze работает только для программы на бэйсике и поэтому если режим панели СОЛО то при запуске сэмпла все включенные всё равно выключатся.
Left.FadeIn секунд
- перевести кроссфэйдер на левую панель. Если секунд не указано, используется текущее значение FadeTiime.
Right.FadeOut секунд
- перевести кроссфэйдер на левую панель. Если секунд не указано, используется текущее значение FadeTiime.
inactive.FadeIn секунд - перевести кроссфэйдер на неактивную панель. Если секунд не указано, используется текущее значение FadeTiime.
. Если секунд не указано, используется текущее значение.
Запуск сэмплов выполняется некоторое время, поэтому если команды LFreeze RFreeze находятся сразу после запуска смпла, то последний запущенный сэмпл может оказаться не замороженным. Если последний сэмпл должен быть замороженным - то после загрузки сэмпла нужно написать команду задержки Sleep 0.5 Время может быть меньше или больше. Эти команды никак не влияют на ручное управление, любой сэмпл можно выключить вручную при помощи кнопок на панели.

Пример:


Left.STYLE Solo#режим СОЛО на левой панели
Right.STYLE #режим СОЛО на правой панели
Left.STYLE Normal #режим Обычный на левой панели
Right.STYLE Normal#режим Обычный на правой панели
Left.PAUSE -#приостановить выполнение сэмплов на левой панели
Right.PAUSE-#приостановить выполнение сэмплов на правой панели
Left.START -#продолжить выполнение сэмплов на левой панели
Right.START-#продолжить выполнение сэмплов на правой панели


Left.SampleLoad - #загрузить файл на левую панель. путь может быть относительным, для этого вначаленужно написать $samples
Both.SampleLoad - #загрузить файл на обе панели.
Right.SampleLoad
- #загрузить файл на левую панель.
Active.SampleLoad - #загрузить файл на активную панель.
Both.SampleLoad - #загрузить файл на обе панели.
Inactive.SampleLoad - #загрузить файл на неактивную панель.
Left.SampleStop- #остановиь файл на левой панели, если он там есть.
Right.SampleStop- #остановить файл на правой панели, если он там есть.
Left.Sample- #загрузить файл на левую панель если его там нет или остановить - если он есть.
Right.sample- #загрузить файл на правую панель если его там нет или остановить - если он есть.
$SAMPLES - #относительный путь к папке \samples\
RandomSample папка - #выбрать случайный файл из указанной папки. Возвращает случайный файл из указанной папки.

Кроме объектов LEFT или RIGHT к панелям можно обращаться через объекты ACTIVE,INACTIVE или BOTH. Объект ACTIVE будет выполнять свои методы в панели для которой кроссфэйдер установлен более 50%, соответственно INACTIVE - панель для которой кроссфейдер менее 50%. Это позволяет загружать некоторые сэмплы на любую панель, на ту которая будет активной. Объект BOTH выполняет указанный метод с обоими панелями например очистить обе панели, иногда необходимо загрузить или остановить сэмпл сразу на обеих панелях.

SETFADETIME - #Установить время для кроссфэйдера
Right.FadeIn - #Кроссфэйд слева направо
Left.Fadein - #Кроссфэйд справа налево
FADER <процентов>- #Кроссфэйдер установить в позицию соответствующую процентов 0..100 слева направо (50-половина)
MASTER <процентов>- #Мастер яркости установить в позицию соответствующую процентов 0..100  яркости
HIDE - #Cкрыть главное окно программы, программа сворачивается и остается только иконка на панели задач. Чтобы Фара снова сделать видимой нужно дважды кликнуть на иконке или выполнить команду SHOW
SHOW - #Главное окно программы сделать видимым
CLOSE - #Выключить Фару, диалог о подтверждение закрытия программы не будет открыт.
PowerOff- #Выключить питание компьютера. Команда выполняется без подтверждений и ожиданий применяется при автоматическом управлении.
Execute <имя файла>- #выполнить внешний файл указанный в аргументе, запускаемой программе будут переданы все параметры которые будут указан после имени программы
Left.CROSSMODE - #установить тип кроссфэйдера для левой панели:1=крест, 2=максимум света, 3=минимум света
Right.CROSSMODE - #установить тип кроссфэйдера для правой панели:1=крест, 2=максимум света, 3=минимум света


PRINT <текст> <переменная>- #вывести текст в окно сообщений. Если указана переменная, то будет выведено её значение. Используется в основном для отладки программы
CLOCKCOUNT - #число секунд  прошдших от включения компьютера. Удобно использовать для вычисления пауз.

GOTO  <имя метки> - курсор выполнения переходит на строку или на место отмеченное <имя метки>. Если метка не найдена то возникнет ошибка при проверке программы до запуска. Метка может быть ниже или выше команды перехода.
:<имя метки> - Отметить место место для перехода, имя может состоять из русских или латинских букв.

пример:

GOSUB<номер строки> или <имя метки> -вызов подпрограммы начинащейся с метки.

Управление передается на строку или место отмеченное меткой. Возврат из подпрограммы происходит как только выполнение программы дойдет до слова RETURN. Если RETURN не будет найден то возможно аварийное завершение программы из-за переполнения.



RETURN - возврат из подпрограммы.

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

Используются следующие знаки сравнения

> - следующие строки выполняются если первая величина больше второй
< - следующие строки выполняются если первая меньше больше второй
= - следующие строки выполняются если первая величина равна второй
<> - следующие строки выполняются если первая величина не равна второй
<= - следующие строки выполняются если первая величина меньше или равна второй
>= - следующие строки выполняются если первая величина больше или равна второй

Кроме этого с помощью команды IF можно проверить системные переменные

IF TIME LESS hh:mm:ss (time1:time2:time3) следующие до ELSE или ENDIF строки выполняются если текущее время меньше уставки (допускается написание if time < hh:mm:ss)
IF TIME MORE hh:mm:ss (time1:time2:time3) следующие до ELSE или ENDIF строки выполняются если текущее время больше уставки (допускается написание if time > hh:mm:ss)
IF TIME hh:mm:ss (time1:time2:time3)
IF MUSIC #следующие до ELSE, ENDIF строки выполняются если есть музыка
IF PAUSE #следующие до ELSE, ENDIF строки выполняются если музыка не играет
IF Left.Sample <file> #выполнить если файл есть на левой панели
IF Right.Sample <file> #выполнить если файл есть на правой
IF Left.Clear  #выполнить если левая панель без сэмплов
IF Right.Clear #выполнить если правая панель без сэмплов
IF Right.Active #выполнить если правая панель активна (фейдер >50%)
IF Fader >10 #выполнить если позиция фейдера более 10%
IF Master<100 #выполнить если master менее 100%


ELSE #следующие после ELSE строки выполняются если выражение IF фальшиво
ENDIF #конец оператора IF
если используется короткая запись IF <condition> GOTO label (IF <condition> GOSUB label) , то ELSE и ENDIF использовать нельзя.

Например:

Операторы повторения участка программы (циклы)

цикл с переменной
FOR <переменная = число> TO <число> (STEP <число>)
 . . .
NEXT
тело цикла до слова NEXT повторяется пока переменная не больше числа написанного после TO. При выполнении тела к переменной прибавляется 1 или число которое указано после слова STEP.

цикл с условием
WHILE <выражение>
 . . .
WEND
тело цикла выполняется пока условие =true. Иначе переходит на конец цикла. Условия в выражении такие же как и для IF.

цикл с условием
DO
. . .
LOOP WHILE <выражение>
тело цикла выполняется пока условие =true. Иначе выполняется строка следующая за LOOP WHILE. Условия в выражении такие же как и для IF

прерывание циклов
BREAK
выполнение текущего цикла прерывается и управление передается на строку следующую за последней строкой цикла
CONTINUE
выполнение текущего цикла прерывается и управление передается на первую строку цикла
команды прерывания циклов выполняются в любом типе циклов. Выходить из цикла командой GOTO нельзя. Ошибки не произойдет, однако если такое прерывание цикла будет выполняться циклически - то в памяти остаётся не удалённым адрес окончания цикла и в результате может переполниться память.

операторы выбора перехода или выбора подпрограммы


ON <переменая> GOTO <список меток>
выполнение передается на метку в зависимости от значения переменной. На первую метку управление передается если значение переменной =0, на вторуюю - если=1 и так далее. Если значение переменной меньше 0 - то управление передается на первую метку. Если переменная больше чем количество меток то управление передается на последнюю метку. Внимание - все метки должны существовать.
ON <переменая> GOSUB <список меток>
выполняется также как и ON GOTO, но вызывается подпрограмма которая должна закончиться словом RETURN, после этого выполняется следующая за ON GOSUB строка.

МENU Пункт1|Пункт2|Пункт3 ..|ПунктN #меню выбора.
Для облегчения создания меню - можно включить мастера и создать меню для указанной папки. Все сэмплы из папки будут включены в меню.
Разделителем пунктов меню является вертикальная черта |. Открывается окно выбора, в котором нужно кликнуть на одном из пунктов или нажать на клавиатуре клавишу с соответствующей цифрой. Если закрыть окно крестиком вверху то результат будет равен 0. Результат выбора заносится в переменную с именем $Menu и эту переменную можно использовать как простую переменную.

Например:

Если меню большое то строки меню можно переносить. Признаком переноса является символ "|" в последней позиции. Например предыдущее меню можно записать вот так:

Естественно всё что после # в меню включено не будет. После последнего пункта символа "|" нет.

Если необходимо сделать световую партитуру для спектакля c большим количеством сцен - то можно воспользоваться функцией QUE . Синтаксис такой же как и MENU

QUE Пункт1|Пункт2|Пункт3 ..|ПунктN #меню выбора.
Для облегчения создания QUE - можно включить мастера и создать меню для указанной папки. Все сэмплы из папки будут включены в QUE.
Значения выбора сохраняются в переменной $QUE. В отличие от MENU эта переменная сохраняет своё предыдущее значение и переключения между пунктами могут осуществляться нажатием клавиши ENTER. Функция QUE может автоматически переключиться на следующий пункт если в переменную $QueTime записать время в секундах. Отсчет времени может быть приостановлен нажатием на кнопку с символом паузы или нажатием на клавишу "ПРОБЕЛ".


Например:


END #конец компиляции программы. Текст далее не компилируется и программа не выполняется.
STOP #конец выполнения программы. Выполнение программы останавливается на этой строке. STOP и END выполняются одинаково, программа останавливается. Но после STOP может продолжаться текст программы, а после END программа не компилируется. После END можно писать всё что угодно, например описание программы.

DMX <адрес>=<значение> #Записать указанное значение по указанному адресу. Значение заносится в буфер DMX монитора и может быть очищено или изменено в мониторе DMX
DMX CLEAR #очистить буфер DMX монитора, весь буфер DMX монитора заполняется нулями.
DMX <адрес> #возвращает значение из буфера remote адреса от 0 о 511
FIXTURE.название.адрес получить значение из адреса прибора. Возвращает значение из адреса соответствующего названию прибора. названию адреса. Данные записываются в область память DMX монитора, там это можно контролировать. Кроме того нужно не забывать очищать эту область командой DMX.CLEAR после окончания использования программы иначе эти значения ни один сэмпл не сможет изменить..

<пример>

Арифметические команды:


INC <переменная>,<число> #прибавить к первому оператору, второй
DEC <переменная>,<число> #вычесть из первого оператора, второй
если второй оператор отсутствует - то вычитается или прибавляется 1
Random <число> #генерирует случайную цифру от 0 до указанного числа и сохраняет его в переменной с именем $RANDOM, результат всегда меньше указанного числа. Если число не указано - оно принимается за 1. Допустимо результат сразу приравнивать переменной,
например :

<конец примера >

Cоздание MENU или QUE при помощи мастера

Для упрощения процедуры создания программ в меню "Помощь" есть мастер - помошник. Запускается из редактора Бэйсик в меню Помощь-Мастер. С его помощью можно создать MENU или QUE просто из папки в которой лежат нужные сэмплы. Первым делом в мастере необходимо выбрать папку для которой нужно сделать программу, затем включаем вкладку "Создать программу" и устанавливаем необходимые опции.

<

 Например для случайного выбора сэмплов можно выбрать следующие опции -
Randomsample,
InActive,
Повторять в цикле,
Переключать панели,
Время работы сэмпла 15 с.
тогда мастер создаст программу которая будет каждые 15 секунд, в случайном порядке выбирать сэмплы из указанной папки, загружать их на неактивную панель, переключать кроссфейдер на неактивную панель, очищать предыдущую панель.

В пункты меню включаются названия которые есть в редакторе сэмплов - поэтому для создания меню эти названия нужно заполнить для удобства чтения меню. В открывшемся мастере выберите нужную папку, папки которые лежат ниже не открываются и в них можно размещать вспомогательные сэмплы и сэмплы из которых состоят сценарии. После этого включите страничку "Параметры" на которой нужно включить нужные опции. Созданный текст нужно скопировать в буфер обмена и вставить в текст основной программы. Вложенные меню создаются этим же мастером. Для этого нужно сделать необходимое количество меню или que и переходы между ними сделать в виде вызова подпрограммы GOSUB.



Внешнее управление - REMOTE


Фарой можно управлять при помощи внешних устройств и пультов. Можно использовать МИДИ клавиатуры и контроллеры, промышленные устройства и пульты с интерфейсом Modbus IP, планшеты или телефоны с установленной программой управления по протоколу ArtNET, DMX пульты подключенные через контроллер USB DMX Access и webserver c управляющей программой. Устройства и пульты могут записывать свои данные в область памяти Remote. с адресами от 0 до 511. Обратите внимание что адреса Remote начинаются c 0 а не с 1 как у буфера DMX. Эта область памяти доступна через однострочные функции при написании сэмплов {remote(adr)}. По изменению любых данных в любом адресе можно запрограммировать необходимую реакцию ФАРЫ, например запуск сэмпла, или можно вывести полученное значеиние Remote непосредственно в DMX. Устройства подключенные по протоколу Modbus IP - кроме записи данных, могут считывать данные как из Remote так и из DMX. MIDI клавиатуры посылают два типа данных - НОТЫ и КОНТРОЛЛЕРЫ данные посылаемые как ноты записываются в область Remote с адресами 0..120, а к адресам контроллеров прибавляется 128 и записываются в область Remote в адресами 128..255. Данные посылаемые по MIDI имеют значения от 0 до 127 это нужно учитывать при написании программ. Для преобразование полученных данных можно использовать встроенные функции. Если строку функций оставить пустой то в область Remote будут заносится полученные по МИДИ данные.

Пример программы



Поскольку выполняется бесконечный цикл в котором постоянно контролируется сэмпл $samples\sample.sc1- в ручную запустить этот сэмпл на левой панели неудастся. Остановить выполнение программы дистанционки можно, выполнив команду remote.stop в основной программе.

Управление может осуществляться при помощи WEBServer с установленной страничкой управления ФАРОЙ. Данные записываются в ту же область Remote начиная с адреса 0. В этом случае управление осуществляется любым устройством с интернет эксплорером подключенным к этой же сети. Используется IP адрес показанный в ФАРЕ и порт 10502. При использовании этого способа или Modbus IP, необходимо обеспечить постоянный IP адрес у компьютера с ФАРОЙ. Если установить html сервер, например OpenServer, на компьютер с ФАРОЙ то в сервере вместо IP адреса можно использовать переменную localhost.

В комплекте программ есть программа FaraRemote. Эта программа может быть запущена на любом другом компьютере который подключен к той же сети что и компьютер с ФАРОЙ. Если установить FaraRemote на планшет подключенный через WiFi, то получится пульт дистанционного управления ФАРОЙ. Реакция фары на изменения в области памяти REMOTE должна быть прописана в программе на Бэйсике. А сама программа должна выполняться в дистанционке или в основной программе. Кроме того реакцию на REMOTE можно записать в сэмплах "Зеркало". В сэплах скорость реакции будет выше.


Протокол обмена по интерфейсу Remote:

записать байт в буфер Remote
Посылка сервера (4 байта)
0xFA - идентификатор протокола
0xXX - старший байт адреса. Адрес 0 .. 511
0xXX - младший байт адреса
0xXX - байт данных для записи по указанному адресу. Если адрес больше максимально допустимого - данные игнорируются)

Ответ ФАРЫ (2 байта)
0xFA - идентификатор протокола
0xXX - записанные данные

cчитать байт из буфера Remote

Посылка сервера (4 байта)
0xFA  - идентификатор протокола
0xXX - старший байт адреса. Адрес = 0x8000 + адрес
0xXX - младший байт адреса
0x01..0хFF - Количество байт. Если 0 то передаётся 1,если 1 то 1, если 2 то 2 и так далее.

Ответ ФАРЫ (запрошенное количество +1 байт)
0xFA - идентификатор протокола
0xXX - данные из буфера Remote, запрошенное количество

Внешнее управление возможно всеми устройствами одновременно, однако нужно запрограммировать реакцию ФАРЫ на это управление так как по умолчанию ничего кроме буфера Remote не меняется. Для запуска сэмплов при изменении каких то адресов Remote - нужно записать это в пограмму и проследить чтобы эта программа была запущена. В сэмплах можно указать функцию remote(ADR_Remote) для изменения значений, например можно управлять движением сканера при помощи контроллеров МИДИ клавиатуры - но это нужно запрограммировать. Программу для дистанционного управления можно загрузить и запустить при помощи методов объекта REMOTE можно записать их в программу autorun.bas.




Программа - которая управляет поведением ФАРЫ в зависимости от внешнего управления может располагаться как в основной программе, так и в модуле дистанционного управления. Загрузка программы в модуль осуществляется в основной программе, как правило во время выполнения файла AUTORUN.BAS.


В тексте программы для дистанционного управления можно использовать все функции, команды и объекты также как и в основной программе исключением является только команды которые открывают дополнительные диалоговые окна - такие команды не выполняются. (MENU, WAIT). Команда Sleep выполняется с любым аргументом, но ни при каких значениях аргумента окно не открывается. Прервать выполнение Sleep можно только прервав выполнение программы.


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



ПРОТОКОЛ работы программы



Все действия с "Фарой" записываются в протокол, который можно посмотреть. Формат записи протокола точно такой же как и текст программ, поэтому можно скопировать текст протокола в редактор программ и сделать из него программу. Протокол работы сохраняется при выключении ФАРЫ в папке \protocols\, с именем ГГММДД_ЧЧММ.prt Имя создается из времени закрытия программы (ГГ-последние цифры года, ММ-месяц,ДД-День,ЧЧ-часов,ММ-минут) и поэтому можно открыть старые протоколы для создания программы. Размер файлов небольшой, но при необходимости папку можно удалить вместе с файлами.



Дополнительные функции

Блокировать клавиатуру - опция позволяет запретить работу клавиатуры для предотвращения случайного воздействия, мышка продолжает работать нормально.
План размещения - на плане можно разместить приборы которые есть в списке приборов. Из левого столбца приборы можно перетащить на план и разместить там. Дополнительно будет показано состояние свитчеров для выбора адреса если открыта форма DMX бит калькулятор. Приборы имеющие адреса R,G,B могут быть включены если установить необходимый режим для вывода на прибор.
DMX монитор - позволяет посмотреть состояние всего DMX пространства, если установить галочку "редактировать" то данные можно изменять.
Дистанционное управление - окно настройки внешнего управления.
Регулировка звука - позволяет настроить вход звука для управления сэмплами. Можно выбрать вход, подрегулировать эквализацию и уровень входного сигнала.
Библиотекарь - запускает внешнюю программу библиотекаря. Если в библиотекаре изменить данные для приборов - то необходимо перезагрузить ФАРУ для обновления библиотеки приборов.
DMX бит калькулятор - позволяет рассчитать состояние ДИП переключателей для выбора адреса DMX у некоторых приборов.

Концепции построения программ управления светом.

    С помощью ФАРЫ можно создавать самые разнообразные системы управления используя различные принципы.
  • Ручное управление с помощью горячих клавиш, прямой загрузки сэмплов на панели и ручного управления панелями,
  • Создание простого сценария при помощи простой программы на Бэйсике
  • Ручное управление с помощью меню созданного на встроенном интерпретаторе с языка программирования Бэйсик.
    • пример программы с перезагрузкой панелей
  • Ручное управление при помощи функции QUE.
  • Полуавтоматическое управление с помощью программы на Бэйсике
  • Полуавтоматическое управление при помощи дистанционных пультов DMX, MIDI, через Wi-Fi и других, необходима программа на Бэйсике.
  • Автоматическое управление без участия оператора. Включение режимов работы по времени, по наступлению событий от внешних датчиков, по наступлению событий при анализе данных с микрофона, необходима программа на Бэйсике.

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

Ручное управление

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

Создание простой программы

Для простого объединения сэмплов в сцену можно использовать сэмпл "сценарии". Этот сэмпл позволяет запускать любое количество сэмплов одновременно или с заданной задержкой.
Для более точного управления или когда необходимо запускать и останавливать сцены по каким нибудь условиям, удобнее написать программу на Бейсике. Откройте редактор программ (Генераторы сэмплов - редактор программ (*.bas). В меню ПРОГРАММА выберите пункт - CОЗДАТЬ НОВУЮ. Сохраните файл командой СОХРАНИТЬ КАК, программу нужно сохранить в папке ПАПКАсФАРОЙ\samples\ или вложенных в неё и можно начинать вводить команды для ФАРЫ.
Программы можно создавать при помощи мастера. В редакторе программ выберите меню Помощь-Мастер и в открывшемся окне выберите папку для которой нужно создать программу. Мастер создаст программу для выбранной папки поэтому все необходимые сэмплы нужно предварительно скопировать в одну папку. Сэмплы для MENU или QUE сортируются по имени файла - этим можно воспользоваться если необходимо сгенерировать QUE для постановки света.



Пример простой программы:



запускаем программу (F9) или кнопка с зеленым треугольником или меню ЗАПУСК - ВЫПОЛНИТЬ СНАЧАЛА. Попробуем выполнить ещё раз.
Что-то пошло не так? немного улучшим программу предварительно подготовим панели:


Теперь пошло как надо.
Программу можно привязать к горячей клавише, например "1" и теперь при нажатии на "1" будет включен белый и через 20 секунд синий


Создание Меню.

Если задач побольше и световые программы более разнообразны как например в ночном клубе или в Доме Культуры, то целесообразно написать простую программу управления на Бэйсике используя команду MENU.
Для этого можно воспользоваться мастером создания меню, предварительно скопировав необходимые сэмплы в одну папку. Такой подход позволит выполнить предварительные включения оборудования и управлять светом неподготовленному персоналу, например звукооператору ил DJ-ею. Если вам необходимо поэкспериментировать или поучиться программированию то вы можете установить Фару в другую папку чтобы не испортить основную программу и эксперементировать на другой копии ФАРЫ. Самый простой способ оздания меню - это скидать все необходимые сэмплы в одну папку и запустить мастера подготовки MENU. С помощью этого мастера можно быстро создать MENU или QUE. После создания программы её нужно скопировать в буфер обмена и вставить в основную программу. При необходимости можно сделать подменю при помощи подпрограмм.


Ниже представлен образец програмы на Бэйсике для ручного управления при помощи созданного меню. Его можно модифицировать для вашей задачи, по крайней мере нужно записать в неё ваши сэмплы, и использовать. Для этого выделите и скопируйте текст программы, откройте редактор программ в меню "Генераторы Сэмплов" и вставьте этот текст командой вставить (ctrl+V), программу можно запустить сразу, но целесообразно подготовить автоматический запуск. В меню выберите команду "сохранить как", выберите папку ПапкаСФарой/samples/ и сохраните программу с имененем например start.bas.


После этого загрузите программу ПапкаСФарой/autorun.bas будьте внимательны если в нём есть команды, проанализируйте для чего и кем они написаны. Вставьте в него следующую строку

left.sampleload $samples\start.bas

и сохраните этот текст командой "файл-сохранить как" в файл ПапкаСФарой/autorun.bas, если такой файл уже есть вам будет предложено заменить его. Теперь после запуска Фары будет запущена эта программа. Если необходимо, то можно скрыть главное окно программы, для этого раскоментируйте команду HIDE.

Пример программы на Бэйсике:


Программы загружаются на одну панель


Ещё один пример использования меню. В программе загружается сэмпл на свободную, неактивную панель, затем на эту панель переводится кроссфейдер. После окончания переключения кроссфедера, пассивная панель очищается и вновь включается меню выбора программы. Данный способ позволяет плавно переключать свет без резких выключений.

Создание очереди (списка) сцен

Для создания световой партитуры спектакля очень удобно использовать функцию QUE. Данная функция позволяет создать MENU с большим количеством строк. Причем строки выполняются последовательно. Переход на следующюю строку происходит по нажатию на Enter. можно вызвать предыдущий пункт нажав одновременно  ctrl+Enter.
Следующий пример показывает структуру программы для организации очереди

 

Полуавтоматическое управление


подразумевает передачу части управления самой программе. В самом простом случае можно использовать возможность случайного выбора сэмпла для загрузки. Ещё одна возможность - это выполнение программы в зависимости от анализируемого состояния аудиовхода if Music (if Pause) например сэмпл начнёт выполняться только при появлении музыки. Такое управление возможно только при помощи программы написанной на Бэйсике. Рассмотрим простой вариант выбора сэмплов для загрузки на прмере предыдущей программы. Предоставим программе возможность собрать самой сэмпл Disco. Если подготовить 5 сэмплов заливки, 5 сэмплов рисующего света и 5 сэмплов для сканеров - вполне нормально для дискотеки, то в результате самостоятельного выбора программа сможет сделать 125 комбинаций этих сэмплов. Для иллюстрации этого примера в предыдущей программе удалите строки

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


Автоматическое управление светом.

Автоматическое управление можно создать используя программу на Бэйсике. Пример программы автоматического управления светом на дискотеке можно получить по запросу.


Каскадное включение контроллеров

Очень часто, досадным ограничением является нехватка адресов DMX. ФАРА предлагает относительно простое решение - каскадное включение контроллеров. При таком включении первый контроллер (Мастер) рассылает команды управления всем остальным контроллерам по интерфейсу DMX. То есть все контроллеры кроме первого должны иметь вход DMX. В качестве мастера можно использовать пульт дистанционного управления  "Утилиты"-"Пульт управления". На пульте нужно включить режим передачи Art-Net и все ФАРЫ собрать в одну сеть, тогда всеми ими можно будет управлять с одного пульта. Количество каскадов не ограничено, если не хватает адресов - просто добавь ФАРУ. Каждая ФАРА управляется своим компьютером - поэтому в каждом каскаде должен быть компьютер. Такое решение повышает надежность всей системы. Работа каскадов определяется программой на Бэйсике - для примера, ниже приведён вариант системы управления в котором мастер рассылает номер программы который должны запустить каскады всем или выбранному каскаду. И всем каскадам передаётся состояние регулятора яркости.
В таблице приборов мастера нужно включить прибор FARA/Cascade с именем Fara1. Адрес прибора нужно будет вставить у всех каскадов в программу в переменную с именем $StartNum. Если изменить адрес каскадов - его нужно переписать во всех программах.
Если нужно передавать каскадам состояние яркости (Мастера) - то на первом контроллере нужно запустить программу master.bas.
Яркость передаётся в двух байтах прямой и инверсный, это позволяет реагировать только на правильную передачу, например при отключении мастера - состояние яркости не будет изменятся.

Для запуска программ на каскадах  нужно

  • создать сэмпл статического света,
  • выбрать прибор Fara1.
  • В сэмпле установить параметры
    • Выполнение старта 0.1,
    • Увеличение значений после старта - 1,
    • Время работы сэмпла -1,
    • Время выполнения Стоп - 1,
  • На страничке СТАРТ установить номер каскада SlaveNumPage*255+SlaveNum (если установить 0 - то все каскады),
  • Установить номер программы ProgNumPage*255+ProgNum.
  • На страничке ЗНАЧЕНИЯ установить Execute 255
  • На страничке СТОП во все использованные адреса записать 0
  • сохранить сэмпл и запустить его на активной панели

На каскадах должна работать программа slave.bas в которую нужно внести изменения определяющие реакцию каскада на команду Мастера. В папке $samples\demo\Cascade есть программы которые можно подредактировать и использовать. Кроме программ в этой папке есть первая 1000 сэмплов для запуска программ на каскадах.

Copyright © 2016-2019