[PD] libPd timing issue, seemingly caused by processing multiple 'ticks' of audio blocks.

Roman Haefeli reduzent at gmail.com
Sun Nov 15 09:54:39 CET 2015

On Thu, 2015-11-12 at 09:56 +0800, Chris McCormick wrote:

> The algorithm that SyncJams uses is quite simple:
>   1. All nodes keep their own internal metronome (integer counter).
>   2. All nodes broadcast their metronome counter value every tick.
>   3. If a node ever receives a metronome value that is *higher* and 
> *earlier* that its own metronome, it immediately jumps to the incoming 
> metronome's phase + value. Higher & earlier is treated as always "more 
> correct".
> The effect of this is that all nodes sync to the fastest network ping 
> time that is experienced during a session. So if the network has a 
> general latency of 10ms but some packets sneak through in 3ms then the 
> sync difference will be 3ms. The overall effect is that sync gets 
> tighter over time monte-carlo-asymptotically towards the optimal 
> possible latency given the hardware. It also means there is no 
> master/slave setup and that the metronome that every node is syncing to 
> is the virtual "consensus" metronome that emerges from the network 
> rather than one specific node having the best or most correct clock.
> Each node assumes it is not the best node, and thereby the group 
> benefits during consensus.

Cool design! Thanks for sharing the ideas behind it.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: This is a digitally signed message part
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20151115/761b30ad/attachment-0001.sig>

More information about the Pd-list mailing list