wrap~ is buggy and consistent to wrap
[wrap~] has a bug, when you feed it "0", it becomes "1", unlike [wrap], which outputs 0. As a workaround, I need to use 2 [wrap~] object so I can turn the generated "1" back to zero.
The code is different of course, and it's better and right in wrap, so maybe just change wrap~ to include the way wrap calculates it
like:
while (n--)
{
t_sample f = *in++;
*out++ = f - floor(f);
}
return (w + 4);