14. Справочник OSC¶
Справочник соответствует DL20 0.8.84; источник — документация OSC в поставке (docs/OSC.md).
Управление показом по сети из пульта, QLab, TouchOSC, Companion или любого другого источника OSC. Приём по UDP.
Появилось в версии 0.5.58. Раньше поле OSC INPUT PORT в настройках было подписано PLANNED и ничего не
слушало — если у вас более старая версия, описанное ниже работать не будет.
1. Включение¶
SETTINGS → раздел CONTROLLERS → поле OSC INPUT PORT.
Введите порт и нажмите Enter (или просто уйдите из поля — значение применится). Стандартный порт для OSC — 7000.
Ноль выключает приём. По умолчанию стоит ноль: программа не открывает сетевой порт на машине оператора, пока её об этом не попросят.
Порт запоминается для этой машины, а не внутри проекта. Перенос проекта на другую площадку не притащит туда чужой номер порта.
Под полем — строка состояния:
OFF — порт 0 выключает приём
LISTENING udp/7000 · принято 47 · /composition/columns/3/connect
ОШИБКА: osc: server_thread_new failed (port in use?)
Если строка красная — порт занят другой программой. Возьмите другой номер.
2. Команды¶
Реализованы запуск сцены, запуск окна и, с версии 0.8.84, адреса треков и групп стойки таймлайна. Индексы
начинаются с единицы, как подписаны кнопки в программе (SCENE 1, SCENE 2, …).
Запустить колонку (сцену)¶
/composition/columns/{N}/connect
N — номер колонки. /composition/columns/3/connect делает ровно то же, что нажатие кнопки SCENE 3:
запускает все заполненные окна этой колонки на всех видимых слоях.
Запустить одну ячейку¶
/composition/layers/{L}/clips/{W}/connect
L — номер слоя (сверху вниз, L1 = 1), W — номер окна в строке.
/composition/layers/2/clips/5/connect запускает клип на пересечении второго слоя и пятой колонки.
Аргумент¶
Аргумент необязателен. Сообщение без аргументов (bang) запускает команду.
Если аргумент есть:
| Аргумент | Действие |
|---|---|
| нет аргумента, строка | запуск |
целое, не ноль (1) |
запуск |
целое 0 |
игнор |
дробное >= 0.5 |
запуск |
дробное < 0.5 |
игнор |
Ноль игнорируется намеренно: пульты и TouchOSC шлют нажатие кнопки как 1, а отпускание как 0. Без этого
правила одно нажатие оператора срабатывало бы дважды.
Треки и группы (0.8.84)¶
/composition/tracks/{N}/connect
/composition/tracks/{N}/disconnect
/composition/tracks/{N}/toggle
/composition/tracks/{N}/go
/composition/tracks/{N}/position
/composition/tracks/id/{ID}/{тот же набор}
/composition/groups/{N}/{тот же набор}
/composition/groups/id/{ID}/{тот же набор}
N — номер трека или группы с единицы по порядку стойки (главный трек — 1), без ведущих нулей, 1…999 — те
же правила, что у колонки и ячейки выше. ID — id трека или группы (без ведущих нулей, не ноль; устойчив к
перестановке строк стойки). Группа исполняется её мастером — участники идут веером, как от кнопки ▶ панели;
адрес участника группы тоже ведёт всю его группу.
connect— старт (на уже играющем треке/группе — ничего);disconnect— стоп (на стоящем — ничего);toggle— ▶/■ по состоянию мастера;go— то же, что кнопка GO▸ панели (переход к следующему cue; без открытой панели таймлайна — отказ).position— не кнопка, а значение: число (float или int) переставляет трек на эти секунды от начала и срабатывает на любое число, включая0.0. Bang или строка (кнопка, по ошибке назначенная на/position, или строка"2.5") позицию НЕ меняют: команда отклоняется строкой логаosc /composition/tracks/1/position -> refused: position needs a number.
Трек или группа не найдены — программа пишет в лог osc track N -> no such track (или no such group) и
ничего не исполняет; счётчик непонятых адресов эту команду не считает — адрес распознан, не нашлась только
цель.
3. Как проверить, что команды доходят¶
Строка состояния в SETTINGS → CONTROLLERS показывает счётчик принятых сообщений и последний пришедший
адрес — независимо от того, поняли мы его или нет. Если адрес пришёл с опечаткой, вы увидите его и пометку
(не команда). Это отвечает на два разных вопроса по очереди: «долетает ли вообще что-нибудь» и «правильный
ли адрес я шлю».
Лог пишется в %LOCALAPPDATA%\DL\logs\ (свежий файл — на каждый запуск):
dl_composition: osc listening on udp/7000
dl_composition: osc launched column 3
dl_composition: scene column 3 launched (2 clips, 0 stopped)
dl_composition: osc cell L2-W7 is empty
dl_composition: osc column 12 out of range (1..8)
dl_composition: osc /composition/layers/1/video/opacity -> not a command
dl_composition: osc track 1 connect -> ok: #1 Main
dl_composition: osc track 99 -> no such track
dl_composition: osc track 1 position 2.500 -> ok: #1 Main
Нераспознанные адреса пишутся подробно первые 20 раз, дальше только считаются — чужой пульт, вещающий в
сеть, не должен забить лог за смену. Строки трековых команд (osc track …, osc group …) тоже с пределом:
строка — на смену цели или op (фейдер на position одного трека даёт одну строку, а не строку на сообщение),
всего не больше 50 за запуск; исполняются при этом все команды.
4. Чем послать для проверки¶
oscsend (входит в liblo, есть в пакетах большинства дистрибутивов):
oscsend 127.0.0.1 7000 /composition/columns/2/connect i 1
oscsend 192.168.0.50 7000 /composition/layers/1/clips/3/connect
oscsend 127.0.0.1 7000 /composition/tracks/1/connect
oscsend 127.0.0.1 7000 /composition/tracks/1/position f 2.5
TouchOSC / Companion / QLab — укажите IP машины с DL20 и порт из настроек, адрес из раздела 2. Тип сообщения — кнопка (button), а не фейдер.
5. Чего пока нет¶
Адреса колонки и ячейки совместимы с Resolume; остальной API Resolume не поддерживается — в частности, НЕ работают:
/composition/layers/{L}/video/opacityи любые другие параметры;/composition/columns/{N}/select(выбор без запуска);/composition/tempocontroller/..., темп и синхронизация;- Art-Net на приём — в настройках он честно подписан
PLANNED.
Честно про треки и группы (0.8.84): адресации по имени трека или группы нет — только номер по порядку
стойки или числовой id; go без открытой панели таймлайна на экране отказывает. И для старых, и для новых
адресов: отправка OSC из программы наружу и обратная связь о состоянии в пульт или любой OSC-клиент —
нет вовсе.
Отдельно: произвольные OSC-адреса можно привязать к параметрам через MIDI Learn — механизм привязок общий для MIDI и OSC. Это другой сценарий, чем фиксированные команды выше.
Подробнее об управлении: 13.