Performance Instrument: multiple mice in max/msp
Im undertaking a 3rd year university project based in max/msp. The main idea is to create an interactive perfrormance instrument. My vision is to build a large sphere(mine is 45cm diameter), i intend to have the performer seated and use controllers attached to his/her hands, interacting with the sphere to create music. The first control device that poped into my head was to use two wireless optical mice (one for each of the performers hands) as the ergonomics of the device would suit my application very well. The optical sensor could be used on the surface of the sphere and its movements tracked in max/MSP to control aspects such as pitch for example. I could also use the buttons and scroll wheel, some mice having up to 10 buttons as well as horisontal and vertical scrolling capabilities, to perform other functions such as; parameters for granular synthesis, resampling and fx such as delay and feedback.
The main problem im facing is how to use two mice in max/msp or even windows XP for that matter so that they can function independantly? Ive currently found a mouse driver online called "CPN Mouse", which allows two mice to have individual cursors in any windows application but this seems a bit buggy and leaves unwanted artifacts on the screen, it also only supports 3 programmable buttons.
Other routes im currently experimenting with include hacking into the usb cable from the wireless mouse receivers and connecting the bear cables to an arduino board which should hopefully give me a variable data stream from the optical sensor and individual data streams for each button.
What im really asking here is if anyone else has undertaken a similar project or worked with mice in max/msp in a similar way? Its also been suggested that i try converting the mouse data to midi data, does anyone know if this can be done?
All help will be much appreciated,
I’ve been fiddling with something relativly similar under OSX, I’m using a mouse as a foot pedal and the like. The program I’m using is called USB overdrive- not sure if there is a XP version.
However, the guy who suggested that also suggested XP users use http://www.quickmacros.com/ – I think you can use that to asign stuff on XP. Though i’m not sure if that would be just buttons or not.
Finally that i can think of, another option would be to use an air controller. like the gravis destroyer tilt. or the macally airstick. you could plug in one of these along side a mouse.
Any info from one of the air joysticks etc you could grab using hi as opposed to really using it from control.
Another suggestion would be to contact Michel Waisvisz(Director of Steim((steim.nl)warning alot of networks block this URL) his site is at http://www.crackle.org/ – have a look at his hands. Sounds like what you are after to a certain extent.
Sorry for the slightly rambling reply – hope something here gets you on the right track- i’m also in the middle of a taxing final year project so it’s good to help.
Get some mice that work with the [hi] object, if there are any (anyone?). This way you can read from that rather than the OS cursor info. No need for multiple cursors, especially if it’s buggy, just treat them as controllers rather than your typical mice.
[mousestate] and possibly [modifiers] may be helpful too, one of the outputs of [modifiers] will let you check for right-clicking ("control" on Mac –> right-click). Not sure about the scrollwheel, I think that’s reserved for scrolling patch windows, but if the mouse is specialty and is seen by [hi], you may have access to it.
The idea sounds awesome. I wonder if you could go sort of a "crystal ball" route and have LEDs on the player’s fingertips, then track those with a camera inside the ball? Yes you could, and it would be rockin, but the mice would be easier to start with….besides, tracking on a sphere would involve some nutty math, though I’m sure there are wizards on here who would put in their two cents about it.
…and to ramble further, if you’ve got some electronics skills and an Arduino or Make Controller, you could do some pretty interesting stuff with thin wires all over the surface that send signals when something on the player’s hands (or just the hands themselves) touch certain spots. hmm…
oh, and converting mouse data to MIDI data is cake. Any data can be converted to any other data, really, once you’ve got the numbers and you know what you want to do with them. [mousestate X, Y] –> [noteout pitch, velocity]. with the proper scaling of course.
did you ever see Woody Allen’s "Sleeper"? With the orgasma-balls? Kind of sounds like that. Share some pics as you get rolling!
If you’ve got a spare, cheap computer (laptop or something), you could build a little max patch that just takes mouse data and feeds it into an OSC or MIDI stream, and then feed that over to your main patch. Probably the easiest to envision, but it takes two computers. :/
The opposite end of the spectrum (IE really hard): Write a max/MSP external using http://www.jstookey.com/arcade/rawmouse/ to get the raw mouse data from Windows.