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: 512
Joined: Mon Apr 04, 2005 03:33
Location: San Francisco, California

Re: OSC manual

Post by gpvillamil »

Any way to control the BPM clock on Resolume 3 via OSC?

I making a Max patch for sequencing, and it would be nice to be able to use OSC to sync the BPM, instead of using MIDI for that function.

I am also making a simple multiband analyzer, that analyzes incoming audio for a frequency band that you specify, and then sends it out as an OSC command mapped to whatever parameter you like.

edwin
Team Resolume
Posts: 1144
Joined: Thu Oct 07, 2004 10:40

Re: OSC manual

Post by edwin »

You can control the BPM (playback controller) like this.
/playbackcontroller/bpm/ f
the first and only argument is the BPM you want to set.
You can also tap, resync and pause by using this:
/playbackcontroller/tap/ i
/playbackcontroller/resync/ i
/playbackcontroller/paused/ i


There is an undocumented feature that enables you to send OSC messages from the mapping panel.
This way you can quickly find out what messages you'll need to send to specific objects.
1. Shutdown Resolume if running
2.Open the 'config.xml' file in 'My Documents\Resolume Avenue 3\preferences\' and look for the OSC section.
3. Change the section:
<send enabled="0" .. to <send enabled="1"
4. Change the port and adress to whatever is appropiate for your setup.

5. Startup Resolume, enter Composition mapping en click a highlighted element.
In the mapping panel you will see the OSC path and a button called 'Send OSC', press the button and a OSC message will be send to the port and adress specified in the Config.xml file.

Hope this is of any use.

User avatar
gpvillamil
Wants to marry Resolume, and Resolume said "yes!"
Posts: 512
Joined: Mon Apr 04, 2005 03:33
Location: San Francisco, California

Re: OSC manual

Post by gpvillamil »

Aha, this is very helpful.

Using OSC for the BPM clock is really, really rock steady.

And the mapping feature *really* makes my life easier. Right now, if I want to map a given FFT band to multiple parameters, I have to put a list of them in a text field in Max. With the feature you've just described, I just put the patch in "learn" mode, and then send it a list of mappings from Resolume, by using Send Osc.

And even better - the dashboard controls are linkable! So I can drive a dashboard knob with an LFO from Max, and then link a number of different parameters to it.

edwin
Team Resolume
Posts: 1144
Joined: Thu Oct 07, 2004 10:40

Re: OSC manual

Post by edwin »

Ahh, finally someone that understands the power of OSC. Wicked stuff ain't it, almost everything is controllable via OSC in Avenue.
You also have complete control over the play direction for example
/layer1/clip1/position/direction i (0 = forwards, 1 = backwards, 2 = random, 3 = pause)
or control the beatlooper
/layer1/clip1/beatloop i (-1 = off, 0 = 4 beats, 1 = beats, 2 = 1 beat ...)

Just noticed that you can't set the cuepoints with OSC, well only the first one, is another thing for the todo list :-)

User avatar
gpvillamil
Wants to marry Resolume, and Resolume said "yes!"
Posts: 512
Joined: Mon Apr 04, 2005 03:33
Location: San Francisco, California

Re: OSC manual

Post by gpvillamil »

A couple of tiny hiccups:

1) The Send OSC button obscures the beginning of the OSC message (by about 3 characters)

2) The OSC message doesn't send the layer or clip number [edit] not true, it works fine!

It actually does send the complete, fully formed OSC command! It is the hint in the mapping window that is not complete.

However, when trying to set the opacity of a layer, what I get from Resolume is:

/layer1/video/opacity/values 0. 1. 1.

What I send it (and works) is:

/layer1/video/opacity/values 0.5 (or whatever)

What are the three values for?

User avatar
gpvillamil
Wants to marry Resolume, and Resolume said "yes!"
Posts: 512
Joined: Mon Apr 04, 2005 03:33
Location: San Francisco, California

Re: OSC manual

Post by gpvillamil »

Also, I notice that when sending straight-up OSC commands from Max/MSP, it doesn't work.

I have to disable "bundles" in the Resolume OSC preferences for it to work.

[Edit] If I use CNMAT's OpenSoundControl external for Max, then Resolume's "bundle" setting has to be on. If I just send the OSC messages straight out through udpsend, "bundle" has to be off.

