forked from rbdrum2midi/rbdrum2midi
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
263 lines (187 loc) · 9.76 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
Rockband Instrument Midi Driver
by Randommatt and ssj71
Version 0.7
Installation:
Requires libusb-1.0, libjack, and libasound2 dev packages to compile and runtime libraries to run
This project now uses cmake, so to install do:
mkdir build
cd build
cmake ..
sudo make install
or if you prefer to compile manually:
cd src
gcc *.c -o rbdrum2midi -lasound -lusb-1.0 -ljack
you will have to execute this locally (or copy the binary to /usr/bin) when using this method..
Execution:
either run the executable localy:
src/rbdrum2midi (you may have to run this as root if you do not have the correct usb permissions; see notes below)
or run from terminal:
rbdrum2midi
Tested Drumkits:
-PS3 Rockband pro drumkit
-PS3 Guitar Hero world tour kit
-XBox 360 Guitar Hero world tour kit
-PS3 Rockband 1 drumkit
-XBox 360 Rockband 1 drumkit
If your kit isn't listed theres a chance it will still work. If it is a rockband kit try the option '-rb1'.If it doesn't we will happily add support for your kit if you can build and run the commands:
lsusb
/rbdrumkit -dbg
Hit each drum a few times and copy and paste the output to a new issue in github https://github.com/rbdrum2midi/rbdrum2midi/issues
Other Tested Instruments:
-PS3 Rockband wireless guitar
-Xbox 360 Rockband wired guitar
-Xbox 360 Rockband3 wireless keyboard (-xbkey argument)
Usage:
connect rbdrumkit wireless dongle (PS3 works, Wii should, xbox probably won't),
start rbdrum2midi. This will create an ALSA midiport, start the jack audio server and Hydrogen (or your drum program of choice).
If you are using qjackctl, under the alsa tab of the connection window, connect "Game Drumkit Client" to Hydrogen. You may also need the a2j bridge.
run with the '-h' option to see the full useage.
the midi notes are mapped as follows
RB3 drumkit default midi mapping:
kick pedal 1: midi note 36
kick pedal 2: hihat mode (controlling yellow cymbal)
red pad : midi note 37
yellow pad: midi note 38
yellow Cymbal: midi note 41 when kick2 is down, 42 when it is up.
blue pad: midi note 39
blue Cymbal: midi note 43
green pad: midi note 40
green Cymbal: midi note 45
RB1 drumkit default midi mapping:
kick pedal : midi note 36
red pad : midi note 37
yellow pad: midi note 38
blue pad: midi note 39
green pad: midi note 40
Guitar Hero drumkit default midi mapping:
kick pedal : midi note 36
red pad : midi note 37
yellow Cymbal: midi note 41
blue pad: midi note 39
Orange Cymbal: midi note 43
green pad: midi note 40
This corresponds to the setup for the Hydrogen YamahaVintageKit (note that you can easily change the mapping to GM using the command line arguments).
Note that only the pro-drumkit and Guitar Hero drumkits have velocity information. This is a hardware limitation.
With defaults only rockband drumkits have a hihat pedal as other drumkits only have a single pedal.
However the single pedal on the other drumkits can become the hat pedal through the command line arguments.
Hihat mode changes the hihat drum (default yellow cymbal) midi note when the pedal is opened or closed
You can set the 2 midi values with args -hto and -htc as well as which drum and pedal control the hihat.
The pedal can also play a sample by assigning the hat pedal a midi note value (i.e. -htp bkb -bkb 44).i
Some samplers will play the appropriate hat sample depending on whether the hat pedal note has sent a note off.
To do this (disable the note switching) assign a 0 to the hat pedal (arg -htp 0) and assign the pedal
the note you wish (i.e. -bkb 44). This interface was concieved as the simplest while maintaining
flexibility for these different methods.
To fix usb permission problems create the file 90-drumkit.rules with the following line:
SUBSYSTEM=="usb", ATTR{idVendor}=="12ba", ATTR{idProduct}=="0210", GROUP="audio", MODE="0664"
SUBSYSTEM=="usb", ATTR{idVendor}=="12ba", ATTR{idProduct}=="0120", GROUP="audio", MODE="0664"
SUBSYSTEM=="usb", ATTR{idVendor}=="1bad", ATTR{idProduct}=="0003", GROUP="audio", MODE="0664"
SUBSYSTEM=="usb", ATTR{idVendor}=="1bad", ATTR{idProduct}=="0005", GROUP="audio", MODE="0664"
this will work if your linux distro has an "audio" group and your user is a member, otherwise substitute "audio" with "users".
Place this file in /etc/udev/rules.d/ and reload the udev deamon.
If you are using the JACK driver, it is important that you get these permissions right. Running the program as super will not allow you to see the JACK dbus daemon unless you ran JACK as super.
The original programs' copyrights, disclaimers and limitations still hold.
======OLD README CONTENT=======
(left for historical reasons)
Version 0.4
Complete code rewrite for tidyness and modularity, for RB1 kits the option is now -rb1 for both xbox and ps3.
for more usage instructions:
rbdrum2midi -h
Since Ubuntu 12.04 and other "newer distros" regular cmmi may not work so please try the following:
gcc main.c -o rbdrum2midi -lasound -lusb-1.0
then running the output program using
./rbdrum2midi
For addition information on useage (such as assigning the midi values), run it with the -h option.
If your drumkit doesn't seem to work right, we probably haven't had anyone to help us implement it yet. You can help us by sending us the output of
lsusb
and running
./rbdrum2midi -dbg
(you will probably need to do it as root (sudo) unless you do the workaround found below). Hit each drum a couple of times and send us the output telling us which signals correspond to which drum. Please post these results on the discussion board of our sourceforge project at
http://sourceforge.net/projects/rbdrum2midi/
and we'll do our best to accommodate you quickly.
See previous versions for more detailed instructions.
Version 0.3
Support for rb1 drumkits has been added.
Usage:
xbox rb1 kit
rbdrum2midi -rb1x
PS3 rb1 kit
rbdrum2midi -rb1p
Problem with dynamic velocity detection for RB2 and RB3-pro kits is solved.
Version 0.2
Added support for Guitar Hero: World Tour drumkit for the PS3, xbox and wii support is now possible for Rockband drumkits (in the sence that now they may actually work).
Guitar Hero drumkit midi mapping:
kick pedal : midi note 36
red pad : midi note 37
yellow Cymbal: midi note 41
blue pad: midi note 39
Orange Cymbal: midi note 43
green pad: midi note 40
Xbox and wii RB drumkits should get recognized by the program, but if the signalling is different from the PS3 kits, they won't work or at the verry least the mapping will be different.
Unfortunately I don't have xbox and wii hardware to test with, so this is the best I can do.
To use rbdrum2midi without root priviledges create a rules file in /etc/udev/rules.d/
file 90-drumkit.rules:
SUBSYSTEM=="usb", ATTR{idVendor}=="12ba", ATTR{idProduct}=="0210", GROUP="audio", MODE="0664"
SUBSYSTEM=="usb", ATTR{idVendor}=="12ba", ATTR{idProduct}=="0120", GROUP="audio", MODE="0664"
SUBSYSTEM=="usb", ATTR{idVendor}=="1bad", ATTR{idProduct}=="0003", GROUP="audio", MODE="0664"
SUBSYSTEM=="usb", ATTR{idVendor}=="1bad", ATTR{idProduct}=="0005", GROUP="audio", MODE="0664"
this will work if your linux distro has an "audio" group and your user is a member, otherwise substitute "audio" with "users".
Version 0.1
This userland program uses libusb to gain access to the velocity sensitive
data in the rockband 3 wireless usb prodrum controller (with cymbals) and use it as an ALSA
MIDI controller. It has a low latency setup so that it can give a fairly
good drumming experience. This is an evolution of the Rockband 2 Drum Driver of which I have
attached the original README.
Installation:
Requires libusb and libasound2 dev packages to compile and runtime libraries to run
It follows the ussual cmmi:
./configure
make
make install
Execution:
either run the executable localy:
src/rbdrum2midi (you may have to run this as root if you do not have the correct usb permissions)
or run from terminal:
rbdrum2midi
Usage:
connect rbdrumkit wireless dongle (PS3 works, Wii should, xbox probably won't),
start rbdrum2midi. This will create an ALSA midiport, start the jack audio server and Hydrogen,
in the connection window under the alsa tab connect "129:PS3 Joystick Client" to Hydrogen.
the midi channels are mapped as follows
RB3 drumkit midi mapping:
kick pedal 1: midi note 36
kick pedal 2: midi note 42
red pad : midi note 37
yellow pad: midi note 38
yellow Cymbal: midi note 41
blue pad: midi note 39
blue Cymbal: midi note 43
green pad: midi note 40
green Cymbal: midi note 45
This corresponds to the setup for the Hydrogen YamahaVintageKit.
To fix usb permission problems create the file 90-PS3-drumkit.rules with the following line:
SUBSYSTEM=="usb", ATTR{idVendor}=="12ba", ATTR{idProduct}=="0210", GROUP="audio", MODE="0664"
place this file in /etc/udev/rules.d/
and reload the udev deamon.
The original programs' copyrights, disclaimers and limitations still hold.
Rockband 2 Drum Driver
by Javantea
Version 0.1
This userland program uses libusb to gain access to the velocity sensitive
data in the rockband 2 wireless usb drum controller and use it as an ALSA
MIDI controller. It has a low latency setup so that it can give a fairly
good drumming experience.
The official homepage:
https://www.altsci.com/concepts/page.php?s=rockband2-drum&p=1
Copyright (C) 2008 Joel R. Voss
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA.