Wireless MIDI from Rockband Keyboard through hi?
Hello,
I posted about this a little while ago, but hopefully now that the rock band keyboard has been out for a while someone can chime in. I see that the keyboards all have MIDI out, but since it's a wireless controller I thought there might be some chance of intercepting the MIDI data in Max wirelessly (via whatever the rock band protocol is, bluetooth, OSC??? i have no idea).
Don't own one of these myself, but if anyone does or has experience using these with max, is there any way to get wireless MIDI (with OSC, the hi object, etc). Also for the wii version, could there be some way to modify the aka.wiiremote object to include the MIDI notes and program changes from the controller? Thanks,
G
Just found this thread about someone wanting to use the rock band 3 keyboard in their own app.
One of the posters said there is a C#/Java library for all Wii input devices that support bluetooth (called WiiLib, he thinks). Anyone familiar with this library, and if so could they confirm that the Rock Band Keyboard for Wii works over the same bluetooth protocol? I am really interested in the potential of this as a wireless controller. Please help me out if you have any familiarity with this keyboard at all or know of this WiiLib and how to parse the MIDI data from it... Thanks again!!!
-G
The wii version almost certainly works as an extension controller. No idea how to parse data from it without trying one.
My updated version of aka.wiiremote (ajh.wiiremote) will *possibly* see the keyboard as an "unknown" extension device and output the data raw - from which you could figure out how to parse it yourself. However, I can't imagine that you are getting full MIDI data over wireless, as the data space for extension controllers isn't very big at all. I might be wrong though...
You can get ajh.wooremote from alexanderjharker.co.uk under software, and if you do try it you'd be welcome to correspond about incorporating it into the object. No promises however, that it'll even work at all or what results are possible - I'm just speculating here..
A.
Try OSCulator -it's a handy application that can receives data from quite a few devices (WiiRemotes, Guitar Hero etc..) so there's a possibility it will have support for what you want.
That would be great if it did work for at least some of the controls...fingers crossed...pretty decent price for going wireless.
The buttons reminded me: I got a Windows joystick working through [hi], and having the buttons available was great---easy to figure out and parse. What I'm wondering is whether the Rock Band keyboard buttons would send anything as MIDI, and my guess is no, because they're specific to playing the actual game. But we'll have to see, it would be nice if they did. That said, I imagine the "whammy bar" is sent as a MIDI CC value, which would be great.
The reviews seem pretty good at first glance, that it's solidly-built and has good response. Hoping there's a way to get at the data wirelessly!
Thanks for the suggestions everyone. Unfortunately, I don't play Rock Band and actually don't even own a TV, but I hope that someone who already has a Wii version keyboard will pick up on this and try it before I shell out for a keyboard, though if I can find one super cheap I might just try it out myself. Afterall, I still have room for an extra input on my MIDI interface, so it wouldn't be a total loss.
@Alex, that would be great if I could read the data through ajh.wiiremote. If nobody else can test this out in a week or so, I'm going to just go for it myself cause I've been dying to know for a while.
@seejayjames, right there with you man. fingers crossed...
@Alex,
Just did some more research on youtube, and stumbled across some videos of the new Rock band Pro guitar with buttons on all the frets. I know you said there is support for the Rock Band Guitar, but does that include this new Pro version? If so, how does the MIDI data come through?
Anyone else have experience with getting MIDI from the guitar (or even the drums) wirelessly into Max?
Thanks again,
G
Pass on the pro version. Most likely it will either work as a guitar straight off, or it will work, but as "unknown" which means raw data.
These devices don't send MIDI, they send a tightly packed set of bits of which different parts are assigned to different buttons / controllers. Most continuous controllers are fairly low resolution - 7bit (128 values) is probably a maximum (I forget the exact details and the site most of the info came from is down).
This is which I am sceptical about getting anything approaching MIDI over wireless - looks like the devices have a separate MIDI out which is fully MIDI compliant, but I reckon the wii stuff will only be a small subset of that data.
I seem to remember also from a friend that some of the buttons / controls on the guitar hero controllers might not be right in the latest version - I meant to fix this, but I need to get some more info from someone with one of these devices. IF you do find problems let me know and I can try to fix them up...
Oh - also (on re-reading) there is support for the guitar hero guitars - no idea about rock band controllers... I suspect they'd connect as "unknown".
So, finally got my hands on one of these things, and I was successful getting the keyboard data wirelessly into hi! The buttons and touch strip were easy to map, but I am having some trouble with the keyboard because it's not using MIDI, rather some kind of binary sequence. Each key press and key release sends 3 lists each with two different numbers. From top to bottom in the Max window these seem to be 1) ??? 2) velocity 3) binary code for the key number. I pasted it below, so maybe someone who is more binary code savy than I can have a look at it. I made some comments trying to decipher it, and I think I understand what's going on, but I'm not sure how I can translate these into solid note on/offs with velocity so I can send them out to Logic. Anyone else who has one of these things or thinks they could help me translate the messages to MIDI please help! This could be an amazing tool for a lot of musicians, because $40 is super cheap for any 25 key MIDI keyboard, not to mention one that works wirelessly!!! Thanks a bunch, I hope you can follow my patch and comments, but if not I will try to explain further.
@Alex, I tried using it with the ajh object but I don't think it uses bluetooth to connect, it has it's own USB wireless dongle. Though I probably would have gotten the same messages there as I am getting with hi.
Where are the binary codes you mention? In the [route] object? I wasn't clear where to find them.
In the comments I posted an example of what the printed messages look like after pressing and releasing different keys on the controller. The notes seem to be distinguished by the first list message (the last of the three lines that appear in the max window). The first number of the list (18-21) divides the keyboard up into 4 zones, the lowest one (18) starting on the lowest C and ending 7 half steps up on G. There are two more full zones (8 notes each), until you get to the last note (C two octaves up) which has the zone 21. This brings up another problem I ran into, because 21 seems to also be the number that routes the velocity for each note. So far I have left this high C out of my attempted MIDI note translation patch because every key that I press includes a list (the second line of the printed messages) starting with 21 that contains the velocity information. I have noticed however that the velocity for all keys except the highest C is in the range of 0-127, but the velocity range for the high C key is between 138 and 258. I still haven't figured out what's going on there, but getting back to the note messages: the binary code appears in the second number of the note list. Each of the first three zones (18, 19 and 20) has 8 notes and going chromatically up they are 128, 64,32,16,8,4,2,1. So for example the lowest note (C0) appears as 18 128, the next half step up (C#) is 18 64. If I were to play the A a major 6th up from the lowest note C, it would read as 19 64. The high C only spits out two lists for some reason, the last one being 21 256 (the 256 is the velocity though so it varies each time depending how hard you press the key). Also I have noticed that if you hold down a key and press another one in the same zone, the newest message will display the zone and then the binary sum of the two notes that are pressed. For example, if I press and hold the low C, then press the G a fifth up, the new message will read 18 129. I guess this is how you can decipher polyphony, but I'm still not sure how to translate these messages into a polyphonic, velocity sensitive MIDI note generator. It's kind of difficult to explain here, but let me know if you understand what is happening, and can think of a clever way to parse this in Max. Thanks,
G
My bad, I posted the wrong patch...
Here's what I'm working with so far.
Ok, I figured how to get all the notes to work monophonically (just with note on messages, so only useful for triggering percussive sounds or one shots with predetermined attack and decays, still not sure how to handle note offs so I can play sustained string or pad sounds and have them stop when I release the keys). Is [kslider] always monophonic, or is there a way to get it to display polyphonic key presses? I think if I can figure that out I might be able to get the rest to work. Also does anyone know if I have to set the velocity in the left inlet before sending it the note. I have tried sending the note number and velocity information at the same time, but I must be getting the scheduling wrong because the notes always play in logic at 127 velocity. Thanks,
G
GMIX, did you ever get the keyboard to work 100% wirelessly, full polyphony and all. Is there a solution outside of using Max/MSP?