Т.к. я занимаюсь музыкой, есть у меня такой девайс Novation Remote Zero SL: (девайс)
Отличная штуковина, которая позволяет контроллировать практически любой VST-инструмент по MIDI и через собственный интерфейс. В распоряжении: 32 кнопки + 8 падов, 16 крутилок (knobs), 8 ползунков. Но главное преимущество, что у него есть два здоровых экрана, где высвечиваются функции назначенные контроллерам. Появилась идея прикрутить его к симу. Погуглил, полазил по форумам, и вобщем у меня получилось!
Настроил ползунки для управления двигателями, тормозами, спойлерами, закрылками. Ручки вместо педалей, а также настроек автопилота, кнопки назначил на все функции которые могут понадобиться во время полета. Теперь не надо сворачивать руки в узел, пытаясь одновременно держать джойстик и крутить мышкой. Более того, провожу полеты, не касаясь клавиатуры и мыши вообще.
Что мне понадобилось: эмулятор джойстика PPJoy, программа конвертации MIDI в сигналы джойстика — GlovePIE. После этого, большинство функций могут быть назначены напрямую на оси и клавиши в FS. Для всего остального (например в некоторых панелях некоторые вещи невозможно сделать никак иначе кроме кликов мышью) я сделал программку собственной разработки в Visual Basic, чтобы эмулировать клики мышкой и нажатия на клавиши внутри FS через FSUIPC.
Таким образом подсоединить в симу можно практически любое MIDI-устройство!
На этом откланяюсь. Если кому интересно, расскажу во всех подробностях.
Сообщение отредактировал xdye: 21 Декабрь 2010 — 04:13
INeoN (26 Апрель 2010 — 16:24) писал:
Так пульт-то для музыки приобретался, а не для сима.
Этот пост не рекомендация пульта, он о возможности подсоединить некое МИДИ устройство к FS
flugzug (26 Апрель 2010 — 19:05) писал:
кстати Сайтеки да и другие наверное джойстики можно использовать для написания музыки
например в Fruty Loops трансгейты крутить.
Угу, помню на форуме mixgalaxy кто-то предлагал рулём скретчить в FL.
кстати Сайтеки да и другие наверное джойстики можно использовать для написания музыки
например в Fruty Loops трансгейты крутить.
flugzug (26 Апрель 2010 — 19:05) писал:
кстати Сайтеки да и другие наверное джойстики можно использовать для написания музыки
например в Fruty Loops трансгейты крутить.
Да, через GlovePIE можно конвертировать сигнал от любого устройства в MIDI туда-обратно и использовать в т.ч. во фрути лупс
Теперь подробнее, что и как. Действовал методом проб и ошибок.
Сначала я поставил эмулятор PPJoy. Эта программа создает виртуальные джойстики в системе. Для Novation Remote Zero требуется эмуляция как минимум двух, т.к. лимит осей на одном джойстике — не больше 8ми, а тут их целых 24. С кнопками проще. Их может быть очень много, кажется 32 или 64 на одном джое. Но в итоге я сделал эмуляцию аж сразу трех, чтобы не заблудиться в номерах кнопок.
на одном создал 8 осей для ползунков + 16 кнопок (на фото в правой части контроллера)
на втором — оси для 8-ми верхних вращающихся ручек и 8-ми кнопок над ними (в левой части)
на третьем — оси для 8-ми нижних ручек и 8-ми кнопок над ними (опять же — слева)
Далее скачал программу GlovePIE.
Эта программа конвертирует MIDI-сигналы в сигналы джойстика. Для ее работы надо писать скрипт чем-то похожий на VB. Выглядит он примерно так:
PPJoy1.Analog0 = MapRange(midi5.cc1, 0,1, -1,1)
PPJoy1.Digital0 = MapRange(midi5.cc11, 0,1, 0,1)
и т.д. copy-paste для всех осей и кнопок…
где:
PPJoy<x> — номер эмулиремого джойстика из PPJoy
Analog<x> — номер оси на нем
Digital<x> — номер кнопки
MapRange() — функция преобразования
midi<x> — номер миди устройства (у меня их несколько, чтобы узнать номер моего устройства в системе пришлось действовать наугад)
cc<x> — уникальный номер контроллера на MIDI-устройстве. Те, кто использует MIDI в музыке должен знать, что такое CC.
цифры в скобках после запятой — порядок конвертации значений. Для осей от -1 до 1. Для кнопок 0 и 1 соответственно, т.к. промежуточных значений у них быть не может — либо нажата, либо нет.
у GlovePIE есть графический интерфейс, но почему то отказался автоматически мапить миди-сигналы, так что писать код пришлось вручную. MIDI-сигналы могут принимать значение только от 0 до 127, когда как у осей джойстика спектр от 0 до 35999. Об этом преобразовании заботится GlovePIE.
При помощи штатной программы от Novation Remote Zero Editor создал template для сима, где прописал значение и CC-номер каждой ручки и кнопки, их индикацию на встроенном экране, после чего залил все это на устройство. На этом этапе нужно решить, за что какая ручка отвечает. Например у меня 2 ползунка — РУДы двигателей, еще 2 — дял реверса, следующие 2 — тормоза основных стоек, левой и правой, оставшиеся 2 — управляют спойлерами и закрылками. одна из ручек управляет колесами при рулении, другие 3 — триммированием. Кнопки назначены вообще для всего что можно — наружное освещение, парковочный тормоз, запуск двигателей и т.д.
Далее с включенным GlovePIE запустил MSFS и в нем назначил все настроенные оси и кнопки таким же образом как назначаются оси на обычном джое. Этого достаточно для полетов на дефолтных самолетах и простеньких панелях.
Для платников / сложных панелей, как например Pro-Tu и др. некоторые оси и кнопки отказыаются работать корректно и тут пришлось уже писать свою программу на VB6, которая перехватывает MIDI-сигнал и отправляет его в FS через FSUIPC. Соотвественно эти кнопки предварительно необходимо отключить от GlovePIE (удалением строки в скрипте) и снимать ее назначение в FS. Какие-то переменные можно отправить прямо в сим без проблем, а для некоторых функций пришлось заморочиться и эмулировать нажатие на клавишу / клик мышкой. Все это происходит за миллисекунды и не отвлекает от полета. Симулятору-то все равно, кем был повернут тумблер на панели, человеком или программой. В данный момент у меня написано таких преобразователя два — для вилковского Airbus и ERJ v2. Но в целом за пару часов его можно настроить под любую панель.
Вся эта на первый взгляд сумасбродная задача на самом деле представляла собой довольно интересное упражнение для смекалки
Справиться с ней можно за пару вечеров. И теперь я с уверенностью могу заявить что к симу можно подключить любое MIDI-устрйоство, в т.ч. обычную MIDI-клавиатуру. Особенно если вы знаете CC-коды всех ручек и клавиш или данное устройство позволяет произвольно их менять. Идеальные кандидаты для этого: M-Audio USB Control Surface, серия Novation SL, микро- и макроконтроллеры от Korg и Akai.
Ну и главный вопрос: зачем это все нужно? Ответ: мы получаем простейшую альтернативу домашнему кокпиту и свободные от мыши и клавиатуры руки во время пилотирования. Если кто-то желает также заморочиться, готов предоставить дальнейшие подробности, советы и поделиться кодом.
Спасибо за внимание!
Сообщение отредактировал xdye: 27 Апрель 2010 — 04:32
Сам уже давно (лет так пять) являюсь обладателем подобного MIDI девайса – Behringer B-Control Rotary BCR-2000, и всегда хотел подружить его с симом, однако это не удавалось, и я юзал его только для музыки. К счастью, наткнулся на эту тему и теперь хочу поделиться своими результатами, вдруг кому будет интересно.
В общем, мне удалось настроить его на работу только с сервисным прибором Ту-154М.
Вот скрипт для GlovePIE:
Итого задействовано 11 кнопок + 1 вращающийся энкодер (aka «крутилка»).
Команда debug нужна, чтобы удостовериться, что после нажатия кнопки Run в GlovePIE скрипт действительно запустился. А то бывает что режим Run включен а сообщения в сим не идут, а здесь я сразу проворачиваю крутилку cc104 и смотрю, изменяются ли параметры в появившемся окошке. Очень часто скрипт запускается только со второго раза – наверно баг программы.
Также мне понадобилось инвертировать MapRange для аналоговой оси с помощью минуса.
Далее, в сервисном приборе Туполя, всё это дело настраивается как на обычном джое.
Очень важно установить кнопки на миди-девайсе в режим Toggle Off (см. в мануал к аппарату) перед назначением их на кнопки захвата Курса и Глиссады, иначе логика панели (а именно захват глиссады) будет воспринимать нажатую кнопку как непрерывно посылаемый поток команд нажатия, и крафт спикирует (попробуйте мышкой нажать и не отпускать на панели кнопку Захват Глиссады – поймете о чем я).
Правда я не смог приладить девайс к иномаркам (level-d 767 и pmdg 737), а было бы весьма кстати крутилкой управлять Heading’ом и скоростями автопилота на MCP.
Также было бы неплохо научить управлять частотами радио на Цесснах всяких.
К сожалению, в программировании не силён, поэтому обращаюсь к xdye — может вы подскажите, как это сделать?
Сообщение отредактировал Seagull: 30 Август 2011 — 11:12
Сообщение отредактировал Seagull: 31 Август 2011 — 16:02