Page 6 of 9

Re: OSC manual

Posted: Sat Aug 15, 2009 07:23
by gpvillamil
gradek wrote:...Its sad I can' t use Gian's Max patches and TouchOSC :-( ...
Bundles are a protocol for grouping various OSC commands into a single packet, makes transmission more efficient, and reduces processing workload on the receiving end.

I can easily change the patches so to enable/disable bundles.

Re: OSC manual

Posted: Fri Aug 21, 2009 21:02
by gradek
edwin wrote: Just noticed that you can't set the cuepoints with OSC, well only the first one, is another thing for the todo list :-)
Edwin, Has this been fixed in version 3.1? I see that there is an OSC command for setting and triggering cue points, but I'm having problems sending a OSC command to all of the cue points.

/activeclip/video/position/pointsofinterest 0 "set cue point"
/activeclip/video/position/jumptopointsofinterest 0 "trigger cue point"

Both of those work just fine, but only for the first cue point. sending values of 1, 2 or 3 does not work. How can I send OSC commands to the other cue points?

Re: OSC manual

Posted: Sat Dec 05, 2009 17:29
by mfo
Gradek,
your addressing is little bit wrong. It should be:
/activeclip/audio/position/jumptopointsofinterest f
f can be 0 - 5

And again as a wish to Bart&Edwin:
Would be really great, to be able to set more than just 6 cue points!
For theatre productions, everything is about cue's - for sure its already possible to use a mixture between clip triggering and cues, but in some moments it would be really handy to stay within one clip (= visuals theme) and just jump to cues (triggered by the light operator via dmx->max/pd/vvvv->osc->resolume).

Re: OSC manual

Posted: Mon Dec 07, 2009 01:25
by mfo
Ooops, i was 50% wrong here ...

/activeclip/audio/position/jumptopointsofinterest f
for clips with audio, but:
/activeclip/video/position/jumptopointsofinterest f
for clips without audio!

Re: OSC manual

Posted: Tue Dec 08, 2009 05:31
by gradek
Hi Mfo,

Thanks for the reply. I realized that it should work as you described in version 3.1.1 and 3.1.2, but sadly it does not. I have already had edwin confirm this bug. only sending values of 0 works, any other values of "f" when using the command jumptopointsofinterest will still trigger the first cue point.

Here is what he edwin said to me in an email:
"The implementation for the cuepoints has a flaw, it only seems to work
(like you already figured out) for the first cuepoint.".....

"When jumping via OSC the correct buttons light up in the UI but it
allways jumps to the first cuepoint.
So i hope i can include a fix in the next update but there is nothing
i can do for now i'm afraid."
I am testing the Resolume BETA 3.1.3 and many OSC issues are fixed now. so if your using that version all is well, and works as you mentioned :-)

Re: OSC manual

Posted: Thu Dec 10, 2009 17:03
by mfo
Hey Gradek
Thanks for the infos! I'm so blind ... just saw the blinking cue buttons, but did not recognize the missing jumps in the output.
I'm not in the happy beta tester club - did Edwin write something when to expect next release?
Best,
Marcel

Re: OSC manual

Posted: Tue Mar 23, 2010 00:08
by Bollocks
I cant completly follow this thread. I'm sorry my situation is the same but isnt ;) : I bought OSC Touch for my iPhone 3gs and and I will control Resolume Avenue 3.1.3. on win7. I installed processing and the library called oscP5 (I also put the whole folder in the libary folder) like its describt in the manual (http://www.resolume.com/avenue/manual/). Then I drag the file "avenueIPhoneTouchOsc.pde" in processing and press start and I get the message:

"The function getAddrPattern() does not exist."

Now - no control. :cry: what did I wrong? And what have I done yet? (Resolume is running the whole procedure and package is unchecked.)

Thanks for all post and help!

Rob

Re: OSC manual

Posted: Mon Jun 07, 2010 09:15
by Romuald
You have to replace "getAddrPattern()" with "addepPattern()".

Here is the processing i'm working on.

It's quick and dirty but you can have a lot of fun.

