True Analog Randomness
  • This is a source of true analog-based randomness.

    It is superior to the random node for when you want to create a patch with random sequences that sound different every time you open the patch. If you use the random node, you can create a random sequence, but it will sound the same every time you open the patch. This is because the random node creates a sequence of random numbers algorithmically based on a seed number. This method avoids this by using a true random source that is the noise (and/or noisefloor) of an analog input.

    It uses the iOS mic input, or any analog input of your choice, to act as a source of white(ish) noise.

    The sin(x*10000) expression amplifies folds the incoming signal into a relatively-well distributed white noise signal.

    If you want to use multiple randoms, make sure you change the amplification factor (the "seed") of the wavefolding expression by at least 1000. This way, you can have multiple sources of total randomness that are being fed from one input.
    True Randomness.audulus
    6K
    True Random Demo.audulus
    301K
  • Cool!
    I like the wave folding idea. It does require that you need to have an input set up though, so it's not much good on my desktop mac, which currently has no sound interface connected.

    Do you even need the sample and hold? Things like the uTuring have plenty of those already, and wave folding will insure even distribution.
  • @RobertSyrett - yeah, you do have to have at least an internal mic or something. You could fake it by routing some music through soundflower into the virtual input, though.
  • Basically the date/time node + seed input on Random will make this unnecessary in the future though.
  • I was thinking about using the timer node attached to a “start” button to generate a random number and combining it with the random node. Better to have something to change the seed.
  • @stschoen - yeah the date time would read out like (today) 10248075398. You could then clip off whatever parts of it you'd need for the random seed input. This way you could make something that plays a new song every day, or every month or whatever! lol

    10(month)24(day)8(hour)07(minute)53(second)98(millisecond)