Как стать автором
Обновить

Играем на барабанах с помощью Hydrogen и Logitech Wii Drums.

Сегодня я наконец-то забрал с почты свой комплект барабанов для Wii от Logitech, заказанный в начале марта на Amazon.com. Но так как пока игры для Wii, поддерживающей барабаны, у меня нет, а играть хочется уже сейчас, я решил подключить барабаны к компьютеру под управлением Ubuntu Linux.

Итак, что нам потребуется

  • Bluetooth USB-донгл (не требуется, если у вас ноут с поддержкой Bluetooth)
  • WiiMote
  • Logitech Wireless Drums для Wii
  • Установленная и настроенная на Ваш вкус Ubuntu 10.04 Lucid Lynx


Подразумевается, что Ubuntu сама определила и настроила ваш BT-донгл (в моем случае было именно так). Рассмотрение клинических случев не входит в задачи этого топика.



image

Поддержка Wii в Ubuntu

Устанавливаем поддержку wii:
sudo apt-get install wmgui wminput

Далее пробуем загрузить uinput — драйвер ядра, требующийся для управления с помощью WiiMote.
sudo modprobe uinput
Если все нормально, пропишем его в /etc/modules, чтобы он загружался автоматически. Для этого в конец файла /etc/modules добавим строку, содержащую только одно слово: uinput.

Теперь нам нужен WmGUI. Запускаем его из меню, нажимаем Connect и сразу же нажимаем одновременно кнопки 1 и 2 на пульте WiiMote. WmGUI должен соединиться с WiiMote и начать отображать информацию о нажатиях на него.

Теперь подключаем WiiMote к барабанам, после чего заходим в меню WmGUI и выбираем там пункт Settings — Extension Data (барабаны Logitech определяются приставкой как Classic Controller). Постучите по барабанам — должны начать «нажиматься» кнопки в WmGUI.

Если все ОК, можно двигаться дальше.

Интеграция WiiMote и Hydrogen

Ставим Hydrogen:
sudo apt-get install hydrogen

Пока он ставится, вкратце объясню, каким образом мы заставим Hydrogen поддерживать WiiMote.
Дело в том, что Hydrogen, помимо всего прочего, позволяет воспроизводить звук инструментов из палитры по нажатию определенных хоткеев, чем мы и воспользуемся.
От драйвера WiiMote потребуется для каждого удара по барабану или тарелке эмулировать нажатие на некоторую клавишу клавиатуры. Для этого мы идем в папку /etc/cwwid/wminput/ и создаем в ней файл drums следующего содержания (из-под рута!):
#drums
#Green - Tom Mid
Classic.A = KEY_B
#Red - Snare Rock
Classic.B = KEY_C
#Blue - Tom Hi
Classic.X = KEY_N
#Yellow - Ride Rock
Classic.Y = KEY_W
#Orange - Crash
Classic.ZL = KEY_2
#Pedal - Kick
Classic.ZR = KEY_Z

Сохраняем файл.
Эти настройки затем легко можно будет изменить по своему вкусу — файл настройки тривиален и не нуждается в дополнительном описании.

Далее сделаем так, чтобы именно этот профиль загружался автоматически. В этом же каталоге видим ссылку default, которая ведет на один из предустановленных профилей (у меня она вела на acc_ptr). Нам нужно, чтобы она вела на созданный нами файл drums:

sudo rm default
sudo ln -s drums default


В целом все готово.

Проверка результата

Выходим из программы WmGUI, запускаем wminput (из-под рута: sudo wminput) и следуем коротким инструкциям (нужно будет нажать 1+2 на WiiMote). Как только появится надпись Ready — можно запускать Hydrogen и играть :)

Замечания и дополнения

При игре заметна некоторая задержка (что вполне ожидаемо). Некоторого улучшения можно добиться, поставив Jack и настроив Hydrogen на его использование. Кроме того, не всегда корректно обрабатываются быстрые одновременные удары по одному барабану. Думаю, это как-то связано с эмуляцией нажатия клавиш, но копать дальше я не стал, ибо я не барабанщик, а побаловаться можно и так.
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.