Playstation sixaxis controller

JavaProgrammer's icon

I would like to use a playstation controller with max/msp.

I'm on Mac OS X 10.6.8

From what I read online, it seemed that I could just attach the controller, and it should work with a "hi" object and a menu to select a PlayStation controller. But, it doesn't work. I simply get no output from the hi object, and the four lights on the controller just keep flashing.

I've found older posts recommending an explanation page within the Max/MSP documentation, but it's a dead link.

I've seen mention of setting up the controller within the Audio/MIDI driver setup for OSX, but can't find the controller in there.

So at present, I'm stumped. What should I do next?

Stephane Morisse's icon

On OSX 10.5.8, I had to install some kind of driver to make it recognized. It was mentioned that it is supposed to work directly with 10.6 but you should do a search with 'sixaxis + 10.58'.

JavaProgrammer's icon

Thanks. I had been too confident that my OS came under "modern versions of OSX have a driver built in".

I have installed the driver from http://tattiebogle.net/index.php/ProjectRoot/Ps3Controller It appears to be working fine, and I get a stream of information from the PS3 controller into Max/MSP.

It's only 8bit values while I believe that the controller has 10 bit resolution. But there is still an awful lot of "controller" here which could do all sorts of ..... "stuffz".

Stephane Morisse's icon

That's it... BTW, I made a patch for a friend who bought a logitech extreme 3D PC joystick, and to me it's much more interesting and precise than the sixaxis...

JavaProgrammer's icon

Thanks. I definitely want to experiment with more controls. The PS3 controls were the second ones I tried after I found the Nintendo Wii control didn't work so well. I'll have another go at that.

Both of these we already have lying around the house as we have those consoles. The logitech 3D joystick looks interesting, but I am planning to get the XBox Kinect controller next.

Noisey Parker's icon

Hello,

This the how to map the basic data out of the controller. It's mostly just route with a little bit of added trickery to get the x/y joy sticks working properly. The problem I hit is that I cannot get the data for velocities of any of the buttons, or the sinaxis accelerometer.

If you ever do crack it, I would love to see how you did it!

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

JavaProgrammer's icon

Well, last night the controller was working with Max/MSP.

This morning, its not working at all. I tried your patch, and the patch I made last night, but nothing happened. I bought up the Human Interface tester, and that gave no output from the PS3 controller. I reinstalled the driver and restarted the computer, but that did nothing. I tried a different controller, that does nothing.

So, here I am right back where I started.

Edit: Now it's working again. I think it was some combination of plugging in the control, quitting Max, starting Max up again, or something like that.

Looking at your patch, you only go up to about parameter number 30. There is information coming via higher numbered controllers, e.g. 62 appears to be some sort of tilt sensor. So, you'll need to look at higher numbered parameters. I'm going to create a Java GUI object to track all parameter numbers, so I can see what is what.

JavaProgrammer's icon

PS: I have written the GUI and it's MUCH MUCH easier to see what is going on.

Do you have any questions about keys and values?

Noisey Parker's icon

which ones show as velocity sensitive? I haven't played games for a long time, but they should all be velocity sensitive right? Other wise how does the play-station know how high the character will jump? At the very least L2 and R2 must be velocity sensitive as they have a sliding action.

I would love to be able to tap into some of the velocity data and also the sinaxis. Any advice on this would be fantastic.

Noisey Parker's icon

Cracked it! you were so right, the velocity sensitive ranges are further up the route numbers...cheers dude!!

Noisey Parker's icon

sorry to keep posting...the only thing not showing up is the sinaxis accelerometer...did you manage to map this data?

JavaProgrammer's icon

62-67 inclusive transmit data continuously when the controller is moved. But, I can't see anything that acts as an accellerometer. I think they are tilt values, but I'm not sure. 63 seems to give me bigger and smaller values when I move the controller without tilting it. I'm printing them out as unsigned numbers, but I suspect that they might be signed. Maybe that's the accellerometer.

I'm not sure what 30 is transmitting, as it is continuously receiving data, but it's always 0 that's received. 62, 64, and 66 seem to be transmitting mostly 1s and 2s, with perhaps some zeroes. Not sure what they are.

I think I'm going to write a new GUI window to plot values of individual parameters as a graph. That should help me work out exactly what the values are saying.

Edit: I've just switched to a third party controller without sixaxis. Initially it wouldn't work at all, but after some random plugging and unplugging, I managed to get the Max/MSP HI tester going, but my patch won't. Now that I've plugged the original Sony controller back it, now it's not working at all. It seems that the HI input from PS3 controller is very flaky, and there is probably some magic sequence required to get it going.

Edit: It *might* be that I need to plug in the controller, and hit the "PS" button before I start up Max/MSP. Possibly.

etk's icon

Here's something I made last year in Max 5. I've gotten it working quite well, but I've never gotten the accelerometer data in properly.... If open this in a batcher (offset it a bit, sorry) and it should be good to go; i labeled all the outlets with button names. You DO have to hit the PS controller after you open up the max patch. If it's not working open up the patch and make sure you're getting the controller on the Umenu connected to {hi}. Sorry its a little messy.

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

-Evan

etk's icon

Also note I added the onebangs to it so it only outputs the button when they are pressed down. If you wanted to play a sustaining information or have things gated while the buttons are held down you can take those out. One more thing, I think there must be a way to do this wirelessly, but I've always done it via USB.

JavaProgrammer's icon

Thanks. But it's my default strategy to do everything (more or less in Java), so only need to input pairs of param#, value numbers, and then I can do with them as I please. But I'm trying to use more standard Max objects where it's better to do so.

alejandrovg10's icon

does any one done how to turn down the sensitivity on the joystck 'L' & 'R' sticks trying to assign it to the camer view and and objet

akee-rf's icon

for who is interested, its only an osx solution.
app does the pairing, you also can have all the buttons seen as pressure sensor/analog input...
works with sixaxis, move and navigator

dtr's icon

Love that controller, right out of a cronenberg movie ;)

akee-rf's icon

cheers!
talking about Cronenberg, i did a fake existenz one long time ago you can barely see it here:
http://goodpressgallery.co.uk/files/gimgs/217_wolfcolour02.jpg

))