Is just a question of Time... Stop watch and his friends, Again.

caroline_'s picture

Hello, My name is Caroline, I'm a 24 girl who living in Brussels (Belgium). I'm a brand new user of Quartz, it's my first job like video designer for theater.

My job is to live-record an actor on bluescreen, and then incrust him on several videos to do a sort of live movie.

For now, I have a composition with a lot of macro patch who contains the videos and a multiplexer triggered. Here is my question: How can I said to my macros "Hey! Don't play in the same time! You can start only when the index number is yours, and when I'm over with you, reset your movie start :)" I'm fighting with it for one day and night, i'm so fucking tired and frustrated. I'm close, but i have all the time one second off the movie before it reset.

Of course I've read of lot of posts, and I'm playing with patch time and stop watch. But I'm loosing war. I'm very sorry for this simple question who has asked since 3 years, but I learn and it's not easy :)

thank you in advance, appologize for my english

caroline.

caroline_'s picture
Re: Is just a question of Time... Stop watch and his ...

Oups my qtz file wasn't accepted...

jean_pierre's picture
Re: Is just a question of Time... Stop watch and his ...

hi caroline and welcome - i'm not sure what patch you are using to playback the video, but i gave it a quick look using the great v002 Movie Player plug-in (bit quirky in beta4), and i see exactly what you mean - the source index changes on the multiplexer and the image coming out of the video player is no longer pulled by the multiplexer and the conditional you'd likely use to start/stop playback is never reevaluated. to work around this i used a simple logical OR on the player image outputs and piped that into the enabled state of my billboard and now the video players are reevaluated and stopped when appropriate. additionally i added a pulse when playback begins to start playback at the beginning of the movie and the plugin has its own means to loop, so that might do the trick -- see the attached image below.

PreviewAttachmentSize
mixer-flow.png
mixer-flow.png165.36 KB

caroline_'s picture
Thanks !

Yeah, thank you so much :) I used the basic movie player. This one spare me of lot of time. I'm not sure to understand how works the OR, but it works. And so, if I have 75 videos, should I do like this (for the OR) ?

Thank for your quickly help Have a good day !

PreviewAttachmentSize
Or.png
Or.png330.47 KB

jean_pierre's picture
another option

if i understand properly how quartz composer evaluates its graph, it works from the outputs backwards and pulls only the values that are contributing to an active output. with the multiplexed video players, the multiplexer finds its index and just stops pulling on the previously playing video player, and in turn the conditional that would otherwise stop the player's playback does not get evaluated. using a logical OR on the outputs forces the players to reevaluate their inputs and give them a chance to stop playback when no longer used.

another idea might be to use a string multiplexer of file urls pointing to movies paired to a single movie player patch, that might prove to be easier to manage and you wouldn't need the logical OR any longer.

caroline_'s picture
Re: another option

Ok, now I understand, thanks for the explanation. I'm not sure that I can regroup my videos because every video has his own transformation with the live input... I will check this option for the next project, hope so.

One more time, Thank you Jean Pierre for your help.

gtoledo3's picture
Re: another option

jean_pierre wrote:
if i understand properly how quartz composer evaluates its graph, it works from the outputs backwards and pulls only the values that are contributing to an active output. with the multiplexed video players, the multiplexer finds its index and just stops pulling on the previously playing video player, and in turn the conditional that would otherwise stop the player's playback does not get evaluated. using a logical OR on the outputs forces the players to reevaluate their inputs and give them a chance to stop playback when no longer used.

another idea might be to use a string multiplexer of file urls pointing to movies paired to a single movie player patch, that might prove to be easier to manage and you wouldn't need the logical OR any longer.

Evaluation starts with the enable of a consumer. This is somewhat analogous to a bang.

After the enable is checked, if true, all input ports of the consumer are evaluated. If the input port is connected to the output of another patch, the graph continues to execute upstream. The consumer is requesting the value for it's port, and since it's connected via noodle, a patch upstream must now execute to provide the consumer the needed result.

That patch's input ports evaluate in a similar manner. If there is a value at the port, it's used; if there is a connection, the next patch upstream is called upon.

This is probably a healthier way to envision the execution.

gtoledo3's picture
Re: Is just a question of Time... Stop watch and his ...

The OR shouldn't really be needed, but I don't really use that particular movie patch, so I say that with that caveat.

If there's no image, there isn't anything to evaluate in that graph, you're incurring the evaluation of more nodes than necessary.

