Page 1 of 1

Problem with OSC disconnectall + connect

Posted: Tue Aug 05, 2014 16:15
by 0x80
I am running into a problem with osc connect message in combination with disconnectall.

I made a cue system where every cue is mapped to a list of osc messages being sent to resolume. These messages start clips in certain slots. Sometimes, from one cue to the other, besides triggering new clips the currently playing clips need to stop.

This is an example of a cue stopping all currently playing and starting two:

/composition/disconnectall 1
/layer1/clip4/connect 1
/layer4/clip4/connect 1

The problem with this is it doesn't work as you would expect. There seems to be something weird going on with disconnectall. It only works if you send it last:

/layer1/clip4/connect 1
/layer4/clip4/connect 1
/composition/disconnectall 1

Or put a delay in between:

/composition/disconnectall 1
...wait
/layer1/clip4/connect 1
/layer4/clip4/connect 1

:? That doesn't seem right.... right?

A second problem I'm experiencing, and it appears to be related, is that "connect 1" is not the same as triggering a slot with the mouse. When the targeted layer has no transition effect (T=0), the message seems to behave pretty much in the same way as clicking: the clip starts playing at position 0.

This also works in combination with disconnectall (although still you have to send disconnectall after connect):

with T=0 :
/layer1/clip4/connect 1
/composition/disconnectall 1
-> all clips stop playing
-> clip 4 triggers from position 0

My problem is that this doesn't work if you have a transition time set:

with T=0.5 :
/layer1/clip4/connect 1
/composition/disconnectall 1
-> all clips start fading out
-> clip 4 is not affected, it keeps playing at its current position

But without disconnect all it behaves the same as clicking:

with T=0.5:
/layer1/clip4/connect 1
-> clip 4 triggers from position 0

During rehearsals or setting up I often want to jump back to a cue even if it was the most recent, but this behavior means I can't trigger the same cue twice and get all the clips to start at position 0.

My workaround now is to first trigger a disconnectall separately, then wait for all the transition times to pass, and then trigger the cue again. This is of course doable, but if the above behaviour doesn't have a reasoning behind it it would be very nice to have it fixed. I would think "connect 1" should always triggers a clip consistently on the start of its playback setting, and in the same way as clicking on the slot.

Re: Problem with OSC disconnectall + connect

Posted: Tue Aug 05, 2014 17:56
by Oaktown
0x80 wrote:/composition/disconnectall 1
/layer1/clip4/connect 1
/layer4/clip4/connect 1
Try:

/layer1/clip4/connect 0
/layer4/clip4/connect 0

then:

/composition/disconnectall 1
/layer1/clip4/connect 1
/layer4/clip4/connect 1

Re: Problem with OSC disconnectall + connect

Posted: Tue Aug 05, 2014 20:34
by Zoltán
why don't you trigger columns instead?
all emply slots on layers will stop playing clips on their layer, and the clips in the column will start playing.

with one osc message, just like clicking in resolume.

if you send disconnect all it acts as you would trigger an empty column, with transitions and all, and if transition time > 0 you should wait with clip connect until transitions are finished.

Re: Problem with OSC disconnectall + connect

Posted: Wed Aug 06, 2014 12:13
by 0x80
Try:

/layer1/clip4/connect 0
/layer4/clip4/connect 0

then:

/composition/disconnectall 1
/layer1/clip4/connect 1
/layer4/clip4/connect 1
I don't understand what the point is of disconnectall if I still have to keep track of all playing clips and disconnect them each individually? Besides that, connect 0 doesn't seem to be a valid message.
why don't you trigger columns instead?
all emply slots on layers will stop playing clips on their layer, and the clips in the column will start playing.
That would be quite convenient yes, but unfortunately that doesn't cut it in my case. For example I have a clip playing in column 1 that lasts 2 minutes. After 30sec another layer needs to start on top of that. If I put the second clip in column2 it will stop de first one. If I duplicate the first clip to the second slot the column trigger will cause it to start from position 0 again.

I was thinking about this earlier, and was planning to file a feature request for this, because this could work if we had something similar to Ableton's "legato" trigger mode; if you trigger a slot with the same clip as is already playing, it will continue to play the clip at the current location. This would allow you to span the playback of a clip over multiple columns.

We already have the "continue" play mode, but the legato mode would have to be more clever in that it detects that the previous clip was the same file as the new one and then inherits the playback position from the previous clip, or something similar.

But, I think I've found a solution to my problem. Just need to do some more tests...

Re: Problem with OSC disconnectall + connect

Posted: Wed Aug 06, 2014 12:30
by 0x80
Yes got it!

So basically I was after the same behaviour as clicking on a slot. It turns out that sending "connect 1" twice for the same clip results in that.

To pick up on my last example:
with T=0 :
/layer1/clip4/connect 1
/composition/disconnectall 1
-> all clips stop playing
-> clip 4 triggers from position 0

My problem is that this doesn't work if you have a transition time set:

with T=0.5 :
/layer1/clip4/connect 1
/composition/disconnectall 1
-> all clips start fading out
-> clip 4 is not affected, it keeps playing at its current position
The solution is:

with T=0.5 :
/layer1/clip4/connect 1
/layer1/clip4/connect 1
/composition/disconnectall 1
-> all clips start fading out
-> clip 4 triggers from position 0

Clip 4 gets the transition applied too.

Sweet! :)

Still I believe there is a bug in the disconnectall implementation, or I am very curious to hear why it needs to be sent last. Just to be clear:

with T=any :
/composition/disconnectall 1
/layer1/clip4/connect 1
(/layer1/clip4/connect 1)
-> all clips start fading out
-> ... nothing plays

Re: Problem with OSC disconnectall + connect

Posted: Wed Aug 06, 2014 12:49
by Zoltán
0x80 wrote:
That would be quite convenient yes, but unfortunately that doesn't cut it in my case. For example I have a clip playing in column 1 that lasts 2 minutes. After 30sec another layer needs to start on top of that. If I put the second clip in column2 it will stop de first one. If I duplicate the first clip to the second slot the column trigger will cause it to start from position 0 again.
right click on column 2 layer 1 slot select ignore column trigger, voila.

Re: Problem with OSC disconnectall + connect

Posted: Wed Aug 06, 2014 13:44
by 0x80
right click on column 2 layer 1 slot select ignore column trigger, voila.
I read about this featured but never realized it also applies to empty slots :oops: This saves me quite a bit of hassle having to look up what clips to starts on every cue. Thanks for waking me up :)

Re: Problem with OSC disconnectall + connect

Posted: Thu Aug 07, 2014 09:27
by Zoltán
you're welcome.

if you want to save you some time check out the link in my signature.
you open the composition file in thie little program, and you only need to hit enter to cue thru your show,
with automatic transition time adjustment, bpm setting and more.

Re: Problem with OSC disconnectall + connect

Posted: Fri Aug 08, 2014 10:36
by 0x80
Thanks but Windows is not an option for me, and I already have the system set up. My cues are triggered from Ableton Live and mapped to OSC in Max.

Cheers