К содержанию
fohbook/ TouchDesigner для света
уверенный

DMX Map DAT: карта юниверсов

Визуализация того, что реально уходит по каждому юниверсу, и поиск конфликтов адресов.

DMX Map DAT — оператор, появившийся в версии 2025 вместе с DMX-POP. Он показывает раскладку юниверсов и каналов в виде таблицы.

Что он решает

Главная беда любого патча — пересечение адресов. Два прибора, занимающие один и тот же диапазон каналов, ведут себя непредсказуемо: один портит значения другого, и симптом выглядит как «прибор глючит».

До появления этого оператора конфликты искали глазами по таблице. Теперь карта показывает, какой канал каким прибором занят, и наложения видны сразу.

Как пользоваться

По умолчанию DMX Map DAT пристыкован к DMX Out POP. Открыв его, вы видите:

  • какие юниверсы используются;
  • какие каналы внутри юниверса заняты и кем;
  • где остались дыры;
  • где занято дважды.

Это тот же взгляд, что даёт окно патча на консоли, — и он одинаково нужен и при сборке, и при отладке.

Что проверять перед шоу

  1. Нет наложений. Ни одного канала, занятого двумя приборами.
  2. Нет неожиданных юниверсов. Всё, что уходит, — уходит туда, куда планировалось.
  3. Совпадение с патчем консоли, если она есть — Патч и маршрутизация.
  4. Границы юниверсов. Прибор, начинающийся с 505-го канала и занимающий 16, не поместится: DMX не переносит прибор в следующий юниверс.

Последний пункт — классическая ошибка при автоматической адресации.

Если POP нет

На версиях до 2025 карту приходится строить самому. Минимальный вариант — Evaluate DAT, раскладывающий таблицу патча в сетку 512 × N и подсвечивающий занятые ячейки. Двадцать минут работы, которые окупятся на первом же конфликте.

Ещё проще: скрипт, который проходит по таблице патча и печатает список пересечений:

used = {}
for r in op('fixtures').rows()[1:]:
    u = int(r['universe']); a = int(r['address']); fp = footprint(r['type'])
    for ch in range(a, a + fp):
        key = (u, ch)
        if key in used:
            debug('конфликт', key, used[key], r['id'])
        used[key] = r['id'].val
Проверка адресов — часть чек-листа перед шоу

Наравне с «сеть поднялась» и «приборы отвечают». Конфликт адресов даёт плавающие симптомы, которые ищут часами, а находят за секунду, если посмотреть в правильное место.

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