Project

General

Profile

Настройка ДУ с использованием CDU файлов

CDU файл описывает обмен данными с одним единственным устройством. Описание состоит из описания среды передачи команд, множества индикаторов, связанных с с данным устройством (исходящие данные), множества команд, формируемых данным устройством (входящие данные) и многое другое.

Синтаксис

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

Символом комментария одной строки до конца является //

Поточный комментарий ограничен /* и */

//Это строка комментария

/* 
Это 
все
многострочный
комментарий 
*/

Название (NAME)

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

Синтаксиc:

NAME название - строка

Описание параметров:

NAME "Control pad"

Указание владельца (OWNER)

Необязательный параметр, позволяет указать, какое приложение имеет право пользоваться данным файлом. По умолчанию, CDU файлы считываются только приложением Джин, все остальные приложения файлы CDU игнорируют. Этот параметр позволяет читать файл другому приложению и избежать конфликта двойного использования устройства.

Синтаксиc:

OWNER Название приложения-владельца.
строка

Указывает название выполняемого файла без расширения. Например logger для logger.exe.

Для Трек2 существует синоним Editor(не зависит от названия выполняемого модуля)
Для Джин синоним Djin(не зависит от названия выполняемого модуля)

Устройство обмена (CREATE_DEVICE)

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

Синтаксиc:

CREATE_DEVICE Тип устройства Параметр

Например:

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

Типы устройств:

USB USB Устройство, подключаемое с использованием библиотеки FTDI http://ftdichip.com. Не поддерживается. Только для старых версий.
COM Устройство, подключенное через COM-порт (RS-232). Параметр - номер порта 1…9.
В т.ч. используется для подключения USB устройств через виртуальные COM порты.
UDP Устройство, использующее обмен через UDP сокеты.Параметр - номер порта
SNMP Устройство, использующее обмен через SNMP протокол. Параметр - номер порта
TCP_CLIENT Подключение к TCP/IP серверу. Создается клиентский сокет. Параметр - номер порта
TCP_SERVER Создание TCP/IP сервера, к которому будут подключаться клиенты. Создается серверный сокет. Параметр - номер порта
LOOPBACK версия>2.14.RC1.57
Специальное устройство, предназначенное для обмена с самим собой. Принимает все отосланные данные обратно.
Удобно для связывания различных модулей через пару индикатор->кнопка в пределах одного приложения.
Удобно для отладки.
Параметр не используется, но должен быть указан. Например, 1.

Строка параметров устройства (INIT_STR )

Строка содержит параметры инициализации устройства и зависит от его типа. Следует сразу за строкой CREATE_DEVICE

Синтаксиc:

INIT_STR строка параметров

Устройства по умолчанию (SET_RMT_OUT)

Указывает, что данное устройство является получателем команд по умолчанию. Это значит, что, если у команду управления (привязанной к элемента расписания, блоку и пр.) явно не указан получатель, то она будет отправлена в данное устройство.

Начиная с версий

  • 2.14.149
  • 2.15.11.20
  • 2.15.34

строчку SET_RMT_OUT можно указывать в нескольких CDU файлах. В более ранних версиях это строка может присутствовать только в одном CDU файле.

Синтаксиc:

SET_RMT_OUT

Индикаторы (IND, T_IND)

Синтаксиc:

IND имя индикатора размер посылки включения размер посылки выключения посылка включения посылка выключения
T_IND имя индикатора строка включения строка выключения    

Описание параметров:

Параметр Тип Значение
имя индикатора строка Название одного из существующих в системе [[digispot:Индикаторы индикаторов]]
размер посылки включения целое десятичное число Количество байт в посылке включения индикатора - перехода в активное состояние
Может быть 0, тогда *байты посылки включения *не указываются и посылка не выполняется
размер посылки выключения целое десятичное число Количество байт в посылке выключения индикатора - перехода в пассивное состояние
Может быть 0, тогда *байты посылки выключения *не указываются и посылка не выполняется
посылка включения
посылка выключения
набор чисел [0…255]10,
разделенный пробелом
Посылаемые данные. Числа могут быть записаны в десятичной системе счисления, или в шестнадцатеричной, с префиксом 0x.
12 - десятичное 12
0x12 - шестнадцатеричное 12 (десятичное 18)
строка включения
строка выключения
строка Строка, отправляемая как последовательность ASCII кодов символов. Опознаются последовательности \r \n \0
для включения "непечатных" символов; кавычки нужно дублировать (поддерживается с версии 2.17.0)

