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. Play tableshuffle.csd

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

tablefilter, tablecopy

Credits

Author: Georg Boenn
University of Glamorgan, UK

New in Csound version 5.13