Секреты миди роутинга. Behringer BCD2000 и Ableton
Наверняка многие из тех, кто увлекается созданием электронной музыки, используют в своей работе миди-клавиатуры, миди-контроллеры и прочие девайсы, которые могут работать, используя протокол миди. Некоторые из них хорошо поддерживаются производителем софта, другие хуже. Но все что нам нужно – это то, чтобы устройство поддерживало передачу (и прием) миди-сообщений. А дальше мы можем творить всевозможные «чудеса».
Зачем это нужно
В этой статье я буду рассказывать о примере использования устройства Behringer BCD-2000 в Ableton. Странная связка? Ничуть! Да, это контроллер для диджеев и, соответственно, диджейских программ. И если с Traktor или VirtualDJ проблем не возникает, то, допустим, в Ableton настроить его для комфортной работы немного сложнее.
Рисунок 1. Миди-контроллер Behringer BCD2000.
По большому счету, этот метод можно использовать для любых миди-устройств. Соответственно, использовать его в любых программах, поддерживающих миди.
Виртуальные миди-порты и миди-трансляторы
Итак, какую задачу перед собой мы ставим? Наша задача – заставить миди-устройство посылать необходимые нам миди-сообщения в программу (в отдельных случаях принимать миди сообщения с программы в устройство). Первая проблема с которой мы сталкиваемся – это отсутствие необходимых миди-портов. Конечно, каждое устройство создает свои собственные миди-порты в системе, но это немного не то, что нам нужно. Поэтому первый шаг – создать виртуальное миди-устройство (миди-порт), с помощью которого мы и будем производить необходимые манипуляции. Я остановился на программе Midi-Yoke (http://cjcity.ru/soft/101-8.html). Его работоспособность проверена в windows xp и windows 7 x86. Итак, устанавливаем его. При удачной установке в Ableton (либо в другой программе) должны появиться виртуальные миди-порты (рис. 2).
Рисунок 2. Виртуальные порты Midi-Yoke установлены в системе.
Но это всего лишь начало. Теперь наша задача – направить миди сообщения с нашего устройства в виртуальный миди-порт. Для этого используются специальные программы – миди-трансляторы. Я предлагаю программу Midi-OX (http://cjcity.ru/soft/100-8.html). Устанавливаем ее и начинаем экспериментировать.
Трансляция команд с Behringer BCD2000 в виртуальные порты
Для начала, устанавливаем родные драйверы для Behringer BCD2000. У нас появляется иконка в трее для настроек устройства. Я пользуюсь режимом Advanced (рис. 3).
Рисунок 3. Режим Advanced в Behringer BCD2000.
Теперь запускаем Midi-OX и начинается самое интересное. Открываем окно Select midi devices to open (значок синего штекера на панели управления). Видим доступные входные (Midi inputs) и выходные (Midi outputs) порты. Дважды кликнув в окне Midi inputs на BCD2000 мы добавляем его в список Port mapping (рис. 4).
Рисунок 4. Добавление BCD2000 в список портов.
Нажимаем ОК и далее переходим во вкладку Port routings (на панели инструментов белый значок с цифрами 66). Если мы все сделали правильно, то мы увидим что к порту Midi-Yoke-2 (это в моем случае, может быть и 1, и другая цифра) подключены два устройства – первое BCD200 и второе – Midi-OX (рис. 5).
Рисунок 5. Карта роутинга портов.
Следующим этапом будет непосредственно маппинг (или назначение) миди-сообщений.
Маппинг команд
Вот мы и добрались до основного момента – маппинга сообщений. Вы спросите: зачем это вообще нужно, ведь можно просто выбрать в Ableton миди-устройство BCD2000 и не заморачиваться с этими портами? Во-первых, касательно BCD2000. Если вы пробовали таким образом работать в Ableton, то наверняка заметили, что есть небольшой нюанс с кнопками. А именно, включение-выключение кнопки на BCD2000 представляет собой сообщение Note On либо Note off. А Ableton требует, чтобы одно нажатие было одновременно Note on и Note off. Для того, чтобы понять, просто попробуйте активировать стандартный порт BCD2000 в Ableton (рис. 6) и назначьте на любую кнопку с подсветкой какую-либо кнопку в Ableton.
Рисунок 6. Выбор родного миди-порта BCD2000.
В Ableton нажмите Ctrl+M, вы переключитесь в режим миди-маппинга. Теперь нажмите на любую кнопку (к примеру, Speaker On) в Ableton и затем нажмите любую кнопку с подсветкой на BCD2000. Если все правильно, на кнопке появится значок с номером миди-сообщения, которое назначено на эту кнопку, а во вкладке Midi mappings появится новая запись (рис. 7).
Рисунок 7. Маппинг кнопки Speaker On-2 на одну из кнопок BCD2000.
Как видим, кнопка Speaker On замапилась на кнопку Note A#-1 на нашем BCD2000. Вроде бы все хорошо. Но попробуйте ее понажимать и вы поймете, что для включения-выключения кнопки на самом BCD2000 придется нажимать ее 2 раза, вместо одного! Соответсвенно, гореть лампочка будет некорректно. Чтоб она горела корректно, я предлагаю замапить на кнопку изменение некого виртуального контроллера. Вот для этого мы и проводим манипуляции с виртуальными портами.
Во-вторых, этот метод может быть полезным в других ситуациях, когда необходимо назначать некоторые параметры вашего миди контроллера каким-то определенным образом, не предусмотренным разработчиком самого контроллера.
Вернемся непосредственно к маппингу. Для того, чтобы начать назначать кнопки и другие параметры нам нужно кликнуть на значок на панели с двумя нотами (Midi data mapping transforms), появится окно Translation map. Пока оно пусто. Но начнем его заполнять сами! Нажимаем кнопку Insert и попадаем непосредственно в окно назначения миди-сообщений (Define mapping) (рис. 8).
Рисунок 8. Define mapping – наша основная цель.
В верхней части этого окна мы выбираем кнопку или контроллер, который мы хотим изменить, в нижней части – то, что будет на выходе после изменения. Непосредственно, касаясь нашего случая с загоранием лампочки на кнопке. Как я уже упоминал выше, для этого нужно замапить кнопку на некий контроллер. Пускай это будет кнопка Analog input A на BCD2000. Есть одно неудобство – для определения номера миди-сообщения придется залазить в инструкцию и искать этот номер в приложении. В нашем случае этот номер – 35. Выставляем в When input matches в чекбоксе Event type значение Note on. Это значит, что миди-сообщения будут фильтроваться при нажатии кнопки (команда Note on). Min и Max выставляем ту кнопку, которую хотим замапить (в нашем случае это Analog input A, номер 35). В секции Set output to выставляем Event type – Ctrl, а в поле Value 1 выставляем единицы. Это будет означать, что кнопка будет мапиться на контроллер под номером 1 (это параметр Modulation). В поле Value 2 выставим значения Min=0, Max=127. Это будет означать, что нажатие кнопки под номером 35 будет вызывать «скачки» контроллера Modulation от 0 до 127. Сверяемся с рисунком 9.
Рисунок 9. Маппинг одной из кнопок на контроллер.
Вот такова основная идея маппинга! Нажимаем ОК. В списке Translation map появляется новая запись. Если хотим добавить еще один маппинг для другой кнопки, делаем те же операции (начиная с Insert). После того, как маппинг сделан, не забываем поставить галочку на Turn map on (after OK) (рис. 10) и нажимаем OK. Кроме того, можно сохранять карты маппинга и загружать их (Save и Load, соответственно).
Рисунок 10. Закрываем окно и включаем маппинг.
Далее мы можем проверить, правильно ли работает маппинг. Для этого открываем окно Main output monitor (на панели инструментов это черный квадратик с иней полоской сверху). Здесь можно наблюдать, как срабатывают команды на выходе Midi-OX, в нашем случае, на порту Midi-Yoke2. Теперь, открыв окно и нажимая кнопку Analog output A на BCD2000, смотрим в какую команду она трансформировалась (рис. 11).
Рисунок 11. Мониторинг выходного миди-сигнала.
Нажимаем несколько раз кнопку Analog output A и видим на мониторе, что на выходе у нас не сообщение в виде ноты (под номером 35), а изменение миди-параметра Modulation (СС1). То есть, мы все сделали верно. Осталось перейти в Ableton и проверить, все правильно ли там.
Назад в Ableton
Переходим в Ableton, далее в Preferences и Midi sync и смотрим, чтобы были включены необходимые нам порты (на рисунке 2 включены сразу 3 порта, нам достаточно оставить только Midi-Yoke2). Обращаю внимание на то, что родное устройство BCD2000 необходимо отключить! Теперь пробуем замапить снова нашу кнопку 2, к примеру. Если забыли как это делать, читаем выше, вначале раздела «Маппинг команд». Если все сделали правильно, то во вкладке Midi mappings у нас должна появиться такая запись как на рисунке 12.
Рисунок 12. Маппинг сделан правильно.
Как видим, в отличие от ситуации на рисунке 7, у нас теперь сообщение с кнопки превратилось в изменение контроллера CC1 (Modulation). Теперь можно смело нажимать кнопку и лампочка на BCD2000 будет загораться синхронно с кнопками в Ableton, что значительно улучшает работу с ним.
Итог
В общем, как видим, миди-трансляция и миди-маппинг– довольно удобные методы для совместной работы различных миди устройств. К слову, способ указанный выше хорошо работает, когда нужно замапить некоторые кнопки в Ableton для включения с миди-клавиатуры. Не приходится нажимать их по два раза. Кроме того, можно подключать совершенно разные миди устройства и создавать для них свои собственные наборы маппинга. Единственный минус – это то, что необходимо каждый раз запускать Midi-OX как отдельное приложение.
Farmatique, 05.03.2013
CJCity.ru
Обзор DJ-контроллеров для начинающих (упоминается Behringer BCD-2000)
Dj Суровый - Статья суровая.