Razer hydra

edsonedge's icon

Hi

I just got my razer hydra controller - and one can download of of steam a (little bit crappy) midi app for it which I am having a hard time trying to get it to work in Max

I also tried using the Hi object and it sees the controller but doesnt give any data out when I try to poll it

Has anyone had any success with this

Also I would much rather want to use OSC for the hydra if that was possible - if anyone is doing something like that

all the best

edsonedge's icon

Small update

I have managed to get the x vector out of the hydra, using midiparse and this midi learn subpatch made by mr_mapes that I found on the forum;

btw. thanks mr_mapes :)

But I can only get one control parameter, if I try to have two midilearn subpatches (differently named (saved)) then I always just get the same parameter , using the midi app from sixense

Max Patch
Copy patch and select New From Clipboard in Max.

I cant understand why they would build a midi app for such a precise controller (Why not OSC or just HID) - midi sucks balls :)

`
mr_mapes subpatch:

Max Patch
Copy patch and select New From Clipboard in Max.

Sixense's icon

Hi Edsonedge,

Sixense recently published a tutorial video for setup of the MIDI app on youtube. As I am unaware of the linking rules of this forum I'll have to ask you to Google "sixense MIDI app setup", this should yield the video as the first result.

If you have any additional questions or need further assistance please post on the Sixense forums, we'll get one of our MIDI app specialists connected with you immediately. Thanks :).

_________________
Dan Paullus
QA/Production Manager, Sixense MotionCreator
Lead Production Artist
Sixense Entertainment Inc.

edsonedge's icon

thanks for the reply

Yeah I did see the video before - and made it work with massive

If the Midi specialist can help to get this to work in max, thats well appriciated

But midi vs OSC is sort of what VGA vs HDTV is in sound controller terms. The one parameter (x position) that I got to work proberly in Max - still I was getting just 127 steps - and with a controller that has the range of over 2 meters, with 1 mm precisioan accuray, I could use those extra steps

Just saying, it would be awsome if you could take the raw data from the SDK and pack it into OSC (I would do it myself if I had gotten passed page 100 of C++ for dummies)

all the best

sixensejeff's icon

Hey there, I'm the guy who wrote the Sixense MIDI app. I'm going to take a pass at getting it working with OSC, are there any Max samples or documentation you could point at to help get me started? There doesn't seem to be much in the documentation about it.

edsonedge's icon

Awsome! thanks alot :)

If you want to make an external for max I guess you need the Max msp SDK

But maybe it is simpler, and more generally usful just to make an OSC exacutable with the Razer Hydra SDK and a library such as this: http://code.google.com/p/oscpack/

If the motion paramters and trigger floats, along with the button int´s can be packed as OSC and sent out as data to 127.0.0.1 on a specific port, then the Hydra can be used with loads of programs (not just Max but also PD, Proccessing, Supercollider and many others) and it is real easy to get a feed of the data using the Osc-route object http://cnmat.berkeley.edu/patch/4029

Thanks again :)

edsonedge's icon

Oh and P.s dont forget to include the Analog sticks as OSC messages - they could be very usefull I think

sixensejeff's icon

Thanks, that helps a lot. Should I define my own messages like /sixense/joystick/x and /sixense/position/x or are there specific messages that Max is expecting?

edsonedge's icon

I am pretty sure you define them yourself

then one just writes in the osc route object a "/" followed by a defenition of each parameter (that is what you define them as)

Here is an example of a OSC exacutable someone did for the emotiv BCI headset

Max Patch
Copy patch and select New From Clipboard in Max.

and here is an example Max patch for it

edsonedge's icon

Here is a picture of the patch if you dont have Max

2422.OSCpatch.jpg
jpg
edsonedge's icon

And here is a picture of the MindYourOSC program

2423.MYOSC.jpg
jpg
Roald Baudoux's icon

@sixensejeff : if you create an Hydra-to-OSC app or a Max external, do you think you could build a MacOS X version ?

sixensejeff's icon

Well that was easy.

2424.sixenseosc.jpg
jpg
edsonedge's icon

Awsome!

Can I try; Purty please with sugar on top :)

sixensejeff's icon

edsonedge - I should be able to put something together this evening (PST), would you mind testing it out a bit? If you don't mind send me an email at @sixense.com :)

Roald Baudoux - Yes, we'll have a mac version soon, but not right away. Hopefully in the next month or two.

sixensejeff's icon

Here's a pic of where it is tonight. A bit more testing and I'll include this in the Sixense MIDI app on Steam.

2427.sixenseosc.jpg
jpg
Roald Baudoux's icon

Nice to learn that Mac users will join the party ! Trop bien !

edsonedge's icon

thanks alot Jeff and Sixense

to other Max user - The Razer hydra is the most Precise motion controller I have used - knocks the wiimote, playstation move and kinect out of the park in terms 1to1 position accuracy

Anthony Palomba's icon

Hey Jeff,

Thanks for taking the time to add OSC support. I can not wait for my Hydra to arrive so I can hook it up to Max.

Mark Durham's icon

Any further reports on how this is working out?

I'm tempted to invest...

Also, anyone have any idea how many degrees of precision are usable here, I can't seem to find any actual statistics?

edsonedge's icon

Ive been trying out all sorts of ways of using it as a controller - haven´t settled on anything yet though - but it has great possibilites

Ive also been thinking about modding it so that one can use fingers to play individual notes

I am not home so I can´t check degrees of precision, but it is very precise (i think its something like 500-600 degrees for x/y/z position vectors - and 360 degrees for rotational vectors)

Here is me testing out FM synthesis with it

the sound quality is poor though

Mark Durham's icon

Thanks for getting back, and thanks for pointing out the video.

I'm not surprised you've not settled on anything - that's a lot of different controls to think about.

Great that Sixense are involved on the forum, but have they released the OSC patch officially yet?

edsonedge's icon

I think you can get the OSC bridge with the midi sdk on Steam (you need to use the midi software to calibrate/turn on the Hydra)

So you just need to register on steam and go to their sdk download page (last time I checked it was nr 9 counting from the bottom of on the sdk download page)

But if you can´t find it check out sixensejeff in this forum - he leves his email in the post above the picture of the max OSC patch, and he´s a nice guy - I´m sure he can help you out

All the best

vichug's icon

hey,

currently i can't connect to Steam, because, well, there is in this university's network something that blocks any website related to gaming... which is kind of a pain. So is there any way to get that razer hydra osc max object somewhere without Steam ?

vichug's icon

Turns out steam's app is windows only, plus MIDI only ; after a bit of searching found a github for an osc app here :

compiled for zindows only though, but osx should be neaaaarly straightforward ?.. plus this dates back to some time so it could be that so;eone has done it already
forum here
http://sixense.com/forum/vbulletin/archive/index.php/t-3669.html

vichug's icon
vichug's icon

well, there's that too now http://sixense.com/forum/vbulletin/showthread.php?4147-Sixense-SDK-wrapper-object-for-Max-MSP-and-Pure-data
not compiled for osx10.6.8 yet, i will report that.

(the irony...)

vichug's icon

soo actually the git includes the compiled binary .mxo, which works like a charm... there is also a pd external.

Wetterberg's icon

How does it run? Like, what's the data speed/resolution like? The hydra is really quite an affordable system...

vichug's icon

speed/resolution is, eh, very good, i think you can poll at a minima of 1ms ? Resolution is very good too... hard to tell tbh, it would be accurate to compare with a wiimote maybe, but i didn't.
But, it seems to be very cpu heavy (takes one of my 4 cores)... and the max object crashes easily, ie if you create 2 instances of the thing, only one will work, the first you will send a "poll" message ; and in one max session it will always be the same (also meaning that if you close the patcher then reopen then poll it will crash...) those problems seem to be more related to the razer pilots than the object itself.

Wetterberg's icon

thanks - idk, it looks like it would be great for a solo instrument.

vichug's icon

it's undoubtedly worth a try.

I'm using it, and now i think that maybe it would be better to port the osc app to mac and use that, than use the max external, given that you must reopen max each time you erase/recreate said external... i tried to make on osc app, but replaced the timing provided by the glfw library (i couldn't compile it on osx) by something with a usleep(10000), anyway that application is a bit too much cpu heavy.

vichug's icon

Ookay, so... now what i do is use a compiled max application embedding the [hydra] external, with which i communicate through udp, because the max external is sort of more flexible than the osc application. Plus i finally compiled that glfw on mac, but the resulting original osc application is heavier on cpu load than the version tweaked with usleep(3000 now - which means one frame of hydra data each 3 miliseconds). And the max external has the advantage of not having an osc layer, which is maybe less obvious to use but less heavy on the rest of the max patch.
I was wondering though if that cpu load is normal or if i did somehting wrong. Whatever thing i try to do with the hydra, it doesn't seem to be able using less than one core, on an intel core i7 quadcore. Does anyone here have experience with that thing ? it's a gaming device so it theoricaly should be much more optimised than this... i'm guessing on Windows it's probably smoother...