Hi, im trying to run old patches on my new computer but freeverb~ always crashes , from time to time it stop doing sound and i get "nan" if i conect an env~ object after it.
ive tried putting a clip~ -1 1 before freeverb~ but its still crashing
Do anybody have an idea why is this behaivor and how to solve it?
Im on macosx 10.6.7, 2.2 ghz inetl core i7
thanks
R.
On Tue, 6 Sep 2011, ronni montoya wrote:
Hi, im trying to run old patches on my new computer but freeverb~ always crashes , from time to time it stop doing sound and i get "nan" if i conect an env~ object after it.
AFAIK, if you get nan out of [env~], it's because there's at least one nan per window in the output of [freeverb~]... you can use [print~] for greater detail, so that you can figure out the difference between « there is one nan every n sample » or « every sample is nan » for a more official bug report.
Do anybody have an idea why is this behaivor and how to solve it?
nan is often due to trying to do 0/0 or log(-1) or other out-of-range things. (some other out-of-range operations yield +inf or -inf instead, it depends)
Actually... is [clip~ -1 1] really able to get rid of nan ? can you check that your input of freeverb never has any nan ? I think that in theory, [clip~] knows how to get rid of +inf and -inf, but doesn't know what to do with nan.
If not, then someone has to be reading the freeverb source and look for such possible mistakes.
| Mathieu Bouchard ---- tél: +1.514.383.3801 ---- Villeray, Montréal, QC
On 07/09/11 15:23, Mathieu Bouchard wrote:
On Tue, 6 Sep 2011, ronni montoya wrote:
Do anybody have an idea why is this behaivor and how to solve it?
nan is often due to trying to do 0/0 or log(-1) or other out-of-range things.
Probably inf - inf or 0 * inf are NaN, I haven't checked the specs.
(some other out-of-range operations yield +inf or -inf instead, it depends)
Actually... is [clip~ -1 1] really able to get rid of nan ?
No, because NaN compares always result in false:
http://pure-data.git.sourceforge.net/git/gitweb.cgi?p=pure-data/pure-data;a=...
Workaround/fix might be:
if (!(f > x->lo)) f = x->lo; if (!(f < x->hi)) f = x->hi;
But this might all be screwed up depending on how Pd and/or freeverb is compiled, I know some inf/nan things can behave even more strangely with -ffast-math (for example, Pd .git has no mention of it as far as I can tell).
Claude