Bugs item #3599847, was opened at 2013-01-07 15:03 Message generated for change (Tracker Item Submitted) made by katjav You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=478070&aid=3599847...
Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: externals Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Katja (katjav) Assigned to: Nobody/Anonymous (nobody) Summary: freeverb~ can't handle inf, NaN and subnormals
Initial Comment: This is about Pd-E 0.42 / 0.43 on Intel
Although freeverb~.c has many calls to function fix_denorm_nan_float(), the object can't handle inf, NaN or subnormal numbers. If it gets an inf or NaN accidentally, the only way to recover from recycling NaN's is to reload the containing patch. If normal sound input is stopped, values in the delay lines gradually decay into the range of subnormal numbers, and CPU load increases dramatically.
Function fix_denorm_nan_float() doesn't really fix anything, it only returns the input value if it's good or zero if the input is bad. But the return value is nowhere stored. Probably, the function calls aren't even compiled at all for that reason, making [freeverb~] so efficient. SVN shows that the function was introduced in 2007, incorrectly replacing a type punning macro in the original freeverb~.c for Pd/MaxMsp.
All together, 40 such calls are intended per iteration of the perform loop, with 3 conditional checks each. If this would be really implemented, my estimation is that it would make [freeverb~] 1.5 or 2 times more expensive. It would be overkill. For all mentioned issues there are cheap and effective workarounds which can even be implemented in a Pd patch. Attached patch freeverb~-test.pd demonstrates bugs and workarounds. One day, [freeverb~] may be rewritten in this sense.
----------------------------------------------------------------------
You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=478070&aid=3599847...