OSC: управление по сети
Адреса существуют сразу, назначать ничего не надо. Разобраться придётся с относительными путями и с тем, что 0,5 не всегда половина.
Адрес вместо назначения, абсолютные и относительные пути, типы значений и отдача состояния наружу.
Как объяснил бы коллега за пультом: коротко и по делу.
OSC — сообщения по сети, и любой параметр имеет адрес, по которому его читают и меняют. Ничего назначать не нужно: адреса существуют изначально.
/composition/layers/1/clips/3/connect
/composition/layers/2/video/opacity 0.25
/composition/master
/composition/tempocontroller/tempo
Общего списка адресов не существует и не может: он зависит от того,
сколько у вас слоёв и какие стоят эффекты. Точный адрес показывает сама
программа — Shift + Ctrl + O, щелчок по нужной ручке, адрес в панели
копируется.
Два адреса у одного элемента
/composition/layers/1/video/effects/goo/speed абсолютный
/composition/selectedlayer/video/effects/goo/speed относительный
Первый управляет эффектом на первом слое и только на нём. Второй — тем же эффектом на слое, который выбран сейчас, так что один адрес обслуживает все слои. Нет на выбранном слое такого эффекта — сообщение просто ничего не сделает.
Значения
| Тип | Как читать |
|---|---|
| Float 0.0–1.0 | Дробное от нуля до единицы, отображается в реальный диапазон параметра |
| Int | Целое: например, режим смешивания слоя это число от 0 до 50 |
| Color | 32-битный RGBA одним значением |
Отображение нелинейно к смыслу: у масштаба композиции тип Float 0.0–1.0 при реальном диапазоне 0–1000 %, то есть 0,1 даёт 100 %, а 0,5 — 500 %. У поворота 0,5 означает ноль градусов, потому что диапазон идёт от −180 до +180. Целочисленному адресу можно послать и дробное: оно линейно растянется на диапазон параметра.
Связь
Порт по умолчанию 7000, меняется в Preferences → OSC, там же виден адрес машины. Программа объявляет себя по ZeroConf, он же Bonjour, и приложения с его поддержкой находят её сами; остальным адрес и порт вписывают руками.
Самая частая ошибка — собрать большую панель и обнаружить, что не работает вообще ничего. Проверьте связь одним сообщением: мастер или прозрачность первого слоя.
В настройках разворачивается монитор с последними двумя сотнями сообщений. Это первое место, куда смотрят, когда «не работает».
Монитор показывает исходящие сообщения наравне с входящими.
Отдача наружу
Выход включается там же, а поток настраивается пресетами сочетаний:
Shift + Ctrl + O → панель сочетаний → выбор пресета. Пресет
«Output All OSC Messages» шлёт вообще всё — запуск клипов, движения мыши,
вход MIDI, автоматизацию, позицию плейхеда, по всем адресам сразу. Понять
состояние программы снаружи так удобно, а канал забивается мгновенно,
поэтому под задачу собирают свой пресет.
| Источник | Типичная задача |
|---|---|
| Планшет с TouchOSC | Своя панель управления в руках |
| Companion или стримдек | Кнопки под конкретные действия |
| Световой пульт | Свет и видео из одной точки |
| TouchDesigner, Max, Processing | Связка софта в одну систему |
| Свой скрипт | Автоматизация и интеграции |
OSC живёт по UDP, и сообщения теряются. Wi-Fi годится, пока их немного, но сила сигнала падает, когда в зале пять тысяч человек с телефонами. В ответственных местах на однократную отправку не полагаются — Проблемы управления.
OSC — сообщения по сети. Любой параметр имеет адрес, по которому его читают и меняют. В отличие от MIDI и клавиатуры, ничего назначать не нужно: адреса существуют изначально.
Как выглядит адрес
Он повторяет структуру композиции:
/composition/layers/1/clips/3/connect
/composition/layers/2/video/opacity 0.25
/composition/master
/composition/tempocontroller/tempo
Общего списка адресов не существует и существовать не может: он зависит
от того, сколько у вас слоёв и какие эффекты стоят. Точный адрес любого
элемента показывает сама программа — Shift + Ctrl + O, затем щелчок
по нужной ручке. Адрес в панели можно скопировать.
Абсолютный и относительный
У одного и того же элемента бывает два адреса.
/composition/layers/1/video/effects/goo/speed абсолютный
/composition/selectedlayer/video/effects/goo/speed относительный
Первый управляет эффектом на первом слое и только на нём. Второй — эффектом на том слое, который выбран сейчас: один адрес обслуживает все слои, где стоит этот эффект. Если на выбранном слое такого эффекта нет, сообщение просто ничего не сделает.
Типы значений
У каждого элемента есть тип и диапазон, видимые там же, в панели сочетаний.
| Тип | Как читать |
|---|---|
| Float 0.0–1.0 | Дробное от нуля до единицы, отображается в реальный диапазон параметра |
| Int | Целое: например, режим смешивания слоя это число от 0 до 50 |
| Color | 32-битный RGBA одним значением |
Диапазон отображается нелинейно к смыслу: у масштаба композиции тип Float 0.0–1.0 при реальном диапазоне 0–1000 %, то есть 0,1 даёт 100 %, а 0,5 — 500 %. У поворота 0,5 означает ноль градусов, потому что реальный диапазон от −180 до +180.
Целочисленному адресу можно послать и дробное значение: оно линейно растянется на диапазон параметра.
Настройка связи
Порт по умолчанию — 7000, меняется в Preferences → OSC. Там же виден адрес машины.
Программа объявляет себя в сети по ZeroConf, он же Bonjour: приложения с его поддержкой находят Resolume сами. Остальным адрес и порт вписывают руками.
Порядок подключения
- Включить приём OSC и задать порт.
- Убедиться, что устройства в одной сети.
- Отправить одно сообщение и проверить, что параметр изменился.
- Только потом строить панель.
Самая частая ошибка — собрать большую панель и обнаружить, что не работает вообще ничего. Проверьте связь одним сообщением: мастер или прозрачность первого слоя.
Монитор
В настройках OSC разворачивается окно с последними двумя сотнями входящих и исходящих сообщений. Это первое место, куда смотрят, когда «не работает».
Монитор показывает исходящие сообщения наравне с входящими.
Отдача наружу
Выход OSC включается там же. Управляют потоком через пресеты сочетаний:
Shift + Ctrl + O → панель сочетаний → выбор пресета.
Пресет «Output All OSC Messages» шлёт вообще всё: запуск клипов, движения мыши, вход MIDI, автоматизацию параметров, позицию плейхеда — по всем адресам, абсолютным и относительным. Полезно, чтобы понять состояние программы снаружи, и быстро забивает канал.
Поэтому под конкретную задачу собирают свой пресет и шлют только нужное.
Кто управляет
| Источник | Типичная задача |
|---|---|
| Планшет с TouchOSC | Своя панель управления в руках |
| Companion или стримдек | Кнопки под конкретные действия |
| Световой пульт | Свет и видео из одной точки |
| TouchDesigner, Max, Processing | Связка софта в одну систему |
| Свой скрипт | Автоматизация и интеграции |
Сеть
OSC живёт по UDP: сообщения теряются. Wi-Fi годится, пока их немного, но сила сигнала падает, когда в зале пять тысяч человек с телефонами. В ответственных местах не полагайтесь на однократную отправку — Проблемы управления.