# Specify random seed for code block

``

    with_random_seed  seed (number)

Resets the random number generator to the specified seed 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 v2.0

## Examples

# Example 1
``
    use_random_seed 1
      puts rand
      puts rand
      use_random_seed 1
      puts rand
      with_random_seed 1 do
        puts rand
        puts rand
      end
      puts rand
| ``
    # reset random seed to 1
    # => 0.417022004702574
    #=> 0.7203244934421581
    # reset it back to 1
    # => 0.417022004702574
    # reset seed back to 1 just for this block
    # => 0.417022004702574
    #=> 0.7203244934421581

    # => 0.7203244934421581
    # notice how the original generator is restored
# Example 2
``
      notes = (scale :eb3, :minor_pentatonic, num_octaves: 2)

      with_fx :reverb do
        live_loop :repeating_melody do

          with_random_seed 300 do

            8.times do

              play notes.choose, release: 0.1

              sleep 0.125
            end
          end

          play notes.choose, amp: 1.5, release: 0.5

        end
      end
| ``
    # Generating melodies
    # Create a set of notes to choose from.
    # Scales work well for this

    # Create a live loop

    # Set the random seed to a known value every
    # time around the loop. This seed is the key
    # to our melody. Try changing the number to
    # something else. Different numbers produce
    # different melodies

    # Now iterate a number of times. The size of
    # the iteration will be the length of the
    # repeating melody.

    # 'Randomly' choose a note from our ring of
    # notes. See how this isn't actually random
    # but uses a reproducible method! These notes
    # are therefore repeated over and over...

    # Note that this line is outside of
    # the with_random_seed block and therefore
    # the randomisation never gets reset and this
    # part of the melody never repeats.