Пример:

IND   "IND_CUE_ON"  1 2 192 64 65
T_IND "IND_REC_ON" "ON\n" "OFF\n"

При переходе индикатора IND_CUE_ON в активное состояние (включение) будет послан 1 байт, равный 192, при переходе в пассивное состояние (выключении) 2 байта, сначала 64, потом 65.

Для индикатора IND_REC_ON при включении будет передана последовательность байт, представляющая собой ASCII строку ON (без кавычек) с символом перевода строки в конце. При выключении, аналогично, строка OFF с символом перевода строки в конце.

Еще пример - для консоли ТР-7 c JSON-based протоколом:

T_IND IND_CUE_ON "{""msg"":""setcue"",""state"":""on""}\0" "{""msg"":""setcue"",""state"":""off""}\0"

При переходе индикатора IND_CUE_ON в активное состояние (включение) будет послана строка JSON-команды

{"msg":"setcue","state":"on"}

терминированная нулевым байтом, а при переходе в пассивное состояние (выключении) будет послана строка JSON-команды

{"msg":"setcue","state":"off"}

 

Кнопки (события) (CLK_BTN)

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

Синтаксис:

CLK_BTN название идентификатор размер посылки байты посылки

Описание:

Параметр Тип Значение
название строка Произвольное название кнопки, отображаемое пользователю при настройке
идентификатор строка Внутренний идентификатор кнопки. Этот идентификатор система использует для поиска кнопки, сохранения конфигурации и пр.
размер посылки целое десятичное число Количество байт в посылке, прием которой обозначает наступление данного события - факт нажатия кнопки.
Больше 0.
посылка набор чисел [0…FF]16,
разделенный пробелом
Собственно принимаемые данные. Записанные в шестнадцатеричной системе счисления.
12 - шестнадцатеричное 12 (десятичное 18).
Использование десятичной системы невозможно.

Например:

CLK_BTN "Start X-player" "XP_START" 2 81 0F


Описанное событие наступит при поступлении посылки из 2-х байт: 81 и 0F.
В настройке горячих клавиш эта кнопка будет отображаться бод именем Start X-player.

На скриншоте приведен пример назначения описанной кнопки в настройке горячих клавиш на запуск Х-плеера.

hot_key_example.jpg

Кнопки (BTN)

Способ описать кнопки подобно CLK_BTN (и их в том числе) но с более широкими возможностями. Данный синтаксис доступен в версиях начиная с 2.14.10.

Синтаксис:

BTN тип название идентификатор посылка1 посылка1

Описание:

Параметр Тип Значение
тип тип кнопки CLK - только нажатие (одна посылка)
FIX - нажатие и отпускание (две посылки)
GPI - нажатие и отпускание (две посылки) Если в CDU файле описаны кнопки этого
типа из них формируется маска GPI битов (до 64-х)
название строка Произвольное название кнопки, отображаемое пользователю при настройке
идентификатор строка Внутренний идентификатор кнопки. Этот идентификатор система использует для поиска кнопки, сохранения конфигурации и пр.
посылка1 строка в кавычках При получении этой посылки происходит нажатие кнопки. Внутри кавычек содержится последовательность элементов двух типов,
разделенных пробелами, разделенных пробелами.
1 - число от 0 до 255 в десятичной (22), шестнадцатиричной (0x16) или восьмеричной (026) системе счисления.
2 - строка в кавычках "abc"
посылка2 строка в кавычках При получении этой посылки происходит отпускание кнопки

Например:

BTN CLK "Start X-player" "XP_START" "0x81 0x0f 22"


