ptablei
Précédent | Opcodes de l'orchestre et routines GEN obsolètes | Suivant

## ptablei

ptablei — 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 ptablei andx, ifn [, ixmode] [, ixoff] [, iwrap]

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

    kres ptablei 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

ptablei est un opcode avec interpolation dans lequel la partie fractionnaire de l'index est utilisée pour interpoler entre entrées adjacentes de la table. Le lissage obtenu par interpolation se fait au prix d'une petite durée d'exécution supplémentaire (voir aussi oscili, etc.), sinon les opcodes avec et sans interpolation sont interchangeables.

## Exemples

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

Exemple 1325. Exemple de l'opcode ptablei.

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 ptablei i_index, ifn

        if iread_value > ithresh then
             iwrite_value = 1
        else
             iwrite_value = -1
        endif
    ptableiw 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, tablei, table3, ptable, ptable3, oscil1, oscil1i, osciln

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

## Crédits

Auteur : John ffitch
Janvier 2012

Nouveau dans la version 5.16 de Csound.

Précédent | Niveau supérieur | Suivant
ptable | Sommaire | ptable3