Аудиоанализ · Компьютерное зрение · OSC · MA2 · Resolume
FollowSpot вручную — надо вести прожектор за движущимся человеком
Строб, цвет, эффекты — всё должно биться в такт, а BPM меняется
Десятки сцен за выступление, каждая со своим светом
Диджей вставил флешку — не знаешь, что играет, не можешь подготовиться
Камера → распознавание лиц, поз, движения. FollowSpot автоматически.
BPM, kick, snare, спектр в реальном времени. Свет бьётся в такт.
Нейросеть решает: кого подсветить, когда сменить сцену, какой эффект.
Анализ музыки в реальном времени. Всё локально, без интернета.
| Параметр | Задержка | Назначение |
|---|---|---|
| BPM | ~2-4 такта | Синхронизация света |
| Kick (50-100 Hz) | <10 ms | Бас-импульсы, стробы |
| Snare (150-250 Hz) | <10 ms | Акценты, вспышки |
| Hi-hat (5k-10k Hz) | <10 ms | Мелкие эффекты |
| RMS Energy | <5 ms | Общая яркость |
| Onset (дропы) | <20 ms | Переключение сцен |
При интернете — AudD/ACRCloud. Без него — анализ BPM и спектра, достаточно для синхронного света.
Камера → OpenCV + MediaPipe. Полный офлайн.
Находит лица в кадре. Координаты → FollowSpot.
Плечи, руки, корпус. Точное наведение луча.
Куда движется артист — свет следует за ним.
{
"faces": [{ "x": 0.45, "y": 0.32, "confidence": 0.95 }],
"pose": { "shoulder_x": 0.44, "shoulder_y": 0.28 },
"motion": { "intensity": 0.7, "direction": "left" },
"crowd": { "density": 0.3 }
}
Ядро b4:Nap. Аудио + Видео → OSC.
Свет строго по BPM. Kick → бас-вспышка. Onset → смена сцены.
Лицо/тело в кадре → прожектор за ним. Руки оператора свободны.
Активность толпы → ярче/темнее, свет в активную зону.
Намеренные глюки: случайные цвета, сбитый ритм, неожиданные комбинации.
Все устройства говорят на одном протоколе
| Получатель | Порт |
|---|---|
| MA2 / MA onPC | 8000 |
| Resolume Arena | 7000 |
| TouchDesigner | 10000 |
/gma/cmd/assign Led_Strip At 75 /gma/cmd/go Seq 3 Cue 2 /gma/cmd/assign Beams At Color "Blue" /gma/cmd/assign Effect 1 / speed 128 /gma/cmd/assign Follow At Pan 45 Tilt 30
/composition/layers/1/video/position/play /composition/layers/1/clips/2/connect /composition/columns/3/connect /composition/tempo/bpm
Управление светом через MIDI — для LED-контроллеров, старых пультов и секвенсоров
| Функция | MIDI | Назначение |
|---|---|---|
| Kick Flash | Note On C4 | Бас-импульс света |
| Snare Accent | Note On D4 | Акцент по snare |
| Яркость | Note On + velocity | Громкость → яркость |
| Цвет | CC 20+n | Выбор цвета |
| Смена сцены | Note On G4 | Переключение сцены |
| Control Change | CC 0-127 | Любые параметры |
Сырые MIDI-байты по UDP → loopMIDI на целевой машине (Windows).
midi: host: 127.0.0.1 port: 8001 channel: 1 base_note: 60
Только анализ. Команды не шлются.
Синхронизация по BPM. Без камеры.
Полная автоматизация. Аудио + видео.
Случайные комбинации. Глюки как фича.
Минимум активности. Ждёт.
Любой фейдер на MA2 перекрывает OSC.
При потере связи MA2 в последнем состоянии. Никаких чёрных экранов.
Любой фейдер на MA2 перекрывает OSC. Оператор всегда главный.
Клавиша на MA2 отключает приём OSC. Мгновенно.
От входа аудио до OSC-команды ≤ 50 мс. Ниже порога восприятия.
| Фаза | Что делаем | Статус |
|---|---|---|
| P0 | Анализ BPM + OSC → MA2 | ⏳ Запланировано |
| P1 | Камера + распознавание лиц | ⏳ Запланировано |
| P2 | Web UI для мониторинга | ⏳ Запланировано |
| P3 | FollowSpot по артисту | ⏳ Запланировано |
| P4 | Интеграция Resolume | 💡 Идея |
| P4a | MIDI Engine | ✅ Добавлено |
| P5 | Глюк-режим | 💡 Идея |
| P6 | Show-файлы MA2 | 💡 Идея |
| P7 | Распознавание треков (AudD) | 💡 Идея |
Когда свет настраивается сам —
у оператора появляется время на кофе.