Описанное событие наступит при поступлении посылки из 3-х байт: 81h, 0Fh, 16h. Обратите внимание, что 16h соответствует 22 в десятичной системе счисления.
В настройке горячих клавиш эта кнопка будет отображаться бод именем Start X-player.

Например:

BTN CLK "Start X-player" "XP_START" " "abc" 13 10 "


Описанное событие наступит при поступлении посылки из 5-х байт: 60h(код символа ‘a’), 61h(код символа ‘b’), 62h(код символа ‘c’), 0x0d(13), 0x0a(10)

Например:

BTN FIX "Start X-player" "XP_START" " "abc" 13 10 " " "def" 13 10 "


Нажатие кнопки наступит при поступлении посылки из 5-х байт: 60h(код символа ‘a’), 61h(код символа ‘b’), 62h(код символа ‘c’), 0x0d(13), 0x0a(10)
Отпускание кнопки наступит при поступлении посылки из 5-х байт: 63h(код символа ‘d’), 64h(код символа ‘e’), 65h(код символа ‘f’), 0x0d(13), 0x0a(10)

Примеры

Примеры предназначены для изучения синтаксиса файлов.

GPI_EXPRESSION - объединение GPI сигналов

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

Синтаксис:

GPI_EXPRESSION Арифметичекское выражение

В качестве параметра в выражение передается состояние всех GPI сигналов в виде битовой маски размерностью Int64. Допускается использование арифметических операций, битовых операций, логических операций, а также круглых скобок определяющих приоритет выполнения операций. Выражение может изменять значение GPI. Формировать новые GPI сигналы ли маскировать существующие. Исходное значение передается в выражение в виде параметра src. Результат должен быть сохранен в параметр res.

Пример

Например нам нужно сформировать сигнал GPI который устанавливается в активное значение 1 в случае если GPI0 в состоянии 1, GPI3 в состоянии 1 и GPI5 в состоянии 0. В результате нужно сформировать новый GPI сигнал GPI8.
В этом случае команда будет выглядеть следующим образом:

GPI_EXPRESSION "res = (src & ~0x80) | ( ((src >> 0) & (src >> 3) & ~(src >> 5) & 1) << 8 )"

LOOPBACK. Соединение с самим собой.

При срабатывании индикатора IND_SAMPLE или при записи в устройство команды, состоящей из одного байта, равного 1, генерируется нажатие кнопки Sample control button и выполняется действие, на которое эта кнопка настроена (если это действие предварительно настроено в Настройке клавиатуры).

Примечание: Отправить в устройство команду можно при помощи привязки команды к элементу расписания (закладка Управление окна свойств элемента) или при помощи Таймера.

loopback.cdu

Подключение TR-312 через COM-порт.

Подключение через COM-порт 1.
TR-312.cdu

Сервер TCP

Серверный сокет принимает соединения из любых подсетей на порт 5300
tcp-server.cdu

Клиент TCP сервера

Клиент подключается к сокету, открываемому на адресе 192.168.0.1 порт 5300
tcp-client.cdu

Клиент UDP

Для отправки команд/текста/прочее на UDP-порт из Djin’a необходимо:
Создать файл server.cdu
В файле прописать следующее:
NAME "UDP"
CREATE_DEVICE "UDP" 0
INIT_STR "SEND_PORT=11002 MY_PORT=11002
DEFAUL_RECIPIENTS=ххх.ххх.ххх.ххх, ххх.ххх.ххх.ххх MY_IP= ххх.ххх.ххх.ххх "
Вместо ххх – свои значения
PS При отправке текстовой команды – текст необходимо писать в кавычках.
Пример использования есть в тикете
https://redmine.digispot.ru/issues/49946

Настройка ДУ в SJM с использованием CDU файлов

С помощью SJM_Remote_client.cdu отправляется команда на SJM с SJM_Remote_Server.cdu.
В обоих SJM для соответствующих конопок нужно настроить Remote button в разделе Remote contol:

Настройка ДУ в RDS с использованием CDU файлов.

