tablei
Précédent | Opcodes et opérateurs de l'orchestre | Suivant

## tablei

tablei — Accède aux valeurs d'une table par indexation directe avec interpolation linéaire.

## Description

Accède aux valeurs d'une table par indexation directe avec interpolation linéaire.

## Syntaxe

    ares tablei andx, ifn [, ixmode] [, ixoff] [, iwrap]

    ires tablei indx, ifn [, ixmode] [, ixoff] [, iwrap]

    kres tablei kndx, ifn [, ixmode] [, ixoff] [, iwrap]

## Initialisation

ifn -- numéro de la table de fonction. tablei nécessite un point de garde.

ixmode (facultatif) -- type de l'index. La valeur par défaut est 0.

- 0 = index brut

- 1 = normalisé (de 0 à 1)

ixoff (facultatif) -- décalage de l'index. Pour une table dont l'origine est au centre, utiliser taille_table/2 (brut) ou 0.5 (normalisé). La valeur par défaut est 0.

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

- 0 = indexation normale (index < 0 traité comme index=0 ; index > taille_table ramené à index=taille_table)

- 1 = indexation cyclique.

## Exécution

tablei est une unité avec interpolation dans laquelle la partie fractionnaire de l'index est utilisée pour interpoler entre les entrées adjacentes de la table. La régularité apportée par l'interpolation se paie par une légère augmentation du temps d'exécution (voir aussi oscili, etc.), mais sinon les unités avec ou sans interpolation sont interchangeables. Noter que lorsque tablei utilise un index périodique dont la valeur modulo n est inférieure à la puissance de 2, longueur de la table, l'interpolation nécessite qu'il existe une (n + 1)ème valeur dans la table qui est une copie de la première valeur (voir l'instruction f de la partition).

| Avertissement
La lecture de tables contenant une information stéréo ou multicanaux causera probablement du bruit non désiré car l'opcode interpole entre des positions successives de la table sans tenir compte de l'origine de son contenu. Habituellement seul le contenu d'un canal est attendu. Il faut plutôt considérer l'utilisation de loscilx.

## Exemples

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

Exemple 1057. Exemple de l'opcode tablei.

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 tablei.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

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

    seed 0	;generate new values every time the instr is played

    instr 1

    ifn = p4
    isize = p5
    ithresh = 0.5

    itemp ftgen ifn, 0, isize, 21, 2

    iwrite_value = 0
    i_index = 0

    loop_start:
        iread_value tablei i_index, ifn

        if iread_value > ithresh then
             iwrite_value = 1
        else
             iwrite_value = -1
        endif
    tableiw iwrite_value, i_index, ifn
    loop_lt i_index, 1, isize, loop_start
        turnoff

    endin

    instr 2

    ifn = p4
    isize = ftlen(ifn)
    prints "Index\tValue\n"

    i_index = 0
    loop_start:
        ivalue tablei i_index, ifn
        prints "%d:\t%f\n", i_index, ivalue

      loop_lt i_index, 1, isize, loop_start		;read table 1 with our index

    aout oscili .5, 100, ifn			;use table to play the polypulse
         outs   aout, aout

    endin
    </CsInstruments>
    <CsScore>
    i 1 0 1 100 16
    i 2 0 2 100
    e
    </CsScore>
    </CsoundSynthesizer>

## Voir aussi

table, table3, oscil1, oscil1i, osciln

Plus d'information sur cet opcode : http://www.csoundjournal.com/issue12/genInstruments.html , écrit par Jacob Joaquin.

Précédent | Niveau supérieur | Suivant
tablegpw | Sommaire | tableicopy