randh
Prev | Orchestra Opcodes and Operators | Next

## randh

randh — Generates random numbers and holds them for a period of time.

## Description

Generates random numbers and holds them for a period of time.

## Syntax

    ares randh xamp, xcps [, iseed] [, isize] [, ioffset]

    kres randh kamp, kcps [, iseed] [, isize] [, ioffset]

## Initialization

iseed (optional, default=0.5) -- seed value for the recursive pseudo-random formula. A value between 0 and +1 will produce an initial output of kamp * iseed. A negative value will cause seed re-initialization to be skipped. A value greater than 1 will seed from system time, this is the best option to generate a different random sequence for each run.

isize (optional, default=0) -- if zero, a 16 bit number is generated. If non-zero, a 31-bit random number is generated. Default is 0.

ioffset (optional, default=0) -- a base value added to the random result. New in Csound version 4.03.

## Performance

kamp, xamp -- range over which random numbers are distributed.

kcps, xcps -- the frequency which new random numbers are generated.

The internal pseudo-random formula produces values which are uniformly distributed over the range -kamp to +kamp. rand will thus generate uniform white noise with an R.M.S value of kamp / root 2.

The remaining units produce band-limited noise: the kcps and xcps parameters permit the user to specify that new random numbers are to be generated at a rate less than the sampling or control frequencies. randh will hold each new number for the period of the specified cycle.

## Examples

Here is an example of the randh opcode. It uses the file randh.csd.

Example 872. Example of the randh opcode.

See the sections Real-time Audio and Command Line Flags for more information on using command line flags.

    <CsoundSynthesizer>
    <CsOptions>
    ; Select audio/midi flags here according to platform
    -odac     ;;;realtime audio out
    ;-iadc    ;;;uncomment -iadc if RT audio input is needed too
    ; For Non-realtime ouput leave only the line below:
    ; -o randh.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

    sr = 44100
    ksmps = 32
    nchnls = 2
    0dbfs  = 1

    instr 1	;same values every time

    krnd randh 100, 10
         printk2 krnd			; look
    aout oscili 0.8, 440+krnd, 1		; & listen
         outs aout, aout

    endin

    instr 2	;different values every time

    krnd randh 100, 10, 10			; seed from system clock
         printk2 krnd			; look
    aout oscili 0.8, 440+krnd, 1		; & listen
         outs aout, aout

    endin
    </CsInstruments>
    <CsScore>
    f 1 0 16384 10 1	;sine wave.

    i 1 0 1
    i 2 2 1
    e
    </CsScore>
    </CsoundSynthesizer>

The example will produce the following output:

     i1    50.00000
     i1    50.00305
     i1    97.68677
     i1   -44.25354
     i1   -61.56006
     i1   -75.91248
     i1    67.57202
     i1    12.83875
     i1     5.39551
     i1   -95.18738

    WARNING: Seeding from current time 684387922

     i2   -13.81226
     i2   -16.49475
     i2    69.51904
     i2    35.04944
     i2    47.47925
     i2    63.25378
     i2   -59.61914
     i2    50.93079
     i2    -6.46362
     i2     5.89294

## See also

Random (Noise) Generators rand, randi

Prev | Up | Next
randc | Home | randi