hi Piotr,
the problem is block-wise handling of 'start' by readsf~, which could (should?) be changed. The delay's output is correctly time-stamped. See the test patch, attached.
Krzysztof
Piotr Majdak wrote: ...
I think, the problem is a combination of float-double casting without rounding in delay_ft1() (x_time.c) and using if(sys_time < setticks) somewhere in m_shed.c.
Truncation and not rounding: is this a bug or a feature? ;-) I propose to insert a rounding operation in clock_delay() (m_shed.c).
#N canvas 341 331 607 420 12; #N canvas 0 0 450 300 graph4 0; #X array t 64 float 3; #A 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63; #X coords 0 63 63 0 200 140 1; #X restore 342 42 graph; #X obj 119 338 vsnapshot~; #X floatatom 119 373 5 0 0 0 - - -; #X obj 119 296 tabreceive~ t; #X msg 46 296 bang; #X obj 93 251 del; #X floatatom 39 180 5 0 0 0 - - -; #X obj 115 31 loadbang; #X obj 155 147 samplerate~; #X floatatom 151 251 0 0 0 0 - - -; #X obj 115 180 /; #X msg 115 69 1000; #X obj 115 111 t 0 b; #X obj 93 213 *; #X connect 1 0 2 0; #X connect 3 0 1 0; #X connect 4 0 1 0; #X connect 5 0 1 0; #X connect 6 0 13 0; #X connect 7 0 11 0; #X connect 8 0 10 1; #X connect 10 0 13 1; #X connect 11 0 12 0; #X connect 12 0 10 0; #X connect 12 1 8 0; #X connect 13 0 5 0; #X connect 13 0 9 0;