The future of OSC in Resolume

FFGL, OSC, GLSL. If you like abbreviations, this is the forum for you
Rene
Is seriously in love with Resolume. Met the parents and everything
Posts: 388
Joined: Wed Jun 20, 2007 11:53
Location: Vienna, Austria

Re: fold/unfold effects via OSC

Post by Rene »

I just realized that absolute addressing of layers by name or ID would be useful too.

For example if you want to address a specific layer (e.g. layer7 which contains effects only). If you add another video layer, the OCS mapping would be broken, as layer7 is now layer8.

Also I think the concept of linking layers to decks vs. linking layers to compositions matters in this case.
Imagine you have an effect layer at layer7 in deckA, but in deckB the layer is empty or contains something else... what to do?
I also still think layer names should belong to decks and not to the composition. On the other hand I totally understand the way it works now and like it's simplicity.
Maybe some kind of per deck expert mode (very well hidden) which offers the composition controls on a deck bases (e.g. solo/bypass/eject buttons, transitions, opacity, etc.)

So many questions, which have nothing to do with the initial topic. Sorry about that!

sleepytom
Hasn't felt like this about software in a long time
Posts: 236
Joined: Fri Sep 12, 2008 11:11
Location: sussex by the sea

Re: fold/unfold effects via OSC

Post by sleepytom »

