Currently, the lfNoise and whiteNoise unit generators produce their values by directly outputting the result of a call to Math.random(). This is incorrect, since Math.random() returns values between 0 and 1, whereas lfNoise and whiteNoise should both return values in "signal range," i.e. between -1 and 1.
While SuperCollider's documentation is somewhat ambiguous for both unit generators, other documentation clearly identifies LFNoise0 as outputting values in the -1 to 1 range.
Fixing this issue will, unfortunately, break a significant number of applications that use lfNoise to create random modulations where the code assumes its output to be between 0 and 1. Users of whiteNoise will likely be unaffected, except perhaps beneficially from the improved signal quality.
Currently, the
lfNoise
andwhiteNoise
unit generators produce their values by directly outputting the result of a call toMath.random()
. This is incorrect, sinceMath.random()
returns values between 0 and 1, whereaslfNoise
andwhiteNoise
should both return values in "signal range," i.e. between -1 and 1.While SuperCollider's documentation is somewhat ambiguous for both unit generators, other documentation clearly identifies
LFNoise0
as outputting values in the -1 to 1 range.Fixing this issue will, unfortunately, break a significant number of applications that use
lfNoise
to create random modulations where the code assumes its output to be between 0 and 1. Users ofwhiteNoise
will likely be unaffected, except perhaps beneficially from the improved signal quality.