Coming soon : XY and feedback (from TouchOsc to another controler in TouchOSC.

Code: Select all

/*
This sketch demonstrates the use of OSC in Resolume Avenue 3 and TouchOSC
an application made for the iPhone that can send OSC messages.
So install TouchOSC on your Iphone or Ipod touch (available in the App store)

ROMUALD : MY HACKS COMMENTS IN CAPS.
*/

// start OSC config
import oscP5.*;
import netP5.*;
  
/*portToListenTo, port we are listening on, this should be the same as
the outgoing port of TouchOsc on your iphone
*/
int portToListenTo = 7001; 
/*portToSendTo, port we are sending to, this should be the same as
the incomning port of Resolume 3, default it is set to 7000, so you wouldn't need to change it.
*/
int portToSendTo = 7000;
/*ipAddressToSendTo, ip address of the computer we are sending messages to (where Resolume 3 runs)
*/
String ipAddressToSendTo = "localhost"; 

OscP5 oscP5;
NetAddress myRemoteLocation;
OscBundle myBundle;
OscMessage myMessage;
//end OSC config

boolean newMessages = false;

void setup() {
  size(40,30);
  frameRate(25);
  
  /* start oscP5*/
  oscP5 = new OscP5(this,portToListenTo);
  myRemoteLocation = new NetAddress(ipAddressToSendTo, portToSendTo);  
  myBundle = new OscBundle();
  myMessage = new OscMessage("/");  
}


void draw() {
  background(0);
  if (newMessages) {
    /* send the message */
    oscP5.send(myBundle, myRemoteLocation);
    myBundle.clear();    
    newMessages = false; 
  }
}



/* incoming osc message are forwarded to the oscEvent method. */
void oscEvent(OscMessage theOscMessage) {
  //translate touchOSC messages
  String address = theOscMessage.addrPattern();    
  println(address + " : " + theOscMessage.get(0).floatValue());

  if (false) {
    // NOTHING : just for easy copy-paste of "else if".
  }
  // COPY AND PASTE AS MANY AS YOU WANT
  else if ( address.equals("/opacity/1") ) { // PUT HERE THE ADDRESS OF YOUR TOUCH OSC ELEMENT
     myMessage.clear();
     myMessage.setAddrPattern("/activelayer/video/opacity/values"); // HERE THE RESOLUME ADRESS
     myMessage.add(theOscMessage.get(0).floatValue()); // HERE YOU CAN TWEAK THE VALUE
     myBundle.add(myMessage);
     newMessages = true;   
  }
  else if ( address.equals("/opacity/2") ) { // PUT HERE THE ADDRESS OF YOUR TOUCH OSC ELEMENT
     myMessage.clear();
     myMessage.setAddrPattern("/activelayer/audio/volume/values"); // HERE THE RESOLUME ADRESS
     myMessage.add(theOscMessage.get(0).floatValue()); // HERE YOU CAN TWEAK THE VALUE
     myBundle.add(myMessage);
     newMessages = true;   
  }
  else if ( address.equals("/position") ) { // PUT HERE THE ADDRESS OF YOUR TOUCH OSC ELEMENT
     myMessage.clear();
     myMessage.setAddrPattern("/activeclip/video/position/values"); // HERE THE RESOLUME ADRESS
     myMessage.add(theOscMessage.get(0).floatValue()); // HERE YOU CAN TWEAK THE VALUE
     myBundle.add(myMessage);
     
     myMessage.clear();
     myMessage.setAddrPattern("/activeclip/audio/position/values"); // HERE THE RESOLUME ADRESS
     myMessage.add(theOscMessage.get(0).floatValue()); // HERE YOU CAN TWEAK THE VALUE
     myBundle.add(myMessage);
     
     newMessages = true;   
  }
  else if ( address.equals("/speed") ) { // PUT HERE THE ADDRESS OF YOUR TOUCH OSC ELEMENT
     myMessage.clear();
     myMessage.setAddrPattern("/activeclip/video/position/speed"); // HERE THE RESOLUME ADRESS
     myMessage.add(theOscMessage.get(0).floatValue()); // HERE YOU CAN TWEAK THE VALUE
     myBundle.add(myMessage);
     
     myMessage.clear();
     myMessage.setAddrPattern("/activeclip/audio/pitch/values"); // HERE THE RESOLUME ADRESS
     myMessage.add(theOscMessage.get(0).floatValue()); // HERE YOU CAN TWEAK THE VALUE
     myBundle.add(myMessage);
     
     newMessages = true;   
  }
    else if ( address.equals("/slowmo") ) { // PUT HERE THE ADDRESS OF YOUR TOUCH OSC ELEMENT
     myMessage.clear();
     myMessage.setAddrPattern("/activeclip/video/position/speed"); // HERE THE RESOLUME ADRESS
     myMessage.add(theOscMessage.get(0).floatValue() / 10); // HERE YOU CAN TWEAK THE VALUE
     myBundle.add(myMessage);
     
     myMessage.clear();
     myMessage.setAddrPattern("/activeclip/audio/pitch/values"); // HERE THE RESOLUME ADRESS
     myMessage.add(theOscMessage.get(0).floatValue() / 2); // HERE YOU CAN TWEAK THE VALUE
     myBundle.add(myMessage);
     
     newMessages = true;   
  }
  
  else if ( address.equals("/pause") ) { // PUT HERE THE ADDRESS OF YOUR TOUCH OSC ELEMENT
     myMessage.clear();
     myMessage.setAddrPattern("/activeclip/video/position/direction"); // HERE THE RESOLUME ADDRESS
     myMessage.add(2);
      myBundle.add(myMessage);
     
     myMessage.clear();
     myMessage.setAddrPattern("/activeclip/audio/position/direction"); // HERE THE RESOLUME ADDRESS
     myMessage.add(2);
     myBundle.add(myMessage);
     
     newMessages = true;   
  }
  
    else if ( address.equals("/play") ) { // PUT HERE THE ADDRESS OF YOUR TOUCH OSC ELEMENT
     myMessage.clear();
     myMessage.setAddrPattern("/activeclip/video/position/direction"); // HERE THE RESOLUME ADDRESS
     myMessage.add(1);
     myBundle.add(myMessage);
     
     myMessage.clear();
     myMessage.setAddrPattern("/activeclip/video/position/speed"); // HERE THE RESOLUME ADRESS
     myMessage.add(0.1); // HERE YOU CAN TWEAK THE VALUE
     myBundle.add(myMessage);
     
     myMessage.clear();
     myMessage.setAddrPattern("/activeclip/audio/position/direction"); // HERE THE RESOLUME ADDRESS
     myMessage.add(1);
     myBundle.add(myMessage);
     
     myMessage.clear();
     myMessage.setAddrPattern("/activeclip/audio/pitch/values"); // HERE THE RESOLUME ADRESS
     myMessage.add(0.475); // HERE YOU CAN TWEAK THE VALUE
     myBundle.add(myMessage);
     
     newMessages = true;   
  }
  
  else if ( address.equals("/reverse") ) { // PUT HERE THE ADDRESS OF YOUR TOUCH OSC ELEMENT
     myMessage.clear();
     myMessage.setAddrPattern("/activeclip/video/position/direction"); // HERE THE RESOLUME ADDRESS
     myMessage.add(0);
     myBundle.add(myMessage);
     
     myMessage.clear();
     myMessage.setAddrPattern("/activeclip/video/position/speed"); // HERE THE RESOLUME ADRESS
     myMessage.add(0.1); // HERE YOU CAN TWEAK THE VALUE
     myBundle.add(myMessage);
     
     myMessage.clear();
     myMessage.setAddrPattern("/activeclip/audio/position/direction"); // HERE THE RESOLUME ADDRESS
     myMessage.add(0);
     myBundle.add(myMessage);
     
     myMessage.clear();
     myMessage.setAddrPattern("/activeclip/audio/pitch/values"); // HERE THE RESOLUME ADRESS
     myMessage.add(0.475); // HERE YOU CAN TWEAK THE VALUE
     myBundle.add(myMessage);
     
     newMessages = true;   
  }
  
  else if ( address.equals("/forward") ) { // PUT HERE THE ADDRESS OF YOUR TOUCH OSC ELEMENT
     myMessage.clear();
     myMessage.setAddrPattern("/activeclip/video/position/direction"); // HERE THE RESOLUME ADDRESS
     myMessage.add(1);
     myBundle.add(myMessage);
     
     myMessage.clear();
     myMessage.setAddrPattern("/activeclip/audio/position/direction"); // HERE THE RESOLUME ADDRESS
     myMessage.add(1);
     myBundle.add(myMessage);
     
     newMessages = true;   
  }
  
 else if ( address.equals("/backward") ) { // PUT HERE THE ADDRESS OF YOUR TOUCH OSC ELEMENT
     myMessage.clear();
     myMessage.setAddrPattern("/activeclip/video/position/direction"); // HERE THE RESOLUME ADDRESS
     myMessage.add(0);
     myBundle.add(myMessage);
     
     myMessage.clear();
     myMessage.setAddrPattern("/activeclip/audio/position/direction"); // HERE THE RESOLUME ADDRESS
     myMessage.add(0);
     myBundle.add(myMessage);
     
     newMessages = true;   
  }
  

  else if ( address.equals("/jog") ) { // PUT HERE THE ADDRESS OF YOUR TOUCH OSC ELEMENT
     
     myMessage.clear();
     if (theOscMessage.get(0).floatValue() == 0.5)
     {
         myMessage.setAddrPattern("/activeclip/video/position/direction"); // HERE THE RESOLUME ADDRESS
         myMessage.add(2);
         myBundle.add(myMessage);
         
         myMessage.clear();
         myMessage.setAddrPattern("/activeclip/video/position/speed"); // HERE THE RESOLUME ADRESS
         myMessage.add(0); // HERE YOU CAN TWEAK THE VALUE
         myBundle.add(myMessage);
         
         myMessage.clear();
         myMessage.setAddrPattern("/activeclip/audio/position/direction"); // HERE THE RESOLUME ADDRESS
         myMessage.add(2);
         myBundle.add(myMessage);
         
         myMessage.clear();
         myMessage.setAddrPattern("/activeclip/audio/pitch/values"); // HERE THE RESOLUME ADRESS
         myMessage.add(0); // HERE YOU CAN TWEAK THE VALUE
         myBundle.add(myMessage);
     }
     else if (theOscMessage.get(0).floatValue() > 0.5)
     {
         myMessage.setAddrPattern("/activeclip/video/position/direction"); // HERE THE RESOLUME ADDRESS
         myMessage.add(1);
         myBundle.add(myMessage);
         
         myMessage.clear();
         myMessage.setAddrPattern("/activeclip/video/position/speed"); // HERE THE RESOLUME ADRESS
         myMessage.add((theOscMessage.get(0).floatValue()-0.5) / 5); // HERE YOU CAN TWEAK THE VALUE
         myBundle.add(myMessage);
         
         myMessage.clear();
         myMessage.setAddrPattern("/activeclip/audio/position/direction"); // HERE THE RESOLUME ADDRESS
         myMessage.add(1);
         myBundle.add(myMessage);
         
         myMessage.clear();
         myMessage.setAddrPattern("/activeclip/audio/pitch/values"); // HERE THE RESOLUME ADRESS
         myMessage.add((theOscMessage.get(0).floatValue()-0.5)); // HERE YOU CAN TWEAK THE VALUE
         myBundle.add(myMessage);
     }
     else
     {
         myMessage.setAddrPattern("/activeclip/video/position/direction"); // HERE THE RESOLUME ADDRESS
         myMessage.add(0);
         myBundle.add(myMessage);
         
         myMessage.clear();
         myMessage.setAddrPattern("/activeclip/video/position/speed"); // HERE THE RESOLUME ADRESS
         myMessage.add((0.5 - theOscMessage.get(0).floatValue()) / 5); // HERE YOU CAN TWEAK THE VALUE
         myBundle.add(myMessage);
         
         myMessage.clear();
         myMessage.setAddrPattern("/activeclip/audio/position/direction"); // HERE THE RESOLUME ADDRESS
         myMessage.add(0);
         myBundle.add(myMessage);
         
         myMessage.clear();
         myMessage.setAddrPattern("/activeclip/audio/pitch/values"); // HERE THE RESOLUME ADRESS
         myMessage.add((0.5 - theOscMessage.get(0).floatValue())); // HERE YOU CAN TWEAK THE VALUE
         myBundle.add(myMessage);
     }
             
     newMessages = true;   
  }
  
    else if ( address.equals("/shuttle") ) { // PUT HERE THE ADDRESS OF YOUR TOUCH OSC ELEMENT
     
     myMessage.clear();
     if (theOscMessage.get(0).floatValue() == 0.5)
     {
         myMessage.setAddrPattern("/activeclip/video/position/direction"); // HERE THE RESOLUME ADDRESS
         myMessage.add(2);
         myBundle.add(myMessage);
         
         myMessage.clear();
         myMessage.setAddrPattern("/activeclip/video/position/speed"); // HERE THE RESOLUME ADRESS
         myMessage.add(0); // HERE YOU CAN TWEAK THE VALUE
         myBundle.add(myMessage);
         
         myMessage.clear();
         myMessage.setAddrPattern("/activeclip/audio/position/direction"); // HERE THE RESOLUME ADDRESS
         myMessage.add(2);
         myBundle.add(myMessage);
         
         myMessage.clear();
         myMessage.setAddrPattern("/activeclip/audio/pitch/values"); // HERE THE RESOLUME ADRESS
         myMessage.add(0); // HERE YOU CAN TWEAK THE VALUE
         myBundle.add(myMessage);
     }
     else if (theOscMessage.get(0).floatValue() > 0.5)
     {
         myMessage.setAddrPattern("/activeclip/video/position/direction"); // HERE THE RESOLUME ADDRESS
         myMessage.add(1);
         myBundle.add(myMessage);
         
         myMessage.clear();
         myMessage.setAddrPattern("/activeclip/video/position/speed"); // HERE THE RESOLUME ADRESS
         myMessage.add((theOscMessage.get(0).floatValue()-0.5) * 2); // HERE YOU CAN TWEAK THE VALUE
         myBundle.add(myMessage);
         
         myMessage.clear();
         myMessage.setAddrPattern("/activeclip/audio/position/direction"); // HERE THE RESOLUME ADDRESS
         myMessage.add(1);
         myBundle.add(myMessage);
         
         myMessage.clear();
         myMessage.setAddrPattern("/activeclip/audio/pitch/values"); // HERE THE RESOLUME ADRESS
         myMessage.add((theOscMessage.get(0).floatValue()-0.5) * 2); // HERE YOU CAN TWEAK THE VALUE
         myBundle.add(myMessage);
     }
     else
     {
         myMessage.setAddrPattern("/activeclip/video/position/direction"); // HERE THE RESOLUME ADDRESS
         myMessage.add(0);
         myBundle.add(myMessage);
         
         myMessage.clear();
         myMessage.setAddrPattern("/activeclip/video/position/speed"); // HERE THE RESOLUME ADRESS
         myMessage.add((0.5 - theOscMessage.get(0).floatValue()) * 2); // HERE YOU CAN TWEAK THE VALUE
         myBundle.add(myMessage);
         
         myMessage.clear();
         myMessage.setAddrPattern("/activeclip/audio/position/direction"); // HERE THE RESOLUME ADDRESS
         myMessage.add(0);
         myBundle.add(myMessage);
         
         myMessage.clear();
         myMessage.setAddrPattern("/activeclip/audio/pitch/values"); // HERE THE RESOLUME ADRESS
         myMessage.add((0.5 - theOscMessage.get(0).floatValue()) * 2); // HERE YOU CAN TWEAK THE VALUE
         myBundle.add(myMessage);
     }
             
     newMessages = true;   
  }

}


Re: OSC manual

Posted: Sun Nov 21, 2010 14:24
by NCoghlan
Hi, I'm trying to set up my devices so that I can send OSC messages to Resolume via OSCulator and am having a little bit of trouble.

So far I've got OSC working from M4L to Resolume via the maxpatch that was blogged on here not too long ago (http://resolume.com/blog/post.php?t=6747) I've kept the input and output of Resolume to the default 7000 and 7001.

In the config.xml I also changed the send value so that I can send OSC out of Resolume - this also worked and was picked up by OSCulator.

The part that doesn't seem to work however, is sending OSC back into Resolume via OSCulator. I've tried to set it up a test so that an external controller (nocturn via automap) sends a CC22 message to OSCu of which is converted to an opacity value in Resolume. The controller signal gets icked up but it fails to pass the message on.

I've uploaded a couple of screengrabs to illustrate what I've set up and the path I've used to Resolume.

Any help would be great!

http://picasaweb.google.com/lh/photo/DJ ... directlink

http://picasaweb.google.com/lh/photo/fb ... directlink

Cheers,
neal

Re: OSC manual

Posted: Mon Nov 22, 2010 00:35
by NCoghlan
I've just come back to my OSC issue to find that turning bundles off in Resolume combats this problem.

These are the OSCulator settings that worked http://picasaweb.google.com/lh/photo/xg ... directlink

What are the benefits of having the bundles activated? Is this issue I had a Resolume bug or an OSCulator one as well? It'd be great to know the ins and outs!

Glad it's working now tho, this opens up a lot of doors for my set up.