hi iohannes ...
i was trying to use dirac~ today ... got a few comments:
so i was tweaking it a bit:
(absolute value is used for the next impulse delay)
probably want to keep compatibility with vanilla pd)
patch is attached ...
cheers ... tim
Tim Blechmann wrote:
hi iohannes ...
i was trying to use dirac~ today ... got a few comments:
- the creation argument is ignored for the first dirac impulse
- it wasn't possible to suppress the first dirac impulse
- the dsp algorithm was pretty unoptimized
yes, i haven't looked at that one for ages.
so i was tweaking it a bit:
- creation argument schedules the first dirac impulse, too
- using negative creation arguments suppresses the first dirac impulse
(absolute value is used for the next impulse delay)
- optimized it, did some loop unrolling (no simd code ... since you
probably want to keep compatibility with vanilla pd)
perfect.
patch is attached ...
thanks, it's in the CVS.
mfg.as.dr IOhannes
so i was tweaking it a bit:
- creation argument schedules the first dirac impulse, too
- using negative creation arguments suppresses the first dirac
impulse (absolute value is used for the next impulse delay)
- optimized it, did some loop unrolling (no simd code ... since you
probably want to keep compatibility with vanilla pd)
perfect.
well, i was thinking again ... using negative creation arguments to suppress the first dirac impulse is a bit ugly ... it doesn't make it possible to suppress the first impulse, but set it to the 0st sample.
if you don't care about backwards compatibility, i'd suggest to remove the initial impulse completely ... if you care ... well, maybe a second parameter that would be zero by default, might be used to suppress the initial impulse ...
i'd prefer the first solution, since i prefer an elegant solution over the compatible solution ... anyway, the choice is yours ...
cheers ... tim
if you don't care about backwards compatibility, i'd suggest to remove the initial impulse completely ...
i think it was a bug anyhow.
me too: --- dirac~.c 12 Sep 2005 07:16:09 -0000 1.3 +++ dirac~.c 14 Sep 2005 10:29:51 -0000 @@ -122,7 +122,7 @@
outlet_new(&x->x_obj, gensym("signal"));
x->do_it = where;
x->do_it = -1;
if (where > 0)
x->position = where;
not tested yet (just moved again), but should work ....
cheers tim