Rockband Drums (Harmonix)

De Wikijoan
Dreceres ràpides: navegació, cerca

Contingut

Jo tinc el Wii kit, no el XBox o el PS3 kits. I tinc el USB, no el wireless ni el wireless-usb. El dispostiu es reconeix automàticament:

$ lsusb 
Bus 002 Device 009: ID 1bad:0005 Harmonix Music 
Bus 002 Device 003: ID 045e:0084 Microsoft Corp. Basic Optical Mouse
Bus 002 Device 002: ID 8087:0020  
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0c45:6406 Microdia 
Bus 001 Device 002: ID 8087:0020  
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
$ sudo lsusb -v -s 002:009

Bus 002 Device 009: ID 1bad:0005 Harmonix Music 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x1bad Harmonix Music
  idProduct          0x0005 
  bcdDevice           10.00
  iManufacturer           1 Licensed by Nintendo of America 
  iProduct                2 Harmonix Drum Controller for Nintendo Wii
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           41
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 No Subclass
      bInterfaceProtocol      0 None
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     137
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval              10
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval              10
Device Status:     0x0000
  (Bus Powered)

Quan connecto el dispositiu:

$ dmesg
...
[   17.729503] Synaptics Touchpad, model: 1, fw: 7.2, id: 0x1e0b1, caps: 0xd04731/0xa40000
[   17.865698] input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio1/input/input13
[   18.169056] ppdev: user-space parallel port driver
[   27.519145] hda-intel: IRQ timing workaround is activated for card #1. Suggest a bigger bdl_pos_adj.
[   27.622958] eth1: no IPv6 routers present
[   34.728852] usb 2-1.1: new full speed USB device using ehci_hcd and address 4
[   34.811826] input: Licensed by Nintendo of America  Harmonix Drum Controller for Nintendo Wii as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0/input/input14
[   34.812029] generic-usb 0003:1BAD:0005.0002: input,hidraw1: USB HID v1.11 Gamepad [Licensed by Nintendo of America  Harmonix Drum Controller for Nintendo Wii] on usb-0000:00:1d.0-1.1/input0

He trobat dues solucions per afegir el dispositiu RockBand (Harmonix) Drums al mòdul xpad del kernel de Linux:

També:

El codi rbd2midi.cpp està malament en els include, i per tal que compili correctament he de posar:

#include <alsa/asoundlib.h>
#include "stdio.h"
#include <stdlib.h>
#include <linux/joystick.h>

Ara sí:

$ g++ -o rbd2midi_test rbd2midi.cpp -lasound
$ ./rbd2midi_test 
Opened "Rock Band Drums" [129:0]

També:

el codi usbpad.cpp funciona correctament, i puc veure com responen els botons del joystick, els botons normals, els pad (que representen un sol botó?), i el pedal. Per tant, és una solució aproximada.

Una altra aproximació:

This userland program uses libusb to gain access to the velocity sensitive data in the rockband 3 wireless usb prodrum controller (with cymbals) and Guitar Hero drumkit and use it as an ALSA MIDI controller. It has a low latency setup so that it can give a fairly good drumming experience. Nota: jo no tinc el wireless usb, sinó el USB.

Descarrego rbdrum2midi-0.1.tar.gz.

El projecte compila bé, però no troba el dispositiu. De fet, aquest projecte està fet per si tens cymbals (RockBand 3), i jo no en tinc (el meu deu ser RockBand 2), i per tant m'he de mirar el projecte en el que aquest s'inspira.

Descarrego i compilo rockband2-drum-0.1a.tgz.

$ make
$ cat /proc/usb/devices
$ ls -l /dev/usbdev*
$ ./rbdrum2 &
$ sleep 2
$ timidity -iA -B2,8 -Os -EFreverb=0 &
$ sleep 2
$ aconnect -lio
$ aconnect 128:0 129:0

libusb couldn't open usb device permission denied

Per evitar problemes de permisos amb el dispositiu USB, creem el fitxer /etc/udev/rules.d/55-rockband-usb.rules:

 SYSFS{idProduct}=="0005",SYSFS{idVendor}=="1bad",MODE="666",OWNER="joan",GROUP="joan"

ja no cal executar-lo com a sudo

Projecte. Versió final

S'ha fet dues versions del projecte: una per a ALSA i una per a JACK. Per arrencar el projecte el millor és utilitzar el script, que arrenca JACK (per a la versió de JACK), arrenca Hydrogen amb la cançó que ja carrega les llibreries (ALSA o JACK), arrenca el meu client arbdrum o jrbdrum, i fa les connexions.


creat per Joan Quintana Compte, octubre 2012

Eines de l'usuari
Espais de noms
Variants
Accions
Navegació
Institut Jaume Balmes
Màquines recreatives
CNC
Informàtica musical
joanillo.org Planet
Eines