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

## tablewkt

tablewkt — Change le contenu de tables de fonction existantes.

## Description

Cet opcode opère sur des tables de fonction existantes en changeant leur contenu. tablewkt utilise une variable de taux-k pour choisir le numéro de table. Les combinaisons valides des types de variable sont données par la première lettre des noms de variable.

## Syntaxe

    tablewkt asig, andx, kfn [, ixmode] [, ixoff] [, iwgmode]

    tablewkt ksig, kndx, kfn [, ixmode] [, ixoff] [, iwgmode]

## Initialisation

asig, ksig -- La valeur à écrire dans la table.

andx, kndx -- Indice dans la table, un nombre positif compris entre 0 et la longueur de la table (ixmode = 0) ou entre 0 et 1 (ixmode différent de 0).

kfn -- Numéro de la table. Doit être >= 1. Les nombres flottants sont arrondis à l'entier inférieur. Si un numéro de table ne pointe pas vers une table valide, ou si la table n'a pas encore été chargée (GEN01) une erreur est générée et l'instrument est désactivé.

ixmode -- mode d'indexation. Zéro par défaut.

- 0 = xndx et ixoff sont compris entre 0 et la longueur de la table.

- Différent de 0 = xndx et ixoff sont compris entre 0 et 1.

ixoff -- décalage de l'index. 0 par défaut.

- 0 = l'indice résultant est contrôlé directement par xndx, l'indexation commençant depuis le début de la table.

- Différent de 0 = l'indexation démarre dans la table. La valeur doit être positive et inférieure à la longueur de la table (ixmode = 0) ou inférieure à 1 (ixmode différent de 0).

iwgmode -- mode d'écriture dans la table. 0 par défaut.

- 0 = mode limite.

- 1 = mode cyclique.

- 2 = ode point de garde.

## Exécution

### Mode limite (0)

Limite l'indice résultant (xndx + ixoff) entre 0 et le point de garde. Pour une table de longueur 5, cela signigie que les positions allant de 0 à 3 et la position 4 (le point de garde) peuvent être écrites. Un indice résultant négatif provoque l'écriture en position 0.

### Mode cyclique (1)

Parcours cyclique de l'indice résultant dans les positions 0 à E, où E vaut soit la longueur de la table moins un, soit le facteur de 2 qui est égal à la longueur de la table moins un. Par exemple, un parcours cyclique entre 0 et 3, si bien que l'indice 6 signifie une écriture dans la position 2.

### Mode point de garde (2)

Le point de garde est écrit en même temps que la position 0 avec la même valeur.

Facilite l'écriture dans des tables prévues pour être lues avec interpolation pour produire des formes d'onde cycliques sans discontinuité. De plus, avant son utilisation, l'indice résultant est augmenté de la moitié de la distance entre une position et la suivante, avant d'être arrondi à l'adresse entière inférieure d'une position dans la table.

Normalement (iwgmode = 0 ou 1), pour une table de longueur 5, qui comprend les positions 0 à 3 en partie principale et la position 4 comme point de garde, un indice résultant compris entre 0 et 0.999 provoquera une écriture dans la position 0. ("0.999" signifie juste inférieur à 1.0), entre 1.0 et 1.999, l'écriture se fera dans la position 1, etc. La même interprétation a lieu pour les indices résultants compris entre 0 et 4.999 (igwmode = 0) ou 3.999 (igwmode = 1). igwmode = 0 permet l'écriture dans les positions 0 à 4, avec la possibilité d'avoir dans le point de garde (4) une valeur différente de celle de la position 0.

Avec une table de longueur 5 et iwgmode = 2, quand l'indice résultant est compris entre 0 et 0.499, l'écriture se fera dans les positions 0 et 4. S'il est compris entre 0.5 et 1.499, l'écriture se fera dans la position 1, etc. S'il est compris entre 3.5 et 4.0, l'écriture se fera également dans les positions 0 et 4.

Ainsi, l'écriture s'approche le plus possible des résultats de la lecture avec interpolation. Le mode point de garde ne doit être utilisé qu'avec des tables qui ont un point de garde.

Le mode point de garde se fait en ajoutant 0.5 à l'indice résultant, en l'arrondissant à l'entier inférieur le plus proche, puis en le réduisant modulo le facteur de deux égal à la longueur de la table moins un, enfin en écrivant dans la table (positions 0 à 3 dans notre exemple) et dans le point de garde si l'indice vaut 0.

### Avertissement pour les numéros de table de taux-k

Au taux-k ou au taux-a, si l'on donne un numéro de table < 1, ou si le numéro de table pointe vers une table inexistante ou vers une table de longueur nulle (qui doit être chargée depuis un fichier ultérieurement), une erreur est générée et l'instrument est désactivé. Il faut initialiser kfn et afn au taux approprié en utilisant init. Si l'on essaie de mettre une valeur de taux-i dans kfn ou dans afn une erreur est générée.

## Voir aussi

tableiw, tablew

## Crédits

Auteur : Robin Whittle
Australie
Mai 1997

Précédent | Niveau supérieur | Suivant
tablewa | Sommaire | tablexkt