Specify random distribution for code block

with_random_source  noise_type (symbol)

Resets the random number generator to the specified noise type for the specified code block. All generated random numbers and randomisation functions such as shuffle and choose within the code block will use this new generator. Once the code block has completed, the original generator is restored and the code block generator is discarded. Use this to change the sequence of random numbers in your piece in a way that can be reproduced. Especially useful if combined with iteration. See examples.

Introduced in v3.3

Example

# Example 1

use_random_source :white
  rand_reset
  puts rand
  puts rand
  puts rand
  rand_reset
  use_random_source :pink
  puts rand
  puts rand
  rand_reset
  use_random_source :perlin
  puts rand
  puts rand
  with_random_source :white do
    puts rand
  end
  puts rand
           



# use white noise as the distribution (default)
# reset random seed
# => 0.75006103515625
# => 0.733917236328125
# => 0.464202880859375
# reset it again
# use pink noise as the distribution
# => 0.47808837890625
# => 0.56011962890625
# reset it
# use perlin noise as the distribution
# => 0.546478271484375
# => 0.573150634765625
# use white noise just for this block
# => 0.464202880859375
 
# => 0.597015380859375
# notice how the last generator (perlin) is restored