tab

tab — Opcodes de table rapides.

Description

Opcodes de table rapides. Plus rapides que table et que tablew parce qu'ils fonctionnent sans indexation cyclique et sans limite et qu'ils ne testent pas la validité des index. Ils ont été implémentés pour fournir un accès rapide aux tableaux.

Syntaxe

ir tab_i indx, ifn[, ixmode]
kr tab kndx, ifn[, ixmode]
ar tab xndx, ifn[, ixmode]
tabw_i isig, indx, ifn [,ixmode]
tabw ksig, kndx, ifn [,ixmode]
tabw asig, andx, ifn [,ixmode]

Initialisation

ifn -- numéro de la table.

ixmode -- zéro par défaut. S'il est nul, l'intervalle de variation de xndx est la longueur de la table ; s'il est non nul, xndx varie entre 0 et 1.

isig -- valeur d'entrée à écrire.

indx -- index de la table.

Exécution

asig, ksig -- signal d'entrée à écrire.

andx, kndx -- index de la table.

Les opcodes tab et tabw sont semblables à table et à tablew, mais ils sont plus rapides et supportent des tables dont la longueur n'est une puissance de deux.

Exemples

Voici un exemple de l'opcode tab. Il utilise le fichier tab.csd.

Exemple 990. Exemple de l'opcode tab.

Voir les sections Audio en Temps Réel et Options de la Ligne de Commande pour plus d'information sur l'utilisation des options de la ligne de commande.

<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-odac    ;;;realtime audio out
;-iadc    ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o tab.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

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

gifn1 ftgen 1, 0, 0, 1, "flute.aiff", 0, 0, 0	;deferred-size table

instr 1 

atab  init 0 
isize tableng 1					;length of table?
print isize
andx  phasor 1 / (isize / sr) 
asig  tab andx, 1, 1				;has a 0 to 1 range
      outs asig, asig

endin 
</CsInstruments> 
<CsScore> 

i 1 0 2.3
e
</CsScore> 
</CsoundSynthesizer>


Crédits

Ecrit par Gabriel Maldonado.