← Блог

MIDI-контроллер для OBS: переключаю сцены пэдами

Сережа Рис · 11 January 2026

midiobsстриминг

У меня лежал Arturia MiniLab 3. Использовал для музыки.

Подумал — почему бы не переключать им сцены в OBS?

Два часа отладки. Проблема оказалась в одном параметре.

Что нужно

Любой MIDI-контроллер с пэдами или кнопками. MiniLab 3 подошёл идеально — 8 пэдов, каждый на свою сцену.

Плагин obs-midi-mg. Работает на Mac, Windows, Linux. Версия 3.1.1 — последняя на январь 2026.

curl -LO "https://github.com/nhielost/obs-midi-mg/releases/download/3.1.1/obs-midi-mg-3.1.1-macos-universal.pkg"
open obs-midi-mg-*.pkg

После установки: OBS → Tools → obs-midi-mg. Выбираешь устройство, жмёшь Connect.

Проблема с velocity

Создал биндинг. Нажал Listen, ударил по пэду. Плагин записал параметры. Сохранил. Нажимаю пэд — ничего.

Открыл MIDI Monitor. Пэды отправляют Note On с разной velocity. Каждый удар — новое значение: 21, 8, 45, 67. Зависит от силы нажатия.

А плагин записал конкретное значение. Velocity 21 — только velocity 21 и сработает. Ударил чуть сильнее — уже 25, биндинг молчит.

Velocity по умолчанию фиксированная obs-midi-mg записывает точное значение velocity при Listen. Пэды с чувствительностью к силе удара будут работать нестабильно.

Решение: режим Ignore

Дважды кликаешь на слово «Velocity» в настройках биндинга. Значение меняется на прочерк. Теперь плагин игнорирует velocity — срабатывает при любом значении.

В конфиге это выглядит как "velocity": {"state": 2, ...}. State 0 — фиксированное значение, state 2 — игнорировать.

Конфиг программно

Настраивать через UI долго. Каждый пэд — отдельный биндинг. Можно редактировать JSON напрямую.

Конфиг лежит тут:

~/Library/Application Support/obs-studio/plugin_config/obs-midi-mg/obs-midi-mg-config.json

Сначала нужны UUID сцен:

cat ~/Library/Application\ Support/obs-studio/basic/scenes/*.json | \
python3 -c "import sys,json; d=json.load(sys.stdin); \
[print(f'{s[\"name\"]}: {s[\"uuid\"]}') for s in d.get('sources',[]) \
if s.get('versioned_id')=='scene']"

Структура биндинга:

{
  "name": "Pad 1 → Desktop",
  "enabled": true,
  "type": 0,
  "messages": [{
    "device": "Minilab3 MIDI",
    "channel": {"state": 0, "value": 10},
    "note": {"state": 0, "value": 36},
    "velocity": {"state": 2, "index": 0, "min": 0, "max": 127}
  }],
  "actions": [{
    "id": 4353,
    "scene": {"state": 0, "value": "UUID-СЦЕНЫ"}
  }]
}

Channel 10 — стандарт для пэдов MiniLab. Note 36 — первый пэд. Каждый следующий +1.

MiniLab 3: режимы

У MiniLab три режима работы. Переключение: Shift + пэд 1/2/3.

Комбинация Режим Для чего
Shift + Pad 1 Arturia Analog Lab
Shift + Pad 2 User OBS, кастомные маппинги
Shift + Pad 3 DAW Ableton, Logic

Для OBS нужен User mode. В DAW mode пэды отправляют другие сообщения.

Автоматизация через Claude Code

Добавлять сцены вручную — рутина. Попросил Claude Code сделать это за меня.

Агент читает конфиг, находит UUID новой сцены, добавляет биндинг с правильными параметрами. Одна команда — готово.

claude: "добавь pad 3 на сцену iphone"
→ читает scenes/*.json, находит UUID
→ добавляет биндинг в конфиг
→ перезапусти OBS

Документацию по формату сохранил в ~/.claude/rules/obs-midi.md. Теперь агент знает структуру и может редактировать конфиг.

Итого

Работает. Pad 1 — десктоп. Pad 2 — камера. Pad 3 — телефон. Переключаюсь без мыши.

Главные грабли:

Источники

Подписаться на обновления — @sereja_tech