If when the movie patch has no file path/delivers no image, it does no work (and doesn't hang on to anything, or do anything funky), and nothing will evaluate. Look to see if there's an N/A in the viewer bottom corner when there's no file, and if so (as should be expected), get rid of the OR stuff.

caroline_'s picture
Re: Is just a question of Time... Stop watch and his ...

Ok, after reading 4 times your post, I understand the way it works. (It's not easy to understand a new language explain in an another language :D) But I get it.

I just don't understand what you mean with the "no image deliver". Are you talking about my macro BLACK (constant color)? I set several to do transition between shots. If this is the case, yes this macro returns N/A, but all the others movie players return video... So if I understand you properly, I must set an OR for the patches who contain movie, and not for the others who return no image.

Or there is an other way to do this better? Like disable/enable my billboard (with I-don't-know-wich-tricks) after every single video, or everytime I trigger ?

Thanks for your time.

jersmi's picture
Re: Is just a question of Time... Stop watch and his ...

Hi Caroline. Here's a suggestion for a different method -- from your post it seems possible to use only one movie player patch. For example, change only the movie file path name (movie source) to change movies. Maybe try a string multiplexer for this. Then connect a watcher after the multiplexer to get a trigger each time the multiplexer changes. Connect the watcher to reset, for example.

With the same idea of changing path names, you can also use the Directory Scanner to scan a folder of movies and output file names as a structure. I use this method a lot.

caroline_'s picture
Re: Is just a question of Time... Stop watch and his ...

Hi Jersmi. In fact this way sounds easier... But I'm not sure that works for my case. In my macro patch video I play with ChromakeyFilter, who must be connect to a background. Unless I edit de background input and connect him to the video player. BUT, for every video I must have a different live video patch (because the lights change, I play with scale, position etc,...)AND I must do some transitions like fade to black between the videos. Mmmh... I'll think about all night long.

:) Thanks for the tricks !

PreviewAttachmentSize
Root.png
Root.png283.68 KB
MacroVideo.png
MacroVideo.png175.99 KB

caroline_'s picture
Dissolve

Hi, I missed you :)

So today I try to resolve the case "Dissolve & Fade out / in". I have a beginning of a solution, but something goes wrong.

I play with the dissolve patch, to make a crossfade at first and then I can make easier a fade in fade out later. My principal problem was to triggered the fade with my system to trigger the switching video. So I set my output dissolve in the source#2 and add a contiditional (first value is equal 2).

It works (almost), but when I trigger to activate my dissolve the VIDEO1 stops and begin de crossfade while the VIDEO2 is running, I don't want the video1 stops. The other problem with this solution is that I can't return to my VIDEO2.

I must mostly do (a lots of) fade out to black and fade in, but I have also one crossfade to excute.

Do you see an another solution ?

Have a great night/day it depends.

PreviewAttachmentSize
Dissolve.png
Dissolve.png213.74 KB

dimitri's picture
Re: Is just a question of Time... Stop watch and his ...

Thought i'd throw in another solution. There seems to be two problems with what you want to do:

First, linking the reset and enable ports on both patches prevents the movie from resetting. It eventually resets once the consumer is triggered. Launching a movie displays first the last frame it was stopped at, then resets to the beginning of the file.

This leads to a transition, or delaying the billboard onscreen display - it could play a few frames at 1% of its opacity and size for example, hidden somewhere in a corner of the monitor.

Second, i've tried to switch the input port on the same movie player but it gives me one black frame between movies. I don't know if it's linked to the fact that my computer is rather old (Macbook pro 2008).

So i tried transitionning and it works somehow. Here's a 4 movies switcher, could be hard coded to as many as you want. Or transformed to a modular tool by pingponging 2 players to 2 cross-fading billboards.

This solution seems not to be perfect: when you launch the movie for the first time, a delay occurs - fade in is late if your transition is short. Although the files i tried are compressed to Motion JPG, I don't have an SSD drive. Or is there another way to preload the files? RAM disk?

I'm interested in your feedback! in english, en français, auf deutsch, e anche italiano.

PreviewAttachmentSize
QC_Selector_04_Multiplayer.qtz95.52 KB

caroline_'s picture
Re: Is just a question of Time... Stop watch and his ...

Hi Dimitri ! Thank you for your composition. For instance I must work on the video content, I'll take a look tonight. I'll let you know :) have a great day !

caroline_'s picture
Re: Is just a question of Time... Stop watch and his ...

Hey ! I have finally the time to look at my quartz's problem. I understand your composition, basically. I just don't get it all your Mathematical Expression Patches and the way you do your fades. I didn't even known QC last week, and I don't really have a logical brain, so it's a little bit hard for me ;)

So, I have a problem with what you offer me. I need to put my movie player in an Asynchronous Mode (because I work with sound too), and I would like to use the v002 Movie Player (for Loops Palindrome etc). So there isn't no Patch time input. Where must I connect the Stop Watch?

Now, I will try to combine our two compositions, wish me luck :)

caroline_'s picture
Re: Is just a question of Time... Stop watch and his ...

After one day, I finally understand your fade and the mathematical expression, victory ! :).

I have an another problem with your composition, the fade is in and out. Sometimes I must do cut in, and fade out. So I suppose I need two values, and that the fade can't be connect to the Stop Signal...

Haaaaa, I'm desperate, tommorow my system must work for the rehearsals. I just don't know what to do.

help :'(

dimitri's picture
Re: Is just a question of Time... Stop watch and his ...

Yes, there might more than this depending on your actual case. Maybe you should attach your comp?

caroline_'s picture
Re: Is just a question of Time... Stop watch and his ...

Hi Dimitri, I've tried to post my comps but it didn't work, hope this time it will be ok...

I erase my fade patch because it doesn't work. Anyway, I think my comp isn't great, at VIDEO 4 (who contains sound), it lag. And I must have approximately 60 video with sound + Live Camera Input.

So to be clear, in this composition, I have to switch between video&livecapture with a trigger, use sound, can use a loop no loop or palindrome, have to fade in, or fade out, or cut, or crossfade, and use alpha mask (but it's an another thing). All my video are compressed in PhotoJPEG and weigh between 10 and 120 Mo. Ho and I work on a MBP 2.8GHz Intel Core2 Duo, 4Go Ram.

Am I suicidal ?

PreviewAttachmentSize
QC_Vision_1_movieswitcher.qtz51.25 KB

caroline_'s picture
Re: Is just a question of Time... Stop watch and his ...

Just in case, forget it... I return on Isadora. Too much complicated, not enough time...

Thank you all for your help :)

dimitri's picture
Re: Is just a question of Time... Stop watch and his ...

It looks like your best option would be using VDMX for sources and real time control. you could then integrate your own filters/audio reactive compositions written with QC. Possibly driven by a cue software using OSC messages.

This would give you a solid mainframe, and an open environement in which you can add your own patches.

Machine performance won't be an issue.