← все статьи

Свет в темп музыки: тап, MIDI Clock и что делать с диджеем

Три способа держать темп света, чем они отличаются, как отдать MIDI Clock на одной машине и между двумя и что делать, если источник умеет только Ableton Link.

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

Три способа, и они не взаимозаменяемы

Тап. Кнопка TAP в шапке: три-четыре нажатия в такт, и темп выставлен. Работает всегда, ничего не требует и ни от чего не зависит. Слабое место очевидно: темп замер там, где вы его поставили. Ровный трек он держит весь трек, живой барабанщик уплывёт за куплет.

MIDI Beat Clock. Источник музыки сам шлёт 24 тика на четверть, пульт считает по ним темп и идёт за ним непрерывно. Это то, что нужно на дискотеке и на любом сете, где темп меняется.

Таймкод. MTC или Art-Net-таймкод — это не про темп вовсе, а про позицию: жёстко расписанное шоу, где на 2:14 должна быть конкретная кью. Про него отдельная статья.

Дальше — про второй, потому что именно с ним больше всего вопросов.

Включить у нас

Настройки → MIDI, галочка «Следовать темпу MIDI Clock». Рядом с ней показание: MIDI Clock: 128.0 BPM, когда источник живой, и «MIDI Clock не приходит», когда его нет.

Показание работает всегда, следование — только по галочке, и это сделано намеренно. Клок свободно шлёт половина синтезаторов и драм-машин, и включённое по умолчанию следование означало бы, что у части людей темп живёт своей жизнью без спроса. Сначала посмотрите, что показание появилось, и только потом включайте.

Пока темп ведёт клок, поле BPM и кнопка TAP заблокированы — с подсказкой, почему. Это тоже намеренно: тап при живом клоке вернулся бы к чужому темпу через долю, и выглядело бы это как поломка, а не как «ведёт источник».

Включить у источника

Отдача клока почти везде выключена по умолчанию и лежит в настройках синхронизации: в DAW это обычно «MIDI Clock Send» на конкретный порт, в диджейском софте — раздел Sync или Link/MIDI. Не найдя такого тумблера, искать причину в пульте бесполезно: без него по проводу не идёт ничего.

Как соединить

Одна машина. Нужен виртуальный MIDI-порт: источник пишет в него, пульт из него читает.

  • macOS: встроенный IAC Driver (Audio MIDI Setup → окно MIDI Studio), включите устройство и выберите его портом в обеих программах.
  • Windows: своего виртуального порта в системе нет, ставится сторонняя бесплатная утилита (самая известная — loopMIDI).
  • Linux: ALSA даёт виртуальные порты штатно.

Две машины. Три варианта, от простого к правильному:

  • MIDI-кабель через любой USB-MIDI-интерфейс. Скучно, зато работает без единой настройки и не зависит от сети.
  • Сетевой MIDI. На macOS он встроен (MIDI Network Session в том же Audio MIDI Setup), на Windows нужен сторонний rtpMIDI. По той же сети, что и Art-Net, — отдельного провода не надо.
  • Мост из Ableton Link, если источник умеет только его: Link ведёт программу-мост, а мост отдаёт MIDI Clock. Обычно эту роль играет уже стоящий на машине DAW.

Ableton Link: скажем прямо

Мы его не поддерживаем. Причина не в сложности: библиотека Link распространяется по двойной лицензии — открытой GPL либо проприетарной по договору с Ableton, — и первый вариант несовместим с нашей. Плюс это нативный модуль под три платформы.

Практическая разница для вас: там, где диджей на своём ноутбуке гоняет Link по Wi-Fi, нам нужен мост в MIDI Clock. Одна лишняя программа в цепочке. Всё остальное — темп, следование, фаза — работает одинаково.

Диагностика: где обрывается цепочка

Смотрите на показание в настройках MIDI, оно делит проблему надвое.

Показания нет. До пульта не доходит ничего:

  1. Отдача клока не включена у источника (самое частое).
  2. Выбран не тот порт — виртуальных портов в системе обычно несколько.
  3. Порт занят другой программой. Windows отдаёт MIDI-порт монопольно: пока его держит DAW, второй программе он не достанется.

Показание есть, свет не в темп. Проверьте эффект: за темпом идут только те, у которых период задан в битах, а не в секундах. Это переключатель рядом с полем периода.

Темп вдвое больше или меньше. Клок всегда 24 тика на четверть, и врать тут нечему — а вот считать источник может в другой доле. Это не чинится настройкой: поставьте у эффекта период в 2 или 0,5 бита.

Темп дрожит. Один потерянный тик мы переживаем (темп считается по медиане интервалов, а не по среднему — иначе одна потеря уводила бы его на пять процентов). Систематическое дрожание лечится только со стороны источника: загруженный процессор и цепочка USB-хабов дают именно его.

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

Фаза: почему свет в темп, но не в долю

Темп и доля — разные вещи. Из потока тиков известен темп, а вот где именно «раз», говорит только сообщение Start, которое источник шлёт при запуске с начала.

Поэтому: подключились посреди трека — получите верный темп, но фазу пульт не угадает. Запустите трек с начала (или нажмите стоп-старт у источника), и эффекты с периодом в битах встанут на начало доли.

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

Что проверить на площадке

  • Выдерните провод и посмотрите. Показание погаснет через пару секунд, а темп останется последним — свет не встанет и не поедет. Это намеренно: посреди номера лучше ошибиться на пару процентов, чем замереть.
  • Проверьте на реальном треке, а не на метрономе. Метроном ровный, а живой сет — нет; именно на переходах видно, успевает ли источник.
  • Решите заранее, что ведёт. Если темп ведёт клок, поле BPM заблокировано — это не должно стать открытием за минуту до начала.

Читайте также