vrandh — Generates a vector of random numbers stored into a table, holding the values for a period of time.
Generates a vector of random numbers stored into a table, holding the values for a period of time. Generates a sort of 'vectorial band-limited noise'.
ifn - number of the table where the vectorial signal will be generated
ielements - number of elements of the vector
idstoffset - (optional, default=0) -- index offset for the destination table
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.
krange - range of random elements (from -krange to krange)
kcps - rate of generated elements in cycles per seconds
This opcode is similar to randh, but operates on vectors instead of with scalar values.
Though the argument isize defaults to 0, thus using a 16-bit random number generator, using the newer 31-bit algorithm is recommended, as this will produce a random sequence with a longer period (more random numbers before the sequence starts repeating).
The output is a vector contained in ifn (that must be previously allocated).
All these operators are designed to be used together with other opocdes that operate with vector such as bmscan, adsynt etc.
Note: bmscan not yet available on Canonical Csound
Here is an example of the vrandh opcode. It uses the file vrandh.csd.
Example 507. Example of the vrandh 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 No messages -odac -iadc -d ;;;RT audio I/O ; For Non-realtime ouput leave only the line below: ; -o vranh.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ;Example by Andres Cabrera sr=44100 ksmps=128 nchnls=2 gitab ftgen 0, 0, 16, -7, 0, 128, 0 instr 1 krange init p4 kcps init p5 ioffset init p6 kav1 init 0 kav2 init 0 kcount init 0 ; table krange kcps ielements idstoffset iseed isize ioffset vrandh gitab, krange, kcps, 3, 3, 2, 0, ioffset kfreq1 table 3, gitab kfreq2 table 4, gitab kfreq3 table 5, gitab ;Change the frequency of three oscillators according to the random values aosc1 oscili 4000, kfreq1, 1 aosc2 oscili 2000, kfreq2, 1 aosc3 oscili 4000, kfreq3, 1 outs aosc1+aosc2, aosc3+aosc2 endin </CsInstruments> <CsScore> f 1 0 1024 10 1 ; krange kcps ioffset i 1 0 5 100 1 300 i 1 5 5 300 1 400 i 1 10 5 100 2 1000 i 1 15 5 400 4 1000 i 1 20 5 1000 8 2000 i 1 25 5 250 16 300 e </CsScore> </CsoundSynthesizer>