Из Джинна можно отправлять команды на RDS сервис, например с использованием таймеров. Или напрямую с пульта на RDS сервис.
Для этого нужно при создании CDU файла с командами для RDS сервиса прописать "OWNER RDS_SERVICE":

пример CDU файла

Show

Микшеры AEQ Forum и Capitol

Микшеры этой серии подключаются к Джину как TCP-сервер на порту 2600. Имя линка в CDU-команде NAME может быть произвольным, нужно только для логов. Параметр INIT_STR содержит IP-адрес микшера.
Сам микшер создаётся CDU-командой AEQ_MIXER c единственным строковым параметром - именем микшера, которое может быть любым.
Управляемыми единицами для Джина являются линейки микшера, они создаются в CDU-файле командами RMT_MIXER_OPT. Команда должна содержать строку одного из двух форматов:
"CH=sssssss"
"LN=nnn"
Первый формат создает линейки по имени источника, занесенного в конфигурацию микшера (до 6 ASCII символов), второй - по номеру фэйдера. Номер фэйдера находится в диапазоне от 1 до 20, #1 - самая левая линейка микшера. Разница между заданием номера линейки и имени канала в том, что для номеров линеек назначение их на выходы плеера Джина не зависит от загруженной конфигурации микшера. Если же выходам плеера сопоставляются имена каналов микшера, то их назначение на линейки определяется конфигурацией микшера.

Пример CDU файла для микшерной консоли AEQ Forum:

//
//  .CDU file example for AEQ digital mixing consoles (Forum or Capitol)
//

NAME "AEQ-LINK"                 // имя линка
CREATE_DEVICE TCP_CLIENT 2600   // создаём линк как TCP-клиент к порту
INIT_STR "IP=172.31.1.10"       // адрес 

SET_OUT_BUF 65536               // установим размер буфера обмена
AEQ_MIXER "AEQ-MIX"             // создадим микшер типа AEQ_MIXER с именем "AEQ-MIX"

// управляемые единицы - линейки микшера
// можно создавать их по имени источника (до 6 ASCII символов) или по номеру фэйдера
// номер фэйдера находится в диапазоне от 1 до 20 (#1 - самая левая линейка)


RMT_MIXER_OPT "CH=DJin.1"
RMT_MIXER_OPT "CH=DJin.2"
RMT_MIXER_OPT "LN=6"

// RMT_MIXER_OPT "LN=1"
// RMT_MIXER_OPT "LN=2"
// RMT_MIXER_OPT "LN=3"

// RMT_MIXER_OPT "LN=7"
// RMT_MIXER_OPT "LN=8"
// RMT_MIXER_OPT "LN=9"
// RMT_MIXER_OPT "LN=10"
// RMT_MIXER_OPT "LN=11"
RMT_MIXER_OPT "LN=12"

//  END Forum config

Микшеры EEla Audio D4

Микшеры этой серии подключаются к Джину как TCP-сервер, порт сервера можно сконфигурировать в конфигурационном файле на микшере. Имя линка в CDU-команде NAME может быть произвольным, нужно только для логов. Параметр INIT_STR содержит IP-адрес микшера, или адрес и порт.

Сам микшер создаётся CDU-командой D4_MIXER c единственным строковым параметром - именем микшера, которое может быть любым.
Управляемыми единицами для Джина являются линейки микшера, они создаются в CDU-файле командами RMT_MIXER_OPT. Команда должна содержать строку с номером линейки микшера, и, опционально, её название через двоеточие.

Пример CDU файла для микшерной консоли Eela Audio D4:

//
//  .CDU file example for EELA Audio D4 digital consoles
//

NAME "EELA-D4-LINK"             // имя линка
CREATE_DEVICE TCP_CLIENT 5001   // создаём линк как TCP-клиент к порту
INIT_STR "IP=192.168.0.206 PORT=5001"     // адрес сетевого узла для пульта

SET_OUT_BUF 65536               // установим размер буфера обмена
D4_MIXER "D4-ELKA-MIX"          // создадим микшер типа D4_MIXER с именем "D4-ELKA-MIX"

