ftslice — Copie un bout d'une ftable dans une autre pendant l'exécution.
Opcode du greffon emugens.
L'opcode ftslice prend une ftable et en copie un bout dans une seconde ftable (comme tab2array, mais entre tables de fonction). Cette action a lieu durant l'exécution (à chaque cycle), afin qu'on puisse la placer dans une clause if / boucle / etc, de taux-k. Pour une version uniquement au taux-i, voir ftslicei
ftslice ifnsource, ifndest [, kstart, kend, kstep ]
ftslice kfnsource, kfndest [, kstart, kend, kstep ]
ifnsource -- Le numéro de la table source.
ifndest -- Le numéro de la table destination.
kstart -- La position à partir de laquelle copier. 0 par défaut.
kend -- La position à partir de laquelle la copie est stoppée. Elle n'est PAS inclusive. 0 indique de copier jusqu'à la fin de la table. Par défaut = la fin de la table.
kstep -- Le nombre d'éléments à ignorer. 1 par défaut.
Voici une exemple de l'opcode ftslice. Il utilise le fichier ftslice.csd.
Exemple 401. Exemple de l'opcode ftslice.
<CsoundSynthesizer> <CsOptions> </CsOptions> <CsInstruments> ; Example file ftslice /* ftslice: Copy slice from source table to destination table Syntax: ftslice ifnsource, ifndest, kstart=0, kend=0, kstep=1 ifnsource: source table ifndest: destination table kstart: the index to start copying from kend: the end index to stop copying. This is NOT inclusive. 0=end of table kstep: how many elements to skip See also: tablecopy, tableicopy, tab2array */ instr 1 ifn ftgentmp 0, 0, -13, -2, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 idest ftgentmp 0, 0, -11, -2, 0 ; empty table of size 11 ; copy only even elements ftslice ifn, idest, 0, 0, 2 ftprint idest ; copy too many elements - only the elements which fit in the dest table ; are copyed ftslice ifn, idest ftprint idest turnoff endin </CsInstruments> <CsScore> i 1 0 0.1 </CsScore> </CsoundSynthesizer>