gauss — Gaussian distribution random number generator.
krange -- the range of the random numbers (-krange to +krange). Outputs both positive and negative numbers.
gauss returns random numbers following a normal distribution centered around 0.0 (mu = 0.0) with a variance (sigma) of krange / 3.83. Thus more than 99.99% of the random values generated are in the range -krange to +krange. If a mean value different of 0.0 is desired, this mean value has to be added to the generated numbers (see example below).
For more detailed explanation of these distributions, see:
C. Dodge - T.A. Jerse 1985. Computer music. Schirmer books. pp.265 - 286
D. Lorrain. A panoply of stochastic cannons. In C. Roads, ed. 1989. Music machine . Cambridge, Massachusetts: MIT press, pp. 351 - 379.
Here is an example of the gauss opcode. It uses the file gauss.csd.
Example 343. Example of the gauss opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
<CsoundSynthesizer> <CsOptions> -d -o dac </CsOptions> <CsInstruments> instr 1 irange = p4 imu = p5 isamples = p6 indx = 0 icount = 1 ix = 0.0 ix2 = 0.0 loop: i1 gauss irange i1 = i1 + imu ix = ix + i1 ix2 = ix2 + i1*i1 if i1 >= -(irange+imu) && i1 <= (irange+imu) then icount = icount+1 endif loop_lt indx, 1, isamples, loop imean = ix / isamples ;mean value istd = sqrt(ix2/isamples - imean*imean) ;standard deviation prints "mean = %3.3f, std = %3.3f, ", imean, istd prints "samples inside the given range: %3.3f\%\n", icount*100.0/isamples endin </CsInstruments> <CsScore> i 1 0 0.1 1.0 0 100000 ; range = 1, mu = 0.0, sigma = 1/3.83 = 0.261 i 1 0.1 0.1 3.83 0 100000 ; range = 3.83, mu = 0.0, sigma = 1 i 1 0.2 0.1 5.745 2.7 100000 ; range = 5.745, mu = 2.7, sigma = 5.745/3.83 = 1.5 </CsScore> </CsoundSynthesizer>
Its output should include lines like this:
mean = 0.000, std = 0.260, samples inside the given range: 99.993% mean = 0.005, std = 0.999, samples inside the given range: 99.998% mean = 2.700, std = 1.497, samples inside the given range: 100.000%