// управляемые единицы - линейки микшера
// номер линейки (фэйдера) для D4 находится в диапазоне от 0 до 15
// (#0 - самая левая линейка)
// опционально можно задать имя источника, связанного с линейкой
// для Джина внутренняя нумерация линеек будет в порядке перечисления здесь от нуля
// имя, если задано после двоеточия, может включать латинские буквы, цифры и спецзнаки 
// (в диапазоне символов 32..127 таблицы ASCII)

RMT_MIXER_OPT "2:DJin-Main"
RMT_MIXER_OPT "0:Reserve"
RMT_MIXER_OPT "7"
RMT_MIXER_OPT "11:Mumbler"
RMT_MIXER_OPT "3"

AXIA Elements/AXIA Radius и др.

Эти консоли подключаются к Джину как TCP-сервер на порту 4010. Имя линка в CDU-команде NAME может быть произвольным, нужно только для логов. Параметр INIT_STR содержит IP-адрес микшера.

Сам микшер создаётся CDU-командой AXIA_MIXER c единственным строковым параметром - именем микшера, которое может быть любым.

Управляемыми единицами для Джина являются линейки микшера, они создаются в CDU-файле командами RMT_MIXER_OPT. Команда должна содержать строку одного из двух форматов:

"CH=sssssss"
"LN=nnn"


Первый формат создает линейки по имени источника, занесенного в конфигурацию микшера (раздел Console/Sources; до 10 ASCII символов, может содержать пробелы), второй - по номеру фэйдера. Номер фэйдера находится в диапазоне от 1 до 40, самая левая линейка микшера имеет номер 1. Разница между заданием номера линейки и имени канала в том, что для номеров линеек назначение их на выходы плеера Джина не зависит от загруженной конфигурации микшера. Если же выходам плеера сопоставляются имена каналов микшера, то их назначение на линейки определяется конфигурацией микшера. При перезагрузке профилей консоли привязка фэйдеров, указанных в RMT_MIXER_OPT именем источника, может меняться.

Для консолей QoR (Radius и т.п.) рекомендуется использовать LN команды, а не CH.

Команда RMT_MIXER_OPT также может содержать спецификацию опции для установки интервала времени между ответом микшера и посылкой следующей команды:

"T2=nnn"


Время задается в миллисекундах. При отсутствии такой команды в файле .cdu после инициализации используется значение T2=20 миллисекунд. Для консолей QoR (Radius и т.п.) с медленным процессором рекомендуется значение порядка 100 мс, иначе консоль будет подвисать при работе. Для Elements можно установить время порялка 10-20 миллисекунд.

Количество линеек (N) данного микшера, связанных с Джином соответствует количеству строк RMT_MIXER_OPT с командами CH или LN.
ДУ данного устройства формирует для Джтна N+N флагов GPI: первые N связаны с состоянием открытия "OnAir" линеек, следующие N - с состоянием "Preview".

Образец конфигурационного .cdu файла для использования AXIA Elements с дистанционным управлением DJin:

//
//  .CDU file example for AXIA digital mixing consoles via LWCP protocol
//

NAME "AXIA-ELEMENTS-LINK"       // имя линка
CREATE_DEVICE TCP_CLIENT 4010   // создаём линк как TCP-клиент к порту LWCP микшера
INIT_STR "IP=172.22.0.2"        // адрес 

SET_OUT_BUF 65536               // установим размер буфера обмена
AXIA_MIXER "AXIA-ELEMENTS-MIXING-CONSOLE"   // создадим микшер типа AXIA_MIXER с именем "AXIA-ELEMENTS-MIXING-CONSOLE"

// опция установки интервала между последним ответом консоли и посылкой команд 
// опроса консоли (от 1 до 10000 миллисекунд )

RMT_MIXER_OPT "T2=10"

// управляемые единицы - линейки микшера
// можно создавать их по номеру фэйдера или по имени источника 
// в имени источника лучше использовать ASCII символы: латиница, цифры, знаки (коды от 32 до 126)
// номер фэйдера находится в диапазоне от 1 до 40 (#1 - самая левая линейка)

