ptable

ptable — Accède aux valeurs d'une table par indexation directe.

Description

Accède aux valeurs d'une table par indexation directe.

Syntaxe

ares ptable andx, ifn [, ixmode] [, ixoff] [, iwrap]
ires ptable indx, ifn [, ixmode] [, ixoff] [, iwrap]
kres ptable kndx, ifn [, ixmode] [, ixoff] [, iwrap]

Initialisation

ifn -- numéro de la table de fonction.

ixmode (facultatif) -- mode d'indexation. La valeur par défaut est 0.

  • 0 = indexation brute

  • 1 = indexation normalisée (0 à 1)

ixoff (facultatif) -- décalage de l'index. Pour une table dont l'origine est centrée, on utilise taille-de-la-table/2 (indexation brute) ou 0.5 (indexation normalisée). La valeur par défaut est 0.

iwrap (facultatif) -- indicateur d'indexation cyclique. La valeur par défaut est 0.

  • 0 = pas d'enroulement (les index < 0 sont considérés comme nuls ; les index > taille-de-la-table sont bloqués à index=taille-de-la-table)

  • 1 = indexation cyclique.

Exécution

ptable invoque une lecture de table avec des indices au taux d'initialisation, au taux de contrôle ou au taux audio. Ces indices peuvent être des entrées brutes (0, 1, 2, ..., taille-1) ou des valeurs normalisées (0 à 1). Les indices sont d'abord modifiés par la valeur de décalage puis leur appartenance à l'intervalle valide est testée avant la lecture dans la table (voir iwrap). Si l'indice varie sur toute l'échelle, ou si on utilise l'interpolation, la table doit avoir un point de garde. ptable indexé par un phaseur périodique (voir phasor) simulera un oscillateur.

Exemples

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

Exemple 725. Exemple de l'opcode ptable.

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
; Audio out   Audio in    No messages
-odac           -iadc     -d     ;;;RT audio I/O
; For Non-realtime ouput leave only the line below:
; -o table.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

; Initialize the global variables.
sr = 44100
kr = 4410
ksmps = 10
nchnls = 1

; Instrument #1.
instr 1
  ; Vary our index linearly from 0 to 1.
  kndx line 0, p3, 1

  ; Read Table #1 with our index.
  ifn = 1
  ixmode = 1
  kfreq ptable kndx, ifn, ixmode

  ; Generate a sine waveform, use our table values 
  ; to vary its frequency.
  a1 oscil 20000, kfreq, 2
  out a1
endin


</CsInstruments>
<CsScore>

; Table #1, a line from 200 to 2,000.
f 1 0 1025 -7 200 1024 2000
; Table #2, a sine wave.
f 2 0 16384 10 1

; Play Instrument #1 for 2 seconds.
i 1 0 2
e


</CsScore>
</CsoundSynthesizer>


Voir aussi

table, tablei, table3, ptable3, ptablei, oscil1, oscil1i, osciln

Crédits

Auteur : John ffitch
Janvier 2012

Nouveau dans la version 5.16 de Csound.