The Saitek X52 Midi Joystick Project.

horatio.brunswick@gmail.com's icon

Hello, I have kind of an interesting project and I wanted to know if max was the right place to start with it, or if not, what direction I should head in.

I have a Saitek X52 joystickthrottle combination, which is really, really cool. Everything about it, from the pageability to the numerous pots, hat switches, and the overall build of the unit screams to me that I should find a way to convert these babies to send midi data for effects control in ableton live.

Here's a pic and technical info on the joysticks:

Now, a few joystick to midi programs exist, but none of them are even close to supporting what the x52 can offer in terms of paging, number of axes and programmability. I've tried to get in touch with some of the writers of these programs, but no luck. People have suggested that perhaps MAX is the answer.

I do not program myself, and would pretty much have to hire or badger one of my friends into setting this up for me. Before I buy the program, is this definitely something max can do, or am I barking up the wrong tree? The joystick connects via USB, so to my limited understanding, it's just a matter of using something like midi ox (which I also don't understand) to capture the signals, translate them into midi code defining CC ranges etc, and send them via a virtual midi port to ableton. (I think!) Is there more to it than this?

Thanks in advance for any thoughts on the matter.

langsound's icon

maybe im missing something, but i would guess you should be able to get
your USB controller to play nice with max via the [hi] object. from
there you could parse the control data and translate it to midi in Max
then pass it out of Max via the midi out family of objects. ableton
could then see these midi outs as available ports...

horatio.brunswick@gmail.com's icon

It occured to me to use the search function after I posted this (d'oh) and it seems like a lot of people already use these controllers in MAX.

nick rothwell | project cassiel's icon

The X52 is a HID-compliant device, and works fine with Max/MSP; it
just takes a bit of scaling since the different controls (of which
there are many) generate different ranges. Since the little tri-
coloured-LED rotator thing also generates values, it can be used as a
shift/select for the other controls.

Add some Java, season with JavaScript, and you get something like this:

nick rothwell -- composition, systems, performance -- http://
www.cassiel.com

horatio.brunswick@gmail.com's icon

So basically, max is the way to go, but I will need to hire a js programmer to make it happen?

langsound's icon

you could totally do this sorta stuff with just max objects...

its just easier with js or java (assuming you are the kind of person
who can deal with text programming)

> So basically, max is the way to go, but I will need to hire a js
> programmer to make it happen?

horatio.brunswick@gmail.com's icon

I downloaded the demo to check it out, and am completely baffled :( currently slogging through the manuals

Bob Falesch's icon

Don't feel badly -- I've been stop/starting on
Max for over eight years, and I'm still
baffled. But I've done some satisfying things
with using joysticks (and flight-sim pedals)
to front-end my performance patch. So there's
solid hope (no, I'll even call it a guarantee)
that you'll get exactly what you want using
Max, and it won't take long.

--raf (...who's about to take another look
at the Saitek X52)

Horatio Brunswick wrote:

> I downloaded the demo to check it out, and am completely baffled :( currently slogging through the manuals
>

nick rothwell | project cassiel's icon

On 25 Jul 2006, at 18:36, Horatio Brunswick wrote:

> So basically, max is the way to go, but I will need to hire a js
> programmer to make it happen?

Depends what you're after, and whether you want something complex and
algorithmic (say, involving some kind of latching state machine), and/
or whether you want a graphical user interface.

I wanted an algorithmic, and graphical, solution which could be
configured for using an X52 in several ways (and which could also be
configured for other devices - I have a P880 and a Logitech wireless
as well). I coded the first version in JavaScript but found the
performance to be unacceptable, so I re-coded the calculation engine
in Java.

nick rothwell -- composition, systems, performance -- http://
www.cassiel.com

Drsbaitso's icon

there's a joystick external on XP. It's got support for the analog joystick axis of say like a PS2 type controller and also for force feedback.... makes a damn fine drum trigger I must say.

horatio.brunswick@gmail.com's icon

Quote: nick rothwell / cassiel wrote on Tue, 25 July 2006 14:19
----------------------------------------------------
>
> On 25 Jul 2006, at 18:36, Horatio Brunswick wrote:
>
> > So basically, max is the way to go, but I will need to hire a js
> > programmer to make it happen?
>
> Depends what you're after, and whether you want something complex and
> algorithmic (say, involving some kind of latching state machine), and/
> or whether you want a graphical user interface.
>
> I wanted an algorithmic, and graphical, solution which could be
> configured for using an X52 in several ways (and which could also be
> configured for other devices - I have a P880 and a Logitech wireless
> as well). I coded the first version in JavaScript but found the
> performance to be unacceptable, so I re-coded the calculation engine
> in Java.
>
>
> nick rothwell -- composition, systems, performance -- http://
> www.cassiel.com
>
>
>
>
----------------------------------------------------

Do you plan to release your work to the public ever? I've been screwing with max all day and have basically come to the conclusion that it's beyond my grasp.

Sukandar Kartadinata's icon

On 26.07.2006, at 00:08, Horatio Brunswick wrote:

> I've been screwing with max all day and have basically come to the
> conclusion that it's beyond my grasp.

here's something simpler if just want to control effects in Live:
http://www.steim.org/steim/junxion_v2.html

I've never used it myself, but just ask STEIM for details

good luck,
Sukandar

horatio.brunswick@gmail.com's icon

: ( junxion is exactly what I want but it's mac only : (

nick rothwell | project cassiel's icon

On 26 Jul 2006, at 00:08, Horatio Brunswick wrote:

> Do you plan to release your work to the public ever?

Sure, time and effort permitting - it'll obviously need packaging and
documenting properly. (I'm slowly trickling out bits of my Java and
JavaScript codebase at http://www.loadbang.net .)

In the meantime, doing basic stuff with a joystick via the [hi]
object is pretty simple in plain old Max.

    -- N.

nick rothwell -- composition, systems, performance -- http://
www.cassiel.com