vrandh
Prev | Orchestra Opcodes and Operators | Next

## vrandh

vrandh — Generates a vector of random numbers stored into a table, holding the values for a period of time.

## Description

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'.

## Syntax

    vrandh  ifn,  krange, kcps, ielements [, idstoffset] [, iseed] \
          [, isize] [, ioffset]

## Initialization

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.

## Performance

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 opcodes that operate with vector such as adsynt, etc.

## Examples

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

Example 1202. 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>

## See also

vrandi, randh

## Credits

Written by Gabriel Maldonado.

New in Csound 5 (Previously available only on CsoundAV)

Prev | Up | Next
vpvoc | Home | vrandi