Jump to content


Photo

Getting out of a loop at the end of loop


  • Please log in to reply
15 replies to this topic

#1 Michael Scheck

Michael Scheck
  • Member
  • PipPipPip
  • 28 posts
  • LocationLeverkusen, Germany

Posted 30 December 2017 - 07:32 PM

Hi guys, 

has anybody have a solution for this: 

a video-section  plays and goes into a second video wich is a loop. The loop plays until a button is pressed or some kind of trigger is given. Then the loop should play until its end and then go into video section 3. I have done this with blends out of the loop into the following video, but I asked myself (or rather a customer insisted for me to find a sollution) how to do it seamlessly. 

 

Any ideas are welcome...

Michael

 



#2 mindopera

mindopera
  • Member
  • PipPipPip
  • 70 posts
  • LocationSeattle, WA USA

Posted 31 December 2017 - 02:38 AM

In my experience, there is no solution to leave the looping video and enter the next piece of media without using a tween.  Usually the opacity tween.  If you don't dissolve out of the loop it will be a jump cut to the audience.   I usually handle that limitation by designing the video's to look as though they are seamless with a tween in mind, but it all depends on what type of control you have of the original video.

For me, it's using visual techniques to hide the change.

 

Maybe someone knows a trick to get the looping video to end at an exact frame before sending the play-head forward.  I'm always eager to learn something new.



#3 RBeddig

RBeddig

  • Dataton Partner
  • PipPipPip
  • 87 posts
  • LocationBerlin - Germany

Posted 31 December 2017 - 02:15 PM

Hi Michael,

Can be done if you do not need DMX in your show.

Put your looping video into a composition and loop the composition in your timeline.

Create a DMX input and a DMX output with the same name and set DMX in and out to the same universe.

Place the DMX output cue into the composition at the end where you want to start to fade into video 3, or just a fraction before that. The cue just briefly goes from 0 to 100 and then back to 0.

Create a MIDI input if you have a fader box available.

Create an aux timeline with a cue at 0.1 sec. to run the main timeline again and a second cue to kill the aux timeline shortly after that. Set a trigger condition for this aux timeline like this: "dmx>0.9 && midi>0.9"

 

