Sync node

Is this node available only in alpha?
I’ve implemented video sync routine in similar way lately and just stumbled upon the node.

Does it allow desync up to 1 sec? o.O

var doSeek = Math.Abs(streamDiff) > 1;

for now only in alpha builds, yes. as announced here: boygroup-time-and-filestream-synchronization

I see. But why 1 sec desync time?
And seems to be no Speed changing support.

hello, this is just to jump into the right time zone when you start up or load another video. it has nothing to do with the actual sync technique, which has a precision below 1ms. and its not based on speed change, but directly manipulating the direct show reference clock.

Where’s the code which does the actual sync? In the new FileStream? Is it in the git repo? Can’t seem to find it )8

the value which is assigned to FAdjustTimeOut is the actual time in a special directshow time base which is 100ns i think.

FAdjustTimeOut0 = FStreamDiffFilter.Value * 50;

the FStreamDiffFilter is a IIR filter over the drift of the server vs. client stream time. open the new FileStream module in the alpha build to see how its used.

Hello dear Forum

I have a question regarding the use of the sync node.
As said in video synchronization it should be possible to sync videos also without boygrouping, basically thanks to the sync node.
Though I don´t want to sync a video, but I wan´t to sync a clock (actually a LFO) And since Clock (Network Boygroup) only works in a boygroup setup, I guess Sync would do the job, right?

The way I use it right now is that I substract the Offset (the difference from the clients internal seek position and the servers seek position?) from the Seek Position (the local seek position?). Is that correct? I assume so, at least the Result on the Clients is pretty much in sync.
I further don´t understand the_Stream Offset_ pin. What does it do?

Thanks a lot for your help

right, until now the Offset was the clock offset between server and client and the Stream Offset is the offset between the values you put into the node (the ones you want to syn).

today i made a slight modification, so now the Stream Offset will give you the filtered offset between the time you put in on the server and the one on the client.

so to sync any time value on a client you put the time into the sync node as it was and then add the Stream Offset to it, to get a synchronized value.

please try with the latest alpha, hope it works for you now.

From what I have seen it worked quite well. realy amazing work. This is how I used the node (on the server) in order to play an imagestack.

Though I haven´t made any long-term testing yet(actually I plan it for tonight), neither I made a proper test setup in order to check the exact frame-syncronicity… I guess it will work great :)

another question:
I cannot use the Clock (Network Boygroup) in order to sync a clock in a network setup (not in a boygroup setup), right? Wouldn´t it make sense to have a clock node which can sync a clock from a server to the clients (maybee even spreadable?) in a “normal” network setup as well as in a boygroup setup?

yes, i guess it would make sense, but right now is the clock node just an access to the internal vvvv clock. means there is no code in it, it just passes the clock to the pin, which will be synchronized in a boygroup setup autmagically.

but i keept it in mind… next version maybe. but for now your patch looks correct. i hope it has sufficient precision for your purpose. otherwise nag me again…

hello tf
just for the record (though its not alpha anymore), all the clients stay synchronized on each frame. also over a timespan of several hours.

good news! it would make a nice module…

Do you have an example patch?
And what does it mean to have a non-boygrouped network setup? Just sending packets to other nodes? Why use that if you got boygroup?

yes, if you don’t have any particular reason to take care of network connections yourself, just use boygroup and be happy…