rnd — Returns a random number in a unipolar range at the rate given by the input argument.
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.
Here is an example of the rnd opcode. It uses the file rnd.csd.
Example 906. 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 907. 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>