OSC messages, processing, and reacTIVision
OSC messages, processing, and reacTIVision
does anyone know how to map osc / tuio messages to 2 apps? i want to have one instance of reactivision controling both ableton live and reactivision.
i'm runing live through max/msp, so it's all osc. (i'm not running reactivision in midi mode, although i can.)
also, does anyone know how to program one marker to control 3 / 4 different things in live? live only does midi learn, so if i have marker 0 put out x/y/rotation/note data as midi, it will only learn one of them. i cant figure how to map them to different controls. any ideas? is there a way to just type in the cc number?
from a pdf on the reactivision site, i found that they use a "connection manager" that takes tuio in and puts out connection info to the synth and visual engine. i assume this deals with the whole proximity thing where objects link together, but i also think that it splits the osc signal 2 ways.
see, i just need to have both max/msp and processing listen to the same osc signal from reactivision. that's all!!!
here's where i am so far:
http://www.youtube.com/watch?v=0KS9AX6Rgeg
thanks in advance!
- loren[/url]
i'm runing live through max/msp, so it's all osc. (i'm not running reactivision in midi mode, although i can.)
also, does anyone know how to program one marker to control 3 / 4 different things in live? live only does midi learn, so if i have marker 0 put out x/y/rotation/note data as midi, it will only learn one of them. i cant figure how to map them to different controls. any ideas? is there a way to just type in the cc number?
from a pdf on the reactivision site, i found that they use a "connection manager" that takes tuio in and puts out connection info to the synth and visual engine. i assume this deals with the whole proximity thing where objects link together, but i also think that it splits the osc signal 2 ways.
see, i just need to have both max/msp and processing listen to the same osc signal from reactivision. that's all!!!
here's where i am so far:
http://www.youtube.com/watch?v=0KS9AX6Rgeg
thanks in advance!
- loren[/url]
-
Michael Hatsis
- Posts: 1807
- Joined: Tue Nov 16, 2004 6:27 pm
- Location: Here and There
- Contact:
Re: OSC messages, processing, and reacTIVision
Sorry, This i dont understand. But Live doesnt do OSC, so it seems you would have to convert the OSC messages to MIDI messages in Max/MSPdonttouch wrote:does anyone know how to map osc / tuio messages to 2 apps? i want to have one instance of reactivision controling both ableton live and reactivision.
Never done it but im guessing you could
i'm runing live through max/msp, so it's all osc. (i'm not running reactivision in midi mode, although i can.)
the way i do this with in max is to set up a message box "64 127 1" -> [noteout] obj. you might want to toss a [makenote] obj in there. Just go MIDI map mode in Live select yer control you want to map and click the message box in Max.donttouch wrote: also, does anyone know how to program one marker to control 3 / 4 different things in live? live only does midi learn, so if i have marker 0 put out x/y/rotation/note data as midi, it will only learn one of them. i cant figure how to map them to different controls. any ideas? is there a way to just type in the cc number?
never sent OSC messags to mre than one prog, but wouldnt you just have to specify the proper port in MAX and Processing?donttouch wrote: from a pdf on the reactivision site, i found that they use a "connection manager" that takes tuio in and puts out connection info to the synth and visual engine. i assume this deals with the whole proximity thing where objects link together, but i also think that it splits the osc signal 2 ways.
see, i just need to have both max/msp and processing listen to the same osc signal from reactivision. that's all!!!
max you could use udpsend/receive
Processing dont know, never did OSC in Processing
Looks cool!!!
Last edited by Michael Hatsis on Tue Nov 20, 2007 6:28 am, edited 1 time in total.
-
bensuthers
- Posts: 760
- Joined: Wed Oct 01, 2003 4:51 am
-
pepezabala
- Posts: 3503
- Joined: Mon Jun 07, 2004 4:29 pm
- Location: In Berlin, finally
hey, THANKS guys! it's nice to see people helping these days...
so, 1) to clarify, live is of course runing midi. (generated by max msp.)
2) i'm really new to max and processing, could you perhaps post an example of what you are talking about with the max patch? (so i can open it and try it.) i also have (and am better at ) reaktor. so, if that would be better to make a patch with, it's there. BUT live is the goal program. i want to have live do all the audio playback / processing.
3) i have everything working, just not at the same time. ether:
i open live / max / reactivision
or
i open reactivision and processing.
i cant get them all to run at the same time! whenever i open max after processing, max seems to take over all the osc signal from processing. pretty much, whenever max is open, processing gets no osc. whats with that??? do programs that use osc have to link to eachother? or is the osc broadcasted over the entire port for anything to listen?
there's no problem with everything working on its own, just not all together...
i think the problem is more about udp ports. how do you tell 3333 to broadcast or multicast instead of a direct connection?
so, 1) to clarify, live is of course runing midi. (generated by max msp.)
2) i'm really new to max and processing, could you perhaps post an example of what you are talking about with the max patch? (so i can open it and try it.) i also have (and am better at ) reaktor. so, if that would be better to make a patch with, it's there. BUT live is the goal program. i want to have live do all the audio playback / processing.
3) i have everything working, just not at the same time. ether:
i open live / max / reactivision
or
i open reactivision and processing.
i cant get them all to run at the same time! whenever i open max after processing, max seems to take over all the osc signal from processing. pretty much, whenever max is open, processing gets no osc. whats with that??? do programs that use osc have to link to eachother? or is the osc broadcasted over the entire port for anything to listen?
there's no problem with everything working on its own, just not all together...
i think the problem is more about udp ports. how do you tell 3333 to broadcast or multicast instead of a direct connection?
-
pepezabala
- Posts: 3503
- Joined: Mon Jun 07, 2004 4:29 pm
- Location: In Berlin, finally
I actually don't know how to solve your problem, but maybe you find an answer at the reactivison forum on sourceforge
-
bensuthers
- Posts: 760
- Joined: Wed Oct 01, 2003 4:51 am
-
Michael Hatsis
- Posts: 1807
- Joined: Tue Nov 16, 2004 6:27 pm
- Location: Here and There
- Contact:
just copy that to MAX, then set the note you need, then click the button, it will send out that note to Live.max v2;
#N vpatcher 79 244 292 438;
#P setbglock 1;
#P window setfont "Sans Serif" 9.;
#P comment 134 99 26 196617 chan;
#P comment 97 99 26 196617 vel;
#P newex 52 114 85 196617 noteout;
#P number 126 81 35 9 1 16 3 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 89 81 35 9 0 127 3 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P button 52 45 15 0;
#P number 52 81 35 9 0 0 256 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P comment 57 99 26 196617 note;
#P comment 71 46 100 196617 Click to send MIDI;
#P user panel 10 28 172 130;
#X brgb 191 191 191;
#X frgb 0 0 0;
#X border 1;
#X rounded 0;
#X shadow 0;
#X done;
#P background;
#P connect 4 0 3 0;
#P connect 3 0 7 0;
#P fasten 4 0 5 0 57 69 94 69;
#P connect 5 0 7 1;
#P fasten 4 0 6 0 57 75 131 75;
#P connect 6 0 7 2;
#P pop;
With the UDP thing. Ive never sent OSC to more than one App at a time. But my thought is that you can kind of daisy chain apps using diff port numbers. For instance. have reacTV send to MAX on port 8888, then have max echo to processing on Port 8889 . So youd have something like:
-reacTV udpsend 8888- ---> -MAX udpreceive 8888- then -MAX udpsend 8889- ---> -Processing udpreceive 8889-
There might be a more elegant solution than that but that seems like it would work. Your prob better off asking over at the cycling boards or maybe checking the processing board too. The Max board seems a bit quicker with responding than the processing stuff.
Good Luck!
peace-
hmmm, well that midi utility is real cool! (saves me some time maping with external controlers...)
but how would i tell these programs to send out again on different ports? i've only started useing max and processing like 4 days ago. but i get things fast.. do you know of a way to copy and paste the data like i did with that midi utility? (i learn best by dissection.) then perhaps i could impliment it into my patches for use with reactivision.
i think that you have to know how to make xml files that specify how the whole udp ports will work, then reference them from within processing.
and.. i AM posting all this to the reactivision / max / puredata forums, as well as youtube. just so few people seem to know about this stuff!
thanks so much for helping!
- loren
but how would i tell these programs to send out again on different ports? i've only started useing max and processing like 4 days ago. but i get things fast.. do you know of a way to copy and paste the data like i did with that midi utility? (i learn best by dissection.) then perhaps i could impliment it into my patches for use with reactivision.
i think that you have to know how to make xml files that specify how the whole udp ports will work, then reference them from within processing.
and.. i AM posting all this to the reactivision / max / puredata forums, as well as youtube. just so few people seem to know about this stuff!
thanks so much for helping!
- loren
-
Michael Hatsis
- Posts: 1807
- Joined: Tue Nov 16, 2004 6:27 pm
- Location: Here and There
- Contact:
heres a couple max patches demonstrating the technique i mentioned above. Like I said theres gotta be a nicer way to do it- but this should work.
Pseudo ReacTV
Psuedo Max
So open up psuedo ReacTV and then open up PseudoMax. Play with the numberbox in PseudoReacTV and it will send and Osc type message to PseudoMax on port 8000. Pseudomax will then forward the message to port 8001, have Processing listening on this port. Definately look into the max documentation and help files...
peace-
Pseudo ReacTV
max v2;
#N vpatcher 181 291 351 491;
#P origin 2 -16;
#P window setfont "Sans Serif" 9.;
#P window linecount 2;
#P comment 1 130 135 196617 sends OSC message to pseudo Max on port 8000;
#P window linecount 1;
#P newex 8 69 85 196617 sprintf OSC/%ld;
#B color 5;
#P number 8 48 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 8 90 115 196617 udpsend localhost 8000;
#P comment 38 21 74 196617 pseudo reacTV;
#P comment 43 49 94 196617 change num to send;
#P comment 2 160 129 196617 www.trackteamaudio.com;
#B color 12;
#P user panel 0 39 136 86;
#X brgb 184 210 212;
#X frgb 0 0 0;
#X border 1;
#X rounded 0;
#X shadow 0;
#X done;
#P background;
#P connect 5 0 6 0;
#P connect 6 0 4 0;
#P pop;
Psuedo Max
max v2;
#N vpatcher 292 232 521 480;
#P origin -9 -35;
#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P comment 16 206 129 196617 www.trackteamaudio.com;
#B color 12;
#P window linecount 2;
#P comment 22 35 172 196617 gets message fom psuedo reacTV & sends to Processing on port 8001;
#P window linecount 1;
#P message 41 133 62 196617 OSC/139;
#P newex 41 109 62 196617 prepend set;
#P comment 104 134 88 196617 OSC from ReacTV;
#P comment 19 66 115 196617 Max gets from ReacTV;
#P newex 23 156 115 196617 udpsend localhost 8001;
#P newex 23 80 86 196617 udpreceive 8000;
#P comment 23 177 115 196617 from max to processing;
#P comment 25 21 63 196617 pseudo max;
#P user panel 13 60 190 140;
#X brgb 191 174 206;
#X frgb 0 0 0;
#X border 1;
#X rounded 0;
#X shadow 0;
#X done;
#P background;
#P connect 3 0 4 0;
#P connect 3 0 7 0;
#P connect 7 0 8 0;
#P pop;
So open up psuedo ReacTV and then open up PseudoMax. Play with the numberbox in PseudoReacTV and it will send and Osc type message to PseudoMax on port 8000. Pseudomax will then forward the message to port 8001, have Processing listening on this port. Definately look into the max documentation and help files...
peace-