rnd
Prev | Orchestra Opcodes and Operators | Next

## rnd

rnd — Returns a random number in a unipolar range at the rate given by the input argument.

## Description

Returns a random number in a unipolar range at the rate given by the input argument.

## Syntax

    rnd(x) (init- or control-rate only)

Where the argument within the parentheses may be an expression. These value converters sample a global random sequence, but do not reference seed. The result can be a term in a further expression.

## Performance

Returns a random number in the unipolar range 0 to x.

## Examples

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

Example 901. Example of the rnd 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
    ; Audio out   Audio in
    -odac           -iadc    ;;;RT audio I/O
    ; For Non-realtime ouput leave only the line below:
    ; -o rnd.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

    ; Andres Cabrera 2010

    sr = 44100
    ksmps = 4410
    nchnls = 1
    0dbfs = 1

    instr 1
    	; Generate a random number from 0 to 10.
    	irand = rnd(10)
    	print irand
    endin

    instr 2
    	klimit init 10
    	krand = rnd(klimit)
    	printk 0, krand
    endin

    </CsInstruments>
    <CsScore>

    i 1 0 1  ; Generate 1 number
    i 1 0 1  ; Generate another number
    i 1 0 1  ; yet another number

    i 2 2 1  ; 1 second prints 9 values (kr = 10)
    e

    </CsScore>
    </CsoundSynthesizer>

Its output should be:

    SECTION 1:
    new alloc for instr 1:
    instr 1:  irand = 9.735
    new alloc for instr 1:
    instr 1:  irand = 1.394
    new alloc for instr 1:
    instr 1:  irand = 7.695
    midi channel 1 now using instr 1
    B  0.000 ..  2.000 T  2.000 TT  2.000 M:  0.00000
    new alloc for instr 2:
     i   2 time     2.10000:     5.25005
     i   2 time     2.20000:     6.22665
     i   2 time     2.30000:     9.69511
     i   2 time     2.40000:     7.16822
     i   2 time     2.50000:     9.45134
     i   2 time     2.60000:     1.34123
     i   2 time     2.70000:     2.09879
     i   2 time     2.80000:     2.36001
     i   2 time     2.90000:     0.03553

Here is another example of the rnd opcode. It uses the file rnd-advanced.csd.

Example 902. Advanced example of the rnd 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
    ; Audio out   Audio in
    -odac           -iadc    ;;;RT audio I/O
    ; For Non-realtime ouput leave only the line below:
    ; -o rnd.wav -W ;;; for file output any platform

    ; By Stefano Cucchi 2020

    </CsOptions>
    <CsInstruments>

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

    instr 1
    ; Generate a random number from 0 to 5
    irand1 = rnd(5)
    ; Generate a random number from 0 to 13
    irand2 = rnd(13)

    print irand1
    print irand2

    a1, a2 crossfm 200, 250, irand1, irand2, 1, 1, 1
    kdeclick linseg 0, 0.2, 0.5, p3-0.4, 0.5, 0.2, 0

    outch 1, a1*kdeclick
    outch 2, a2*kdeclick

    endin

    </CsInstruments>
    <CsScore>

    f 1 0 4096 10 1 0 1 0 0.5 0 0.2

    i 1 0 1
    i 1 + 1
    i 1 + 1
    i 1 + 1

    e

    </CsScore>
    </CsoundSynthesizer>

## See Also

birnd

## Credits

Author: Barry L. Vercoe
MIT
Cambridge, Massachussetts
1997

Prev | Up | Next
rms | Home | rndseed