Hallo Damian, Damian Stewart hat gesagt: // Damian Stewart wrote:
I set up three metros, one to bang once every beat, one to bang every 27th of a beat (triplet-based time), and one to bang every 49th of a beat (1/7th-based time). Then I left it running for a while, using timer and realtime to measure drift over each beat. The patch I used is attached.
Over 60 minutes:
Between whole beat and beat counted from 27ths: realtime 0.002ms drift timer 0.144ms drift
Between whole beat and beat counted from 49ths: realtime 0.01ms drift timer 0.149ms drift
Between whole beat counted from 27ths and from 49ths: realtime 0.002ms drift timer 0.007ms drift
Now, I'm not totally sure how to interpret these numbers, and certainly don't understand the huge discrepancies between realtime and timer outputs, but it seems like drift isn't going to be any problem for this amount of time.
You have a kind of bug in your patch because at several points the execution order isn't well defined. The [timer] output actually should not drift at all, as the clock used by timer to read the time is the same as the clock used by metro to "set the time", that is, its own period. The interesting number is the realtime measurement. Here also it is important to take care of execution order using [t b b] and such objects. Otherwise it will for example happen, that you get the time of different beat numbers.
I attached a version of your patch that uses a well-defined execution order. The drift measuremeants are initiated by a delayed bang, so it will always measure the drift of the same beat.
With that patch I get no time drift with [timer] as expected. The results for the intervals between beats measured with [realtime] however ocillate regularily up to about 5 msec on my linux system for every metro period. As this happens in a very regular pattern I suppose this is some kind synchronisation problem between the Pd clock and the realtime clock of the operating system used in [realtime]. Check the table "drift" to see the regularity of the pattern.
Frank Barknecht _ ______footils.org_ __goto10.org__