Now run your main timeline from video 1 into video 2 until a pause cue. The composition will loop and at it's end briefly set the DMX value to 100% and back to 0 again. Once you're ready to run video three (after reaching it's end) you just use the fader box and fade the MIDI input to 100%.

 

As soon as your video loop reaches the dmx trigger cue it will restart your main timeline and fade into video 3.

 

I'll send you a watch file to your email address to better understand the concept.

 

Happy New Year



#4 Thomas Leong

Thomas Leong
  • Member
  • PipPipPip
  • 334 posts
  • LocationKuala Lumpur, Malaysia

Posted 31 December 2017 - 02:46 PM

I'd do it with a Pause Cue just before an Opacity Fade Out near the end of the 2nd Video which Properties have been set to Free Running and Loop. If the 2nd Video is in an Aux Timeline, ensure such Aux Timeline is open and active.

 

Put the 3rd Video in an Aux Timeline.

Put a Control Cue to call/run the 3rd Video at the end of the 2nd Video's Fade out.

 

When the time comes, hit the Spacebar to let the 2nd Video fade out, it calls the 3rd Video, and voila! (Note: Won't work with 6.2, until 6.2x)

 

Thomas Leong



#5 RBeddig

RBeddig

  • Dataton Partner
  • PipPipPip
  • 87 posts
  • LocationBerlin - Germany

Posted 01 January 2018 - 04:12 PM

Thomas,

How do you make sure that e.g. the last 50 frames of the loop transition cleanly into the first 50 frames of video 3 if the videos are rendered to transition seamlessly? E.g. when the end of the loop of video 2 is exactly the same as the beginning of video 3.

If I understand your solution right, you would watch your video three until you feel that the loop point is near and then manually trigger the transition into video three.

My solution might be a bit more complex but all you would need to do is to fade the MIDI fader up whenever the show caller calls the next scene and then just wait until video 2 automatically transitions into video 3.

 

/Rainer



#6 Thomas Leong

Thomas Leong
  • Member
  • PipPipPip
  • 334 posts
  • LocationKuala Lumpur, Malaysia

Posted 01 January 2018 - 05:45 PM

Thomas,

How do you make sure that e.g. the last 50 frames of the loop transition cleanly into the first 50 frames of video 3 if the videos are rendered to transition seamlessly? E.g. when the end of the loop of video 2 is exactly the same as the beginning of video 3.

If I understand your solution right, you would watch your video three until you feel that the loop point is near and then manually trigger the transition into video three.

My solution might be a bit more complex but all you would need to do is to fade the MIDI fader up whenever the show caller calls the next scene and then just wait until video 2 automatically transitions into video 3.

 

/Rainer

Rainer,

 

I'd probably use a Timer.mov positioned outside the Displays in the Stage Window to be able to visually see where in the loop Video 2 is. Knowing where my Pause Cue is, and the amount of secs or frames it has to run to transition out, one could estimate when to trigger to make the clean transition. The Timer.mov obviously is created to the duration of Video 2 and set to free run and loop as well.

 

Thomas



#7 Walter Soyka

Walter Soyka
  • Member
  • PipPip
  • 13 posts

Posted 02 January 2018 - 08:26 PM

You could set up your loop with control cues: one that marks the beginning of the loop, and one at the end that jumps playback back to the beginning of the loop. Place the "Loop Back" control cue on a conditional layer, and clear the "Loop Back" condition via an auxiliary timeline.

 

To set conditions via aux timelines, you'll have to add a String Output to control WATCHOUT via TCP/IP or UDP (and enable control of the production PC software if that's how you'll be running it). You can use the "enableLayerCond 1$0D" command to set Condition 1 and "enableLayerCond 0$0D" to clear all conditions.

 

w.



#8 Merten

Merten
  • Member
  • PipPipPip
  • 18 posts

Posted 03 January 2018 - 12:32 AM

Hi Michael,

Can be done if you do not need DMX in your show.

Put your looping video into a composition and loop the composition in your timeline.

Create a DMX input and a DMX output with the same name and set DMX in and out to the same universe.

Place the DMX output cue into the composition at the end where you want to start to fade into video 3, or just a fraction before that. The cue just briefly goes from 0 to 100 and then back to 0.

Create a MIDI input if you have a fader box available.

Create an aux timeline with a cue at 0.1 sec. to run the main timeline again and a second cue to kill the aux timeline shortly after that. Set a trigger condition for this aux timeline like this: "dmx>0.9 && midi>0.9"

 

Now run your main timeline from video 1 into video 2 until a pause cue. The composition will loop and at it's end briefly set the DMX value to 100% and back to 0 again. Once you're ready to run video three (after reaching it's end) you just use the fader box and fade the MIDI input to 100%.

 

As soon as your video loop reaches the dmx trigger cue it will restart your main timeline and fade into video 3.

 

I'll send you a watch file to your email address to better understand the concept.

 

Happy New Year

 

Thanks, Rainer!

Works perfectly. Finally a solution for a very old problem, we used to deal with by just fading over. Honestly, I find that the programming effort relatively high for such a "simple" thing...but it works!

Walter's solution might be a bit easier, also thanks for that!

 

Regards,

Merten



#9 guypriz

guypriz
  • Member
  • PipPip
  • 12 posts

Posted 03 January 2018 - 08:25 AM

Both solutions sounds good for that problem.

Michael,

Could you please send me the file as well?

Thanks,

Guy



#10 RBeddig

RBeddig

  • Dataton Partner
  • PipPipPip
  • 87 posts
  • LocationBerlin - Germany

Posted 04 January 2018 - 10:11 AM

Just a little add-on to the concepts described above. This will work with my concept as well as with Walter's.

 

Instead of using a fader box to "free" the continuation into video three through MIDI or the external Telnet command to enable/disable the loop control cue, you could now also use WATCHNET side-by-side with WATCHMAKER and send a Generic Input value instead of the midi fade value or handle the conditional layer settings for the loop control cue.

 

WATCHNET can now control WATCHMAKER and can run on the same computer, but it needs an extra WATCHOUT dongle of course.

It is also a good way to build a good control interface to run your shows with big buttons, faders etc. while still enabling you to access the project in WATCHMAKER.



#11 Michael Scheck

Michael Scheck
  • Member
  • PipPipPip
  • 28 posts
  • LocationLeverkusen, Germany

Posted 04 January 2018 - 10:12 PM

Hi all, 

thanks to all for your suggestions, it has brought me on a complete new track using multiple conditions/expressions. Thanks to Rainer for the demo he mailed me. Guypriz asked me to send these files, but Rainer, since you created them, I do not want to spread them around, it does not seem appropriate. 

 

With Walters concept I frequently have short dropout when the timeline jumps back in time to the begining of the video, mostly on the first repeat. 

Also with Rainers concept I had a short hickup of the video when the first video goes into the composition with the loop. Inside the comp the video starts at zero. Maybe there is no time for a preload? I got around that problem by putting the same video on top of the composition for 2-3 seconds. 

But maybe my display-machines are too slow? Thought they where pretty good. Well, I don´t want to discuss hardware and tweaks now, that discussion is endless, since there is always something better/faster/nicer. 

 

 

Thomas, you mentioned "(Note: Won't work with 6.2, until 6.2x)". What do you mean exactly? Is there a bug in 6.2 I don´t know about?

 

Regards, Michael



#12 jfk

jfk

     

  • Administrator
  • 1,064 posts
  • LocationCincinnati, Ohio USA

Posted 04 January 2018 - 11:28 PM

I would suggest a variation on conditional looping.

 

Use two auxiliary timelines

and ping-pong between them

using control cues on conditional layers.

With the right timing,

it should be possible to loop seamlessly.

 

Send pause cues to both timelines

before the cue to play one of the twins to start the process.

 

Do not Stop the two auxiliary timelines when one completes its pass.

With control cues, goto its head and pause, to re-cue them

loaded and ready for a clean transition on the the next pass.

i.e. 

Control cues placed near the end of each aux timeline when the clip completes

on the conditional layer  to ...

• play its twin, then

• goto to its own start point and pause, cued for its next pass.

 

After the condition change (i.e. after the last pass runs out)

on both timelines, past the loop active conditional control cues above,

there should be housekeeping control cues NOT on a conditional layer

 that ...

• stops its twin

• stops itself

When the condition is set to "loop active",

 these cues will not be reached.

 

When the condition is set to "loop inactive",

they will run on one of the timelines.

 

If you need to synch the runout to something else,

you would also place that control cue in the runout areas of both aux timelines.



#13 Thomas Leong

Thomas Leong
  • Member
  • PipPipPip
  • 334 posts
  • LocationKuala Lumpur, Malaysia

Posted 05 January 2018 - 10:22 AM

...

Thomas, you mentioned "(Note: Won't work with 6.2, until 6.2x)". What do you mean exactly? Is there a bug in 6.2 I don´t know about?

 

Could be related to the bug posted by Luca, and replied to by Eric Ronnqvist.

My tests of the Looping and Free Running feature were on 5 Production PC machines, ranging from a i5 Laptop with Win 10 (latest updates), to desktops with i7-4770K, i7-4790K, i7-7700, and i7-6800 with either Intel GMA4600 gfx drivers or AMD Pro drivers for W4100 and WX4100. I tested with h264 (mp4), wmv, mpeg2, and mov files.

 

The wmv file (supplied std with Windows 7 Wildlife.wmv) would not even play though the Timeline Preview cursor kept 'playing'.

The h264 files played once fine, but on the loop, more often than not, the audio was silent.

Similar anomaly with the mpeg2 file.

The mov file showed no problem.

So my conclusion is that v6.2 has some bug to work out with Looping and Free Running enabled.

 

Thomas



#14 matkeane

matkeane
  • Member
  • PipPipPip
  • 83 posts
  • LocationParis

Posted 05 January 2018 - 02:16 PM

OK, I'm trying to be positive here, but I apologise in advance if this turns into a rant as I've just spent the day dealing with this and related issues. Can somebody from Dataton please show this thread to the Watchout developers and see if they can come up with a solution to what is a conceptually quite simple problem. The client just wants to transition into a looping animation, then transition seamlessly out again, and they don't want a long explanation of why that's complicated and how we should just avoid it or simplify the animation instead.

 

Like others on this thread, I've tried the various, increasingly convoluted workarounds (DMX commands which trigger MIDI commands which trigger Aux timelines... really?!), but none are particularly satisfactory. A quick opacity tween out of a looping video works as long as the animation is simple enough for it not to show (try using a quick cross-fade from a looping globe animation currently showing the American continent to the exit-animation which starts in Europe and see if anybody thinks that is seamless). Or we can add a cue to a task to jump back to the loop point... and hope that it doesn't flicker - sometimes it works fine, mostly it doesn't and I haven't managed to pin down exactly what the reason is. Conditional Layers actually seem to work the best, but better hope you don't need to manage several conditions simultaneously as there isn't a way to toggle just one condition, you need to set the binary value taking all of the other conditions into account. So a Task which wants to unset a condition needs to know the current state of all the other conditions, and there doesn't seem to be a way to do that within Watchout (OK, there probably is, using an enormous number of tasks evaluating all the possible combinations of layer conditions, but I mean something simple).

 

Maybe I'm abusing layer conditions by using them as boolean variables to track the state of various things in the show. Generic inputs are great, but then they can't be used to enable/disable control cues, so we're stuck messing with layer conditions. So what would be really helpful, would be a new 'set_layer_condition x true/false' command, so that we can just toggle the current value of an individual condition without changing any others. That would already simplify a bunch of stuff, and I could stop writing my helper app just to deal with it.

 

I assume that, somewhere deep in the Watchout code, it's keeping track of each looping media cue and knows when it hits the loop point - it's just not currently exposed to the user at all. Maybe we need a way to get the current state of looping media (0-100%) and, even better, be able to evaluate that in an expression in a control cue. Each time the media reaches the loop point, the pause cue holding the timeline at that media cue would evaluate a condition ('my_generic_input == 1', or 'layer_condition_8 == true') and either stay put and keep looping, or no longer be considered an active 'pause' cue and would allow the timeline to run seamlessly into the exit animation. I dunno, something - anything - other than the current situation would be good! 

 

Don't get me wrong - I'm impressed with the major functions being added to Watchout (Virtual Displays, HAP codec, 3D mapping, NDI support) but it more mundane tasks can still be surprisingly frustrating (which reminds me, I have a bunch more comments to add to the never-ending feature request thread!).



#15 RBeddig

RBeddig

  • Dataton Partner
  • PipPipPip
  • 87 posts
  • LocationBerlin - Germany

Posted 05 January 2018 - 07:28 PM

Our experience is that the crucial point of looping a video in a timeline using control cues is to NOT place the first cue at the real beginning of a media and the loop point NOT at the very end of the file. When the loop point sits right at the end of the file WATCHOUT releases the media and then has to reload it at the beginning again. This does not happen if you loop inside a video cue.

 

I usually place my start cue about half a frame inside the video and start the loop half a frame before the clip reaches it's end. Has always been working for me. With 50/60p content it might make it easier to double the last first/last frame, making it identical.



#16 Thomas Leong

Thomas Leong
  • Member
  • PipPipPip
  • 334 posts
  • LocationKuala Lumpur, Malaysia

Posted 05 January 2018 - 08:42 PM

My two cents:

Perhaps, modifying current features in Watchout to accommodate a seamless loop may not be the way to go as it may likely affect the behavior of current features and need extensive beta testing of all before release.

 

An idea is the addition of a new type of Task, called "Looped Aux Timeline" wherein any media in such Timeline is automatically looped. There is then no Timeline Preview Cursor to pause with a Control Cue and figure out how it affects the loop when re-activated.

The Stop behavior of such "Looped Aux Timeline" is different from the normal Aux Timeline. Activating the Stop of such Timeline does not actually stop it immediately, but is allowed to run to the end of the media contained within before stopping. Obvously, a Control Cue can be used to call another (normal) Aux Timeline when the looped media ends, and before the stop actually occurs; OR the next Aux Timeline in the hierarchy is automatically started when the Looped Aux Timeline stops.

 

Such a "Looped Aux Timeline" can then be tested on its own, hopefully not affecting all the other current features of Watchout.

 

Thomas