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


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.


tableshuffle ktablenum
tableshufflei itablenum


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


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

Example 1100. Example of the tableshuffle opcode.

See the sections Real-time Audio and Command Line Flags for more information on using command line flags.

; 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


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

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



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


See also

Read/Write Operations


Author: Georg Boenn
University of Glamorgan, UK

New in Csound version 5.13