On Thu, 23 Dec 2010, Roman Haefeli wrote:
As Dietrich already pointed out, for some reason it stops working as expected when using a blocksize < 64. I don't why this is and I suspect it to be a bug.
I tried to fix it by introducing a x_yourmom property in [vline~] that holds the value of clock_getlogicaltime to see whether it was the same, and fudge the clock values according to how many times the same time has been used. But it's a little bit off and this isn't the place where the problem ought to be fixed.
And the way it is now, it only works if you send a triplet to [vline~], so, I inserted a messagebox in your test patch, that is «$1 0 10».
--- d_ctl.c (révision 14667) +++ d_ctl.c (copie de travail) @@ -249,6 +249,8 @@ t_float x_inlet1; t_float x_inlet2; t_vseg *x_list;
double x_yourmom; // because blocksize messes up logicaltime
int x_fudge; } t_vline;
static t_int *vline_tilde_perform(t_int *w)
@@ -260,7 +262,10 @@ double inc = x->x_inc; double msecpersamp = x->x_msecpersamp; double samppermsec = x->x_samppermsec;
@@ -395,6 +400,8 @@ x->x_list = 0; x->x_samppermsec = 0; x->x_targettime = 1e20;
x->x_yourmom = -1;
x->x_fudge = 0; return (x); }
| Mathieu Bouchard ---- tél: +1.514.383.3801 ---- Villeray, Montréal, QC