Given what I know of the CNMAT implementation, I suspect that having "bundle" on is more robust.
Last edited by gpvillamil on Fri Jun 26, 2009 02:51, edited 1 time in total.

User avatar
gpvillamil
Wants to marry Resolume, and Resolume said "yes!"
Posts: 512
Joined: Mon Apr 04, 2005 03:33
Location: San Francisco, California

Re: OSC manual

Post by gpvillamil »

edwin wrote:You can control the BPM (playback controller) like this.
/playbackcontroller/bpm/ f
the first and only argument is the BPM you want to set.
Doesn't seem to be working for me - I'm sending it:

/playbackcontroller/bpm/ 135.

And it just jumps straight to 500 BPM in Resolume, regardless of the value I send.

Send OSC from Resolume gives me:

/playbackcontroller/bpm/ 0.004016 1.004016 1.004016

The tap based method sort of works. Sending:

/playbackcontroller/tap/ 1

on a timer works, but in a peculiar way. If I send 3 timed taps, the BPM in Resolume is set pretty precisely. However, if I send taps continuously, the BPM never actually converges on the BPM I'm sending. However, if I puase and then send 3 taps, the BPM locks in very precisely. It seems like Resolume needs a bit of a break between taps?

Not quite sure what means.

edwin
Team Resolume
Posts: 1144
Joined: Thu Oct 07, 2004 10:40

Re: OSC manual

Post by edwin »

gpvillamil wrote:2) The OSC message doesn't send the layer or clip number [edit] not true, it works fine!
It actually does send the complete, fully formed OSC command! It is the hint in the mapping window that is not complete.
However, when trying to set the opacity of a layer, what I get from Resolume is:
layer1/video/opacity/values 0. 1. 1.
Yes the hint in the mapping window misses the correct numbers, i will fix this.
Yes you get three arguments, you can choose to send one or three values. If you send only one number you control the current value, if you use three you can also specify the start and stop value (in out point).
So format is (inPoint currentValue outPoint)
gpvillamil wrote:I have to disable "bundles" in the Resolume OSC preferences for it to work.
OSC can be send message by message or the sender can send a bundle containing as many messages as he/she likes. Bundles cause much less overhead. It's a common thing to have a checkbox that enables bundles or not. I could however probably figure out what Resolume is receiving automagically. But i leave it like it is for now.
gpvillamil wrote:Doesn't seem to be working for me - I'm sending it:
/playbackcontroller/bpm/ 135.
And it just jumps straight to 500 BPM in Resolume, regardless of the value I send.
To keep it simple i made it like so that all OSC values are in range 0 to 1.
For BPM the actual range is from 2 to 500, so you will have to convert your BPM to the normalized range.

User avatar
gpvillamil
Wants to marry Resolume, and Resolume said "yes!"
Posts: 512
Joined: Mon Apr 04, 2005 03:33
Location: San Francisco, California

Re: OSC manual

Post by gpvillamil »

edwin wrote:Yes the hint in the mapping window misses the correct numbers, i will fix this.
Yes you get three arguments, you can choose to send one or three values. If you send only one number you control the current value, if you use three you can also specify the start and stop value (in out point).
So format is (inPoint currentValue outPoint)
Hmmm - so I guess this is especially useful when the parameter is animated, since you can specify the range?

Otherwise, if you're just updating the value sending, say, 0.5 is the same as sending 0.0 0.5 1.0?

The BPM does work, very smoothly, thanks!
Last edited by gpvillamil on Fri Jun 26, 2009 11:57, edited 1 time in total.

User avatar
gpvillamil
Wants to marry Resolume, and Resolume said "yes!"
Posts: 512
Joined: Mon Apr 04, 2005 03:33
Location: San Francisco, California

Re: OSC manual

Post by gpvillamil »

edwin wrote: OSC can be send message by message or the sender can send a bundle containing as many messages as he/she likes. Bundles cause much less overhead. It's a common thing to have a checkbox that enables bundles or not. I could however probably figure out what Resolume is receiving automagically. But i leave it like it is for now.
I get it... no need to change it. Patch is working fine. Using bundles with Max requires a (free) external object, whereas without, you can just send messages out the UDP port. However, as you say, bundles are definitely the way to go.

Post Reply