OSC manual

Just let it all out, buddy. You're among friends here.
User avatar
gpvillamil
Wants to marry Resolume, and Resolume said "yes!"
Posts: 550
Joined: Mon Apr 04, 2005 03:33
Location: San Francisco, California

Re: OSC manual

Post 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.

User avatar
gradek
Hasn't felt like this about software in a long time
Posts: 238
Joined: Thu Oct 05, 2006 20:14

Re: OSC manual

Post 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?
Want to map LED rings with Resolume? Then look no further: https://goo.gl/f2dPGu

mfo
Is seriously in love with Resolume. Met the parents and everything
Posts: 325
Joined: Fri Oct 08, 2004 11:48

Re: OSC manual

Post 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).

mfo
Is seriously in love with Resolume. Met the parents and everything
Posts: 325
Joined: Fri Oct 08, 2004 11:48

Re: OSC manual

Post 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!

User avatar
gradek
Hasn't felt like this about software in a long time
Posts: 238
Joined: Thu Oct 05, 2006 20:14

Re: OSC manual

Post 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 :-)
Want to map LED rings with Resolume? Then look no further: https://goo.gl/f2dPGu

mfo
Is seriously in love with Resolume. Met the parents and everything
Posts: 325
Joined: Fri Oct 08, 2004 11:48

Re: OSC manual

Post 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

Bollocks
Met Resolume in a bar the other day
Posts: 2
Joined: Mon Mar 22, 2010 23:52

Re: OSC manual

Post 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

Romuald
Met Resolume in a bar the other day
Posts: 1
Joined: Mon Jun 07, 2010 09:08

Re: OSC manual

Post 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;   
  }

}


User avatar
NCoghlan
Met Resolume in a bar the other day
Posts: 4
Joined: Tue Aug 24, 2010 17:38
Location: Camden, London

Re: OSC manual

Post 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

User avatar
NCoghlan
Met Resolume in a bar the other day
Posts: 4
Joined: Tue Aug 24, 2010 17:38
Location: Camden, London

Re: OSC manual

Post 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.

Post Reply