RMT_MIXER_OPT "CH=DJin1 MAIN"
RMT_MIXER_OPT "CH=DJin2 MAIN"
RMT_MIXER_OPT "CH=DJin3 MAIN"

RMT_MIXER_OPT "LN=12"

Образец конфигурационного .cdu файла для использования AXIA Radius с дистанционным управлением DJin:



//
//  .CDU file example for AXIA digital mixing consoles via LWCP protocol
//

NAME "AXIA-RADIUS-LINK"     // имя линка
CREATE_DEVICE TCP_CLIENT 4010   // создаём линк как TCP-клиент к порту LWCP микшера
INIT_STR "IP=172.22.0.2"        // адрес 

SET_OUT_BUF 65536               // установим размер буфера обмена
AXIA_MIXER "AXIA-RADIUS-MIXING-CONSOLE" // создадим микшер типа AXIA_MIXER с именем "AXIA-RADIUS-MIXING-CONSOLE"

// опция установки интервала между последним ответом консоли и посылкой команд 
// опроса консоли (от 1 до 10000 миллисекунд )
// для RADIUS лучше порядка 100 мс

RMT_MIXER_OPT "T2=100"

// управляемые единицы - линейки микшера
// создавать по номеру фэйдера (#1 - самая левая линейка)

RMT_MIXER_OPT "LN=3"
RMT_MIXER_OPT "LN=7"

TP-7 Traсt и TP-9 Clyde Broadcast

Консоль TP-7 компании ТРАКТ поддерживает JSON-based протокол управления [[tr-7:Протокол_для_приложений_управления_микшером]] встроенный в контроллер данной консоли. В программном обеспечении контроллера реализован TCP-сервер, обслуживающий IP порт для подключения управляющих приложений (порт 12010 по умолчанию).

Консоль Clyde Broadcast подключаются к порту USB компьютера, и для работы с ними через TCP и тот же самый протокол существует специальный сервис, служащий посредником. Он создает TCP-сервер (по умолчанию на порту 40008), к которому может подключиться модуль ДУ DJin, и управляет микшером через USB порт.

Как обычно, имя линка в CDU-команде NAME может быть произвольным, нужно для логов и для ссылок в секции параметров "Дистанционное управление" X-плеера.

Параметр в CDU-команде INIT_STR содержит IP-адрес микшера в виде строки.

Сам объект микшера в модуле ДУ DJin создаётся одной из следующих CDU-команд (в зависимости от типа подключаемого микшера):

TR7_MIXER "имя-микшера"
TR9_CLYDE_MIXER "имя-микшера"

c единственным строковым параметром - именем микшера, которое может быть любым. Это имя следует использовать при настройке в панели виртуального микшера DJin, если она создается в VID-файле.

Управляемыми единицами для Джина являются линейки микшера, они создаются в CDU-файле командами RMT_MIXER_OPT. Для каждой линейки CDU файл должен содержать строку одного из следующих форматов:

RMT_MIXER_OPT "LN=nnn"
RMT_MIXER_OPT "CH=xxx"


Либо задается номер линейки (фэйдера) - nnn, либо задается имя линейки (фэйдера) - xxx.
Номера фэйдеров находится в диапазоне от 1 до 16, самая левая линейка микшера имеет номер 1.
Имена линеек должны содержать только валидные символы таблицы кода ASCII, включая пробелы.

Для TR-7 линейки пронумерованы следующим образом: 1 - Mic1, 2 - Mic2, 3 - Mic3/Line, 4 - Tel/BT, 5 - Ws1/Main, 6 - Ws2/Main, 7 - Ws3/Main, 8 - Ws1/Rec, 9 - Ws2/Rec, 10 - Ws3/Rec, 11 - Ext. На передней панели консоли находятся 8 фэйдеров, соответствующие линейкам 1, 2, 3, 4, 5/8, 6/9, 7/10 и 11. Фэйдеры с 5 по 7 привязываются к линейкам 5-7 или 8-10 в зависимости от включения режима "REC" консоли.