Rene wrote:
sleepytom wrote: ... you have no way of even knowing if the clip is in timeline or BMP mode.
At least for the active clip: /activeclip/video/tempo/timelinemode
So you've not tried to do this yet then? /activeclip/video/tempo/timelinemode doesn't output when you select a new clip, actually it never outputs AFAIK its one of the in-only commands (this was the case at 4.6 anyway, i've not bothered with 4.7 yet due to other users reports of stability issues)
The fact that there are different timeline OSC messages for audio and video, and that a/v clips are treated as audio clips confuses me much more.
/activeclip/audio/position/values vs.
/activeclip/video/position/values
Yes thats stupid isn't it? Even more stupid is that timeline position is output as a 0-1 float, and clip length isn't output at all so you cannot create an interface which displays meaningful position information (eg how many seconds we are from reaching the end of the clip) If we could get a status of clip length in MS then we could do some basic maths to give us our played/ remaining durations.
For me also getting names of clips is very important - as this is the only way to get an idea what's behind a button (without looking at the R4 UI), there are no preview pictures or anything else on the OSC controller. Especially for effect clips and FFGL sources, I'd like to get the given names, instead of "Effect Clip" or "Gradient".
+1 - Names are clearly broken at the moment - obviously the name should represent the label as given in the GUI not some arbitrary hard coded name. I'd file this in the same area as generators (eg solid colour) should update their thumbnails (probably only need to do this once a second, but it would be a huge improvement over looking at an interface of red squares which have labels such as GREEN, BLUE, ORANGE written under them which when you look at the osc all output their name as "Solid"

joris wrote: However, the current implementation is the only way that makes sense across the board. Every OSC address is the exact counterpart of physically clicking with the mouse. This is the only implementation that maintains consistency for each and every item of the interface.

Except that it doesn't, as when you get down to it loads of the functions do not quite match up (see clip names for one and timeline status for another example). It also make the rather strange assumption that OSC and clicking with a mouse should be similar experiences. Getting the OSC to provide the same functionality that the GUI provides is kind of pointless, we already have the GUI for doing things in the way the gui works.
joris wrote: So in fact, multiple clips can be connected within a single layer. Even when we take targetting/addressing out of the equation, every time you use a transition, you are very much connecting two clips in the same layer, something which the current system can reflect and take into account.
Hmm, well from the users perspective then a transition may appear to be 2 clips playing in a single layer, but as we know a bit about openGL and the under the hood design of resolume we know that this isn't actually the case (presumably another GL surface is spawned for the next clip to be in, when the "transition" happens the old surface is faded through to the new surface - ie each layer is actually 2 media players)
joris wrote: OSC is an open protocol, so we're sort of treading virgin ground here. There are multiple outside of the box improvements that can make things simpler (polling a state for instance, /activeclip/playmode/getstatus/). Changing a single address pattern to cover one issue is not a good idea for improvement, I'm afraid.

Perhaps it's a better idea to outline the actual situation you are having problems with, so we know what to improve.

I would very much like to come and show you (and Bart + Edwin) the problems which I'm having, and the kind of tasks that I'm trying to achieve with OSC. It would be a useful and productive conversation to have face to face, in a way which the internet will never be able to replicate.

I have a lot of comments to add on this topic, but I'm not going to get into a pointless argument, we need to sit down and look at the current stuff for you to be able to understand the problems i'm having. As i have said to Edwin i'm more than happy to come and show you guys the issues i'm facing and put money into the development of the solution.

Rene
Is seriously in love with Resolume. Met the parents and everything
Posts: 388
Joined: Wed Jun 20, 2007 11:53
Location: Vienna, Austria

Re: fold/unfold effects via OSC

Post by Rene »

sleepytom wrote:
Rene wrote:
sleepytom wrote: ... you have no way of even knowing if the clip is in timeline or BMP mode.
At least for the active clip: /activeclip/video/tempo/timelinemode
So you've not tried to do this yet then? /activeclip/video/tempo/timelinemode doesn't output when you select a new clip, actually it never outputs AFAIK its one of the in-only commands (this was the case at 4.6 anyway, i've not bothered with 4.7 yet due to other users reports of stability issues)
When you select a new clip it does not update, that's unfortunately true. But it does (at least for me) send out changes in case you change the timeline mode in the R4 UI. (just tested in 4.1.3, 4.1.4, 4.1.6, and 4.1.7)
sleepytom wrote:
joris wrote: However, the current implementation is the only way that makes sense across the board. Every OSC address is the exact counterpart of physically clicking with the mouse. This is the only implementation that maintains consistency for each and every item of the interface.

Except that it doesn't, as when you get down to it loads of the functions do not quite match up (see clip names for one and timeline status for another example). It also make the rather strange assumption that OSC and clicking with a mouse should be similar experiences. Getting the OSC to provide the same functionality that the GUI provides is kind of pointless, we already have the GUI for doing things in the way the gui works.
Totally agree, OSC should not be seen as remote mouse cursor to the interface. I think it should be more like an interface to the Resolume core, offering things which cannot be done with the R4 UI.

Joris
Doesn't Know Jack about VJ'ing or Software Development and Mostly Just Gets Coffee for Everyone
Posts: 5185
Joined: Fri May 22, 2009 11:38

Re: fold/unfold effects via OSC

Post by Joris »

Now this is getting interesting.

Resolume is a tool that makes it easy to perform a good show. I think we can agree that the essential element for a good show is showing the right content at the right time, ie clip triggering / controlling opacity of clips. This is why the clip grid and layer opacity are so prominent and easily accessible in the interface.

We always assume that any remote control options (Midi, DMX, OSC) should give easier and more ergonomic access to those features. For instance, we figure the layerX/clipX/connect convention makes it easy to build a clip trigger grid in an app like TouchOSC.

So, let's assume OSC does not allow you to directly control the interface. What would you like to control instead?

@Sleepytom: Cool, come on over. We'd love to hear your thoughts (and hear more about how OpenGl works in our own software ;)). You know where to find us.

sleepytom
Hasn't felt like this about software in a long time
Posts: 236
Joined: Fri Sep 12, 2008 11:11
Location: sussex by the sea

Re: fold/unfold effects via OSC

Post by sleepytom »

The irony of that statement is kind of amusing...

Sure its really easy to add a single button which represents a single clip in the resolume interface using touchOSC or whatever. However lets say you have 5 layers each holding 20 clips. You want to arrange the show so the media is always placed in the layer it will play in, you want your interface to indicate the clips status. To use TouchOSC with resolume you must create 100 separate button each with their own address pattern. You cannot use any of the button groups / radio buttons in touchOSC even though you logically either want a grid or 5 radio button groups. To use resolume for such a show you must create 100 separate buttons and manually give them the correct addresses - programatically creating the addresses is really hard (impossible in touchOSC / Lemur) as they are all strings.

The truth of the matter is that the attempt to map OSC 1:1 with the mouse driven GUI interface is the reason why its so hard to actually do anything serious with the current OSC implementation. There has been little to no consideration of the functionality that touchOSC / Lemur et al provide. (fair play resolume OSC pre-dates many of the controller systems, but the controllers have now evolved considerably where resolume has not. )

Even the "simple" task of building a grid of indicator lights in processing is basically impossible - knowing which of my 100 clips is playing requires me to listen on 100 separate addresses this makes for unwieldy code at best. Clip disconnect messages get dropped as their is too heavy data flow to always catch them.

Anyway moving forwards yes i think it is more productive to analyse what we might want to do with OSC and base the functionality of this, rather than attempt to emulate how the GUI works...

I want to do the following with OSC.

See the names/labels of all my clips as shown in the resolume GUI interface
See the status of each playing clip / layer (name of clip playing, duration of clip, playhead position / time to end, loop mode, follow action of clip) with ability to set commands as well as view status

I'd like effects to return useful information such as their Name, number of parameter with type and range for each parameter. This would allow for adaptive interface design, where rather than 8 faders to control an effect which has 3 parameters we could display the 3 controls needed for the effect (which might be 1 slider and 2 buttons).

I'd like to have control over some stuff which cannot be externally controlled, it would be great to be able to scroll the GUI interface from OSC and too add some kind of border / highlighting on clip slots / effects (like how ableton live works with a lauchpad or APC)

In an ideal world I'd like to be able to snapshot absolutely every parameter of the application, save as a preset for full instant recall, if this could work at the clip and layer level as well then it would be perfect (similar to how hippotiser presets work)


I'm quite seriously interested in coming to see you guys, I could do with a holiday. Is there anywhere sensible i can stay for a couple of nights?

cheers
tom

Joris
Doesn't Know Jack about VJ'ing or Software Development and Mostly Just Gets Coffee for Everyone
Posts: 5185
Joined: Fri May 22, 2009 11:38

Re: fold/unfold effects via OSC

Post by Joris »

Glad we can still amuse you, Tom ;) The point on the ease of use with TouchOSC is well taken ( it still doesn't solve the issue that then Lemur does this differently again, but that's the nature of the beast ).

Thanks for sharing your ideas. They're a good basis to rethink the directions we could take with OSC.

It would be very useful for you to come by, if only to make new friends and say hi to old ones. Now is probably not the time though. Once we've made some more progress with Res 5 we plan to start re-factoring the OSC implementation, as Res 5 will have considerable impact on the interface and control as well. If you just plan on a holiday and a laugh and a beer, you're always welcome.

Anyone else who likes to think big and outside of the current OSC box, feel free to chime in!

Rene
Is seriously in love with Resolume. Met the parents and everything
Posts: 388
Joined: Wed Jun 20, 2007 11:53
Location: Vienna, Austria

Re: fold/unfold effects via OSC

Post by Rene »

Joris, any chance to rename this thread - right now I would not consider this kind of discussions here. I think chances that others participate would be much higher.

Another OSC request: feedback from the BPM controller (or whatever it's called). Things like beats, bars, etc.

Joris
Doesn't Know Jack about VJ'ing or Software Development and Mostly Just Gets Coffee for Everyone
Posts: 5185
Joined: Fri May 22, 2009 11:38

Re: The future of OSC in Resolume

Post by Joris »

Something like this?

Rene
Is seriously in love with Resolume. Met the parents and everything
Posts: 388
Joined: Wed Jun 20, 2007 11:53
Location: Vienna, Austria

Re: The future of OSC in Resolume

Post by Rene »

Best thread title ever! ;)

Zoltán
Team Resolume
Posts: 7088
Joined: Thu Jan 09, 2014 13:08
Location: Székesfehérvár, Hungary

Re: The future of OSC in Resolume

Post by Zoltán »

Is there any osc message that can be sent just to see if the connection between the control application and resolume is still intact?
like a ping?
I would like one :)
Software developer, Sound Engineer,
Control Your show with ”Enter” - multiple Resolume servers at once - SMPTE/MTC column launch
try for free: http://programs.palffyzoltan.hu

Post Reply