hi,
After the comments on my previous post saying that metro drift wouldn't
be too much of a problem, I ran a test or two, and roughly found this to
be true.
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.
As I understand it the human ear starts to hear things as two different
events at around 15-20ms time separation, so in theory these drifts
should be utterly inaudible.
The question is, will these .1 ms drifts be sensed even if not
consciously audible? In the case of a hardware device like the Akai
MPC2000, there's a whole mythology that's arisen around the 'perfection'
of its swing function, being supposedly sub-ms accurate in a way that no
other machine can match...
Hope this information is useful to someone :)
cheers
d
--
f r e y
live music with computers
http://www.frey.co.nz
#N canvas 700 72 616 821 12;
#X obj 126 312 metro;
#X obj 194 165 / 60;
#X obj 280 286 / 27;
#X obj 235 320 metro;
#X obj 171 420 + 1;
#X msg 44 310 0;
#X obj 303 414 + 1;
#X obj 123 419 f 0;
#X obj 260 411 f 0;
#X obj 267 455 % 27;
#X obj 202 211 expr 1/$f1;
#X msg 97 210 bang;
#X msg 286 30 stop;
#X floatatom 309 247 5 0 0 0 - - -;
#X obj 192 250 * 1000;
#X floatatom 305 331 5 0 0 0 - - -;
#X obj 279 537 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 173 533 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 288 613 realtime;
#X floatatom 290 655 10 0 0 0 - - -;
#X obj 262 492 select 1;
#X obj 464 420 f 0;
#X obj 507 422 + 1;
#X obj 464 467 % 49;
#X obj 459 506 select 1;
#X obj 413 284 / 49;
#X obj 423 336 metro;
#X obj 462 539 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 161 612 realtime;
#X obj 469 615 realtime;
#X floatatom 472 654 10 0 0 0 - - -;
#X floatatom 155 643 10 0 0 0 - - -;
#X obj 187 724 timer;
#X floatatom 179 773 10 0 0 0 - - -;
#X obj 333 730 timer;
#X floatatom 335 776 10 0 0 0 - - -;
#X obj 488 728 timer;
#X floatatom 484 767 10 0 0 0 - - -;
#X obj 144 461 % 1;
#X obj 155 491 select 0;
#X msg 91 31 bang;
#X obj 94 76 t b b;
#X text 467 682;
#X text 356 695;
#X text 294 685;
#X text 164 690;
#X text 151 27 <-- start;
#X text 353 31 <-- stop;
#X msg 193 126 117;
#X text 191 103 bpm;
#X text 15 279 reset;
#X text 301 526 27 * 1/27th;
#X text 485 537 49 * 1/49th;
#X text 202 528 1;
#X connect 0 0 7 0;
#X connect 1 0 10 0;
#X connect 2 0 3 1;
#X connect 2 0 15 0;
#X connect 3 0 8 0;
#X connect 4 0 7 1;
#X connect 5 0 7 0;
#X connect 5 0 8 0;
#X connect 5 0 21 0;
#X connect 6 0 8 1;
#X connect 7 0 4 0;
#X connect 7 0 38 0;
#X connect 8 0 6 0;
#X connect 8 0 9 0;
#X connect 9 0 20 0;
#X connect 10 0 13 0;
#X connect 10 0 14 0;
#X connect 11 0 0 0;
#X connect 11 0 3 0;
#X connect 11 0 26 0;
#X connect 12 0 0 0;
#X connect 12 0 3 0;
#X connect 12 0 26 0;
#X connect 14 0 0 1;
#X connect 14 0 2 0;
#X connect 14 0 25 0;
#X connect 16 0 18 0;
#X connect 16 0 29 1;
#X connect 16 0 34 0;
#X connect 16 0 36 1;
#X connect 17 0 18 1;
#X connect 17 0 28 1;
#X connect 17 0 32 1;
#X connect 17 0 34 1;
#X connect 18 0 19 0;
#X connect 20 0 16 0;
#X connect 21 0 23 0;
#X connect 21 0 22 0;
#X connect 22 0 21 1;
#X connect 23 0 24 0;
#X connect 24 0 27 0;
#X connect 25 0 26 1;
#X connect 26 0 21 0;
#X connect 27 0 29 0;
#X connect 27 0 28 0;
#X connect 27 0 32 0;
#X connect 27 0 36 0;
#X connect 28 0 31 0;
#X connect 29 0 30 0;
#X connect 32 0 33 0;
#X connect 34 0 35 0;
#X connect 36 0 37 0;
#X connect 38 0 39 0;
#X connect 39 0 17 0;
#X connect 40 0 41 0;
#X connect 41 0 11 0;
#X connect 41 1 48 0;
#X connect 41 1 5 0;
#X connect 48 0 1 0;