Количество линеек (N) данного микшера, связанных с Джином соответствует количеству строк RMT_MIXER_OPT с командами CH или LN. Панель виртуального микшера в Джине создается с N линейками.

Модуль ДУ данного устройства формирует для Джина N+N флагов GPI: первые N связаны с состоянием открытия "OnAir" линеек, следующие N - с состоянием "PFL". С ними можно связывать действия в настройках ДУ X-плеера.

Модуль ДУ микшеров TP-7/TP-9 поддерживает привязку команд плееров, превью и других модулей Джина к кнопкам пульта. Например, для TR-9 можно привязать запуск предпросмотра медиафайлов к кнопке "CUE" на правой панели микшера.

Для TR-7 доступны следующие параметры, связанные с виртуальными кнопками F1...F5 сенсорном экране консоли: "F1.State", "F2.State", "F3.State", "F4.State", "F5.State", при нажатии кнопок они посылают уведомления on/off, и их можно связать с горячими клавишами DJin. Также, можно изменять имена и цвет кнопок с помощью параметров "F1.Color", "F2.Color", "F3.Color", "F4.Color", "F5.Color" и "F1.Text", "F2.Text", "F3.Text", "F4.Text", "F5.Text". По умолчанию имена кнопок Play, Stop, Man, Live, Auto. Параметры групп Color/Text не посылают уведомлений, поэтому они не используются для создания горячих клавиш, но команды установки цвета и текста можно использовать в конфигурируемых командах индикаторов.

Например, для переключения цвета кнопки F2 и текста на кнопке F5 при включении записи в аудиоредакторе (флаг ) можно использовать такую строку в .cdu файле для ТР-7:


T_IND IND_REC_ON  "{""msg"":""setpar"",""id"":""F2.Color"",""val"":""10526975""}{""msg"":""setpar"",""id"":""F5.Text"",""val"":""REC.ON""}\0" "{""msg"":""setpar"",""id"":""F2.Color"",""val"":""8421552""}{""msg"":""setpar"",""id"":""F5.Text"",""val"":""REC.OFF""}\0"

или


T_IND IND_REC_ON  "[{""msg"":""setpar"",""id"":""F2.Color"",""val"":""10526975""},{""msg"":""setpar"",""id"":""F5.Text"",""val"":""REC.ON""}]\0" "[{""msg"":""setpar"",""id"":""F2.Color"",""val"":""8421552""},{""msg"":""setpar"",""id"":""F5.Text"",""val"":""REC.OFF""}]\0"

Образец конфигурационного .cdu файла для использования консоли TR-7 с дистанционным управлением DJin:


//
//  .CDU file example for TR-7 broadcasting mixing console
//

NAME "TR7-LINK"        // имя линка
CREATE_DEVICE TCP_CLIENT 12010  // создаём линк как TCP-клиент к порту
INIT_STR "IP=192.168.0.135"     // адрес консоли

SET_OUT_BUF 65536      // установим размер буфера обмена
TR7_MIXER "TR7-MIX"    // создадим микшер типа TR7_MIXER с именем "TR7-MIX"

// управляемые единицы - линейки микшера
// можно создавать их по имени источника или по номеру фэйдера
// номер фэйдера находится в диапазоне от 1 до 12 (#1 - самая левая линейка)

RMT_MIXER_OPT "CH=Mic1"
RMT_MIXER_OPT "CH=Mic2"
// RMT_MIXER_OPT "LN=1"
// RMT_MIXER_OPT "LN=2"
RMT_MIXER_OPT "LN=3"
RMT_MIXER_OPT "LN=4"
RMT_MIXER_OPT "LN=5"
RMT_MIXER_OPT "LN=6"
RMT_MIXER_OPT "LN=7"
RMT_MIXER_OPT "LN=8"
RMT_MIXER_OPT "LN=9"
RMT_MIXER_OPT "LN=10"
RMT_MIXER_OPT "LN=11"

//  create DJin hot keys for TR-7 mixer button parameters

