El otro día compré en el Cash Converter, por 18e, una batería Wii de segunda mano, con la idea de hacerla sonar en mi Ubuntu. Estas baterías salieron al mercado en 2007, hace ya cinco años. Evidentemente hay gente que ha llevado estas consolas al entorno Linux, y me he beneficiado del código que he encontrado por aquí y por allá. Sin embargo, el codi que he encontrado no era para mi modelo (también existen versiones para PS2, PS3 y X360), así que he tenido que averiguar los códigos que envía el drumset (con la dificultad que cuando tocas las dos baquetas a la vez, o las dos baquetas y el bombo, se envían otros códigos). No tenía experiencia previa en la programación de la librería libusb. Utilizando esta librería ha estado la única forma posible de detectar la fuerza con que golpeo la baqueta, y por tanto hacer un poco de control de volumen, aunque con poca resolución.
Para hacer sonar la batería se necesita generar mensajes MIDI y enviarlos a un sintetizador. He utilizado Hydrogen como sintetizador de sonidos de batería. He programado cuatro presets diferentes que se acceden con los botones de la consola (los típicos botones 1, 2, A y B de la Wii). Se han hecho dos versiones del código, una que utiliza ALSA de forma nativa, y otra para el servidor de audio JACK. Puedes descargarte el código del proyecto:
jrbdrum project