Можно ли сигнал с MIDI преобразовать в сигнал нажатия клавиши с клавиатуры (linux)?
С выпуском под линукс игры Before The Echo (Sequence) возникла такая мысль. Суть в том, что это ритм-гейм, и, как мне подумалось, в ритм-гейм играть гораздо интересней, если подключить какой-то MIDI-девайс. Не знаю какими средствами этого можно достичь. Но основная идея состоит в том, чтобы X-сервер (ну и игра, соответственно) воспринимал сигнал с MIDI (соответствующую ноту, например) как нажатие определённой клавиши на клавиатуре. Может подскажете какие-то решения? Может уже что-то на этот счёт придумано?
Технически абсолютно реализуемо, но вот занимался ли кто нибудь конкретным воплощением в жизнь. непонятно. Я недавно взял недорогой "детский" синтезатор, он умеет быть midi-клавиатурой. Подключается по USB. Подключить и поставить дрова - легко. Но сделать чтобы миди-клава "набирала" какие-то символы обычной клавиатуры, и чтобы была возможность переназначения этих клавиш - ....... надо экспериментировать, смотреть, разбираться...... Сами игра по дефолту не поддерживает midi-устройства?
Нет. поддержки MIDI я там не обнаруживал. Иначе тогда всё очень легко реализовывалось бы. И вопроса не стояло. Но мне кажется в linux-based OS это сделать даже проще.
Имхо без разницы в какой базед-ОС это делать. Скорее всего по любому, если никакой готовой реализации не найдется - придется один фиг писать собственный драйвер, с переназначением соответствия клавиш midi-устройства клавишам клавиатуры. Можно попробовать заказать за 1000 рублей на каком нибудь фриланс сайте.....
Сергей: Да как говорится Ар Велкам =) Не забудьте только потом созданное фрилансерским трудом произведение выгрузить куда нибудь на просторы интернета, такиим образом Вы сделаете свой вклад в "увеличение полезности Интернета" и его чуть меньше станут называть помойкой с одной только порнухой и вирусами =)
Пару месяцев назад реализовывал похожее или соседствующее устройство - миди контроллер на Ардуинке.
Были подключены кнопки и крутилки - ардуинка считывала их показания, кодировала в миди протокол и слала в юсб порт.
На компе стояла прога которая из порта ардуинки транслировала сигналы в виртуальный миди порт.
А дальше музыкальный софт работающий в мидяшными железками.
Делалось для знакомого и развлечения, поэтому ардуинка и работала через программный костыль, а не как юсб-миди.
По вашему заданию, только один вопрос: зачем на компьютере с подключенной клавиатурой городить огород - "сигнал с MIDI как нажатие клавиши на клавиатуре", не проще ли где нужно нажимать клавишу на клавиатуре а где нужно играть на миди клавиатуре?
Есть электронные барабаны, по сути "Миди"-клавиатура, а есть игра, которая естественно о таких девайсах попросту не знает. "Огород" - лишь моя задумка, как играть в эту игру (rhytm-game).
Под такую игру проще сделать спец контроллер, клавиатуру. Чем городить миди клавиатура как обычная клавиатура.
К примеру на ардуно мирко, она спокойно работает как USB-HID. Тобишь как клавиатура.
Цепляете к ней нужное количество кнопок, назначаете как "быстрые" кнопки в игре и берёте под это всё самый удобный корпус. Работы на один - два вечера.
Второй вариант, само городите програмный огород, который из миди протокола будет выдёргивать данные только о нажатии выбраных кнопок и предавать это как нажатия клавиатуры.
По времени задача на столько - же
Единственное, что я никогда не сталкивался со снятием данных с миди устройства, а скорее всего с usb-midi и чем это удобней делать - не имею ни малейшего понятия.
И если не работали с usb из своей программы - задача может легко улететь в мусорку из-за зря потраченого времени
Ещё раз поясню - у меня электронная барабанная установка, и хочется "играть на ней". Поэтому для общего случая привел пример USB-клавиатуры. Ведь через MIDI-протокол суть одна: "ноты" и "ноты".
А вот отдельное устройство типа клавиатуры как раз таки в данном случае интереса не представляет никакого. И на обычной клавиатуре можно поиграть.
Сергей, разве я говорил, что это невозможно, или что это идиотизм - нет. Такой способ рассмотрел как второй вариант.
Второй, относительно сделать для себя.
Лично себе, для игрухи, я бы сделал контроллер.
Программист сделал бы программный лупер-ретранслятор.
И второй аспект, если делать не самому, а нанимать для реализации человека на удалёнку - сделать на ардуинке клавиатуру проще и дешевле, чем выяснять коды которые дает миди-барабанная установка и потом транслировать их в сигналы обычной клавиатуры.
Писать патч, или плагин к игре - будет ешё дороже