tableshuffle
Prev | Orchestra Opcodes and Operators | Next

## tableshuffle

tableshuffle — shuffles the content of a function table so that each element of the source table is put into a different random position.

## Description

This opcode can be used in order to shuffle the content of function tables into a random order but without loosing any of the elements. Imagine shuffling a deck of cards. Each element of the table is copied to a different random position. If that position was already chosen before then the next free position is chosen. The length of the table remains the same.

## Syntax

    tableshuffle ktablenum

    tableshufflei itablenum

## Performance

ktablenum or itablenum -- the number of the table to shuffle.

## Examples

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

Example 1080. Example of the tableshuffle 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
    ; For Non-realtime ouput leave only the line below:
    ; -o tableshuffle.wav -W ;;; for file output any platform

    ; By Stefano Cucchi 2020

    </CsOptions>
    <CsInstruments>

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

    instr 1
    kIndex phasor 1/p3
    kIndex = kIndex * 16

    if kIndex >= 15.99 then
    tableshuffle 1; shuffle table 1
    endif

    kFreq table kIndex, 1, 0
    asound oscili 0.3, kFreq
    outch 1, asound
    outch 2, asound

    endin

    </CsInstruments>
    <CsScore>

    f 1 0	16	-2	200 250 300 350 400 450 500 550 600 650 700 750 800 850 900 950

    i1 0 4
    i1 5 4
    e

    </CsScore>
    </CsoundSynthesizer>

## See also

Read/Write Operations

## Credits

Author: Georg Boenn
University of Glamorgan, UK

New in Csound version 5.13

Prev | Up | Next
tableseg | Home | tablew