Interactive Jitter Musical Concept Help
Hello-
I am beginning a journey with Max/Msp Jitter and I need your help. My goal is to create a musical interactive program piece using a wiiremote that reacts to a glowing "ghost ball" if you will on the screen. The sound would be generated on a grid on the screen where the ghost ball cursor is, and sound changes where it moves. Has anyone done something like this or wish to help? I am guessing Max/Msp Jitter is my best bet. Yes? Any input would be appreciated. I want to know how things talk to each other and what objects I should be using. Thank you.
-k-solutions
this can certainly be done with max.
you should first do all the tutorials (max, msp and jitter), or at least the first 10 or so from each section.
i recommend the osculator app for interfacing with the wii-mote. the osc messages can be received using udpreceive object.
eventually you might want to check out the computer vision objects (cv.jit library).
after getting the hang of the program, search the forum for some ideas related to what you're doing. also, please check out the two sticky topics in the main max/msp forum.
come up with a patch that shows your basic idea and post to the forum with questions and you will get plenty of help.
good luck.
OK, Thanks. I found this guy Baz's tutorials on Youtube to be helpful. I also checked out the aka.wiiremote patch but do not quite understand the patch and linkage significance? I don't know, I'm doing more research though. I'll post a patch soon.
k-solutions wrote on Tue, 26 May 2009 14:29Hello-
I am beginning a journey with Max/Msp Jitter and I need your help. My goal is to create a musical interactive program piece using a wiiremote that reacts to a glowing "ghost ball" if you will on the screen. The sound would be generated on a grid on the screen where the ghost ball cursor is, and sound changes where it moves. Has anyone done something like this or wish to help? I am guessing Max/Msp Jitter is my best bet. Yes? Any input would be appreciated. I want to know how things talk to each other and what objects I should be using. Thank you.
-k-solutions
If you have jitter, look into jit.gl.gridshape, shape plane, poly_mode 1 1, dim 8 8 (for an 8 X 8 plane, as an example). This will produce a wireframe plane cut up equally into 64 squares. You might need to stretch it if you're using a rectangular window, so scale 1.333 1. 0. will give a 4:3 aspect ratio, and the z value isn't needed in a plane shape.
You can use the worldtoscreen message to convert the GL coordinates of your ghost ball (which is the mouse cursor coming from the wii data) into pixel coords which match the window, so if your window was 800 X 600, your gridshape/plane filled it exactly, and had dimensions 8 X 8, each cell would be 100 X 75. Or you can determine the extent of the GL world size, say -1. to 1. in each direction, then use [scale] to scale those values to a useful range---like 0 to 7, which would tell you which cell it's in (counting from 0 that's 8 possible cells in each row and column).
Each way will work, but changing the GL camera view in the second one would need to be tracked, whereas changing the window size would need to be tracked in the first one, in order to make the positioning stay correct. Should make sense when you mess around with the jit.gl.gridshape helpfile, also look up jit.gl.sketch for more ideas (like drawing lines to determine exactly how big the GL world is from a particular camera Z position). And your ghost ball could simply be another jit.gl.gridshape, but a sphere, solid, and textured with a movie that would give the "glow" effect you want... or whatever else looks cool. The ball could easily react when you trigger a sound---like flash red---if you have a frame in the movie texture that's red, just jump to that frame for a moment, then back to the glow... or apply a bit of color effect to the white glow momentarily (jit.scalebias can do this, it works best on a mainly white movie).
Might be a lot to chew on at this point, but all the tools are there to move the "cursor" and track where it is in the scene. The grid is only for visual feedback. Then you just determine which cell it's in, and decide what sound to play in each one (the fun stuff... look into [preset] to store whole banks of sounds). Once you get comfortable with how this works, it's simple math to make the grid (say) 20 X 20, though you'd have to have more sounds to match... if you have a total of 400, you could restrict the dimensions to 20 X 20, or have similar sounds in each row or column (20 different main sounds, each with a range of 20 pitches), or different MIDI channels based on the row, or whatever you want.... after all, it's Max... yes you can!