My Pet Project - Hacking Questions For You

So I have a hacking project that is about to get seriously rolling.

Basically, I want to glue together Ableton Live, some trippy 3D visuals, a couple of trigger-equipped microphones (a project unto itself), and Project Natal, to make what one person right here on Qt3 called “a theremin for Ableton.”

I have a few pieces of the puzzle already. First, I’ve got Ableton Live itself, and Max for Live. I’ve also located this C# library for sending Open Sound Control messages (and this UI toolkit built on top of it – I basically want to make a gestural 3D skin for that thing).

Now, obviously Natal is not out yet, and even once it is out who knows whether there’ll be a PC SDK for it. (I do not know.) But I’m going to start by prototyping the UI with a plain ol’ 360 controller, with each thumbstick controlling a virtual “hand”.

So this naturally makes me think of XNA as a reasonable environment for building this thing – it groks 360 controllers, it’s fairly friendly for 3D work, and it’s C#, which I love.

My questions, then, are simple:

  • When does XNA 4.0 ship? It’s surprisingly hard to tell from the XNA sites.

  • If I’m using XNA, can I run it in a full install of Visual Studio 2010 RC?

  • If I’m using XNA, do I have free access to all the other .NET libraries (since I’m building a PC app)? In other words, if I want to drop these OSC libraries (which are built on top of vanilla .NET networking) into my PC-only XNA app, is there any problem with that?

Please advise, that I may create something cool that much quicker :-)

And on the hardware front, I really do want to create two handheld controllers that each combine a microphone (possibly a USB mike), a trigger, and a thumb button. Imagine the bastard offspring of this:

And this:

I think I need to hook up with some of those Maker Faire people. Anyone know any such hardware mavens in the Seattle area? I’m a pure software guy, meself…

Edit: One big reason to post questions like this is that as soon as you post them, you think of something else to check and you suddenly find lots of answers. Like, for example, this awesome thing which I am going to start dinking with immediately! And reading between the lines, it looks like XNA 3.1 plays just fine with VS2008 full edition…

No ship date has been released for the full version. You can download a CTP of it now but the current CTP only allows you to target Windows Phone 7.

  • If I’m using XNA, can I run it in a full install of Visual Studio 2010 RC?

Probably, but AFAIK they haven’t made any specific announcements. The aforementioned XNA 4.0 CTP is built on top of VS 2010 Express, so one can assume they will support VS2010 out of the box, but there was a period where they supported only the Express Editions of 2008 and not the full version. I suspect they won’t do that again and XNA 4.0 will be fine in either Express or full VS2010.

  • If I’m using XNA, do I have free access to all the other .NET libraries (since I’m building a PC app)? In other words, if I want to drop these OSC libraries (which are built on top of vanilla .NET networking) into my PC-only XNA app, is there any problem with that?

If you only care about the PC there’s no limitation on what you can do with XNA, really. You can pull in any other .NET library or even use pinvoke/interop stuff to link to native code if you want. On the 360 you can only link to fully safe managed code, but your project is a complete non-starter for 360 support anyway.

Note:There’s no announcement I know of that says XNA will support Natal any time soon. I doubt 4.0 will support it. I’m sure some future 4.1, 4.2 or something version will, but even then I wouldn’t be surprised if XNA only supported Natal when deployed to the 360 and wasn’t supported at all in PC XNA.

I suspect someone will hack Natal support on to PCs at some point and you will be able to reuse that code if/when it comes out (because, again, XNA on the PC is not a closed-off system), but there’s no guarantee using XNA will make this type of input control any easier for you.

I dunno, I have more faith in MS than that. Seems to me MS is going to want everyone building stuff for Natal. But we’ll see. Certainly if MS doesn’t ship the Natal helper libraries out of the box, someone else will build them pretty darn quick.