RMT_MIXER_OPT "HK=    F1.State  ,  on    ,  F1 Button (Play)"
RMT_MIXER_OPT "HK=    F2.State  ,  on    ,  F2 Button (Stop)"
RMT_MIXER_OPT "HK=    F3.State  ,  on    ,  F3 Button (Man)"
RMT_MIXER_OPT "HK=    F4.State  ,  on    ,  F4 Button (Live)"
RMT_MIXER_OPT "HK=    F5.State  ,  on    ,  F5 Button (Auto)"

// create CUE_ON indicator interface to JSON-based mixer

T_IND IND_CUE_ON "{""msg"":""setcue"",""state"":""on""}\0" "{""msg"":""setcue"",""state"":""off""}\0"

Для TR-9 доступны следующие параметры, связанные с кнопками консоли: "intro_button", "outro_button", "link_button", "forward_button", "backward_button", "cue_button" and "play_button", имена соответсвуют кнопкам на пульте Clyde/TP-9. DJin имеет кастомный модуль, который умеет работать с этими кнопками.

Горячие клавиши назначаются с помощью команд RMT_MIXER_OPT в CDU файле, с параметром HK и значением из трех разделенных запятой подстрок: имя параметра, связанное с кнопкой, затем - значение, посылаемое в параметре (для всех упомянутых параметров кнопок оно on/off), затем информационная строка для панели настройки горячих клавиш Джина. Например, для кнопки CUE на TR-9:

RMT_MIXER_OPT "HK=cue_button,on,CUE button pressed"

Образец конфигурационного .cdu файла для использования консоли Clyde Broadcast с дистанционным управлением DJin:


//
//  .CDU file for Clyde Broadcast mixing console
//

NAME "CLYDEBROADCAST-MIXER-LINK"   // link name
CREATE_DEVICE TCP_CLIENT 40008     // TCP port on console to connect to (from DJin)
INIT_STR "IP=62.30.212.174"        // IP address of console's TCP server

SET_OUT_BUF 65536                  // DJin buffer size

TR9_CLYDE_MIXER "CLYDEBROADCAST-MIXER"   // create mixer with given name

//  controlled items are mixing console lines
//  can be addressed via name or via console line number (starting from one left-to-right)

// RMT_MIXER_OPT "CH=Mic1"
// RMT_MIXER_OPT "CH=Mic2"
RMT_MIXER_OPT "LN=1"
RMT_MIXER_OPT "LN=2"
RMT_MIXER_OPT "LN=3"
RMT_MIXER_OPT "LN=4"

//  create DJin hot keys for Clyde mixer button parameters 

RMT_MIXER_OPT "HK=    mic_on           ,  on    ,  Microphone is ON"
RMT_MIXER_OPT "HK=    settings         ,  open  ,  Settings window is opened"
RMT_MIXER_OPT "HK=    commutation      ,  open  ,  Commutation window is opened"
RMT_MIXER_OPT "HK=    intro_button     ,  on    ,  INTRO button pressed"
RMT_MIXER_OPT "HK=    outro_button     ,  on    ,  OUTRO button pressed"       
RMT_MIXER_OPT "HK=    link_button      ,  on    ,  LINK button pressed"
RMT_MIXER_OPT "HK=    forward_button   ,  on    ,  FORWARD button pressed"
RMT_MIXER_OPT "HK=    rewind_button    ,  on    ,  BACKWARD button pressed"
RMT_MIXER_OPT "HK=    cue_button       ,  on    ,  CUE button pressed"
RMT_MIXER_OPT "HK=    play_button      ,  on    ,  PLAY button pressed"

Создание виртуального микшера в CDU файле

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

Рекомендации по использованию виртуального микшера можно посмотреть здесь: Управление_микшером

При создании виртуального микшера ему задается кол-во линеек (X - кол-во линеек).

NUM_CHANNELS=X

Пример CDU файла для создания виртуального микшера:

NAME "LOOP"
CREATE_DEVICE   "LOOPBACK" 1
SET_RMT_OUT

VIRTUAL_MIXER "Virtual"

RMT_MIXER_OPT "NUM_CHANNELS=6"

Add picture from clipboard (Maximum size: 742 MB)