ftgenonce

ftgenonce — Génère une table de fonction depuis la définition d'un instrument, sans duplication de données.

Description

Génère une table de fonction depuis la définition d'un instrument, sans duplication de données.

Syntaxe

ifno ftgenonce ip1dummy, ip2dummy, isize, igen, iarga, iargb, ...

Initialisation

ifno -- un numéro de table automatiquement assigné supérieur à 100.

ip1 -- ignoré.

ip2dummy -- ignoré.

isize -- taille de la table. Correspond au p3 de l'instruction f de partition.

igen -- routine GEN de la table de fonction. Correspond au p4 de l'instruction f de partition.

iarga, iargb, ... -- arguments de la table de fonction. Correspondent de p5 à pn de l'instruction f de partition.

[Note] Note

A l'origine, Csound était conçu pour ne supporter que les tables dont la taille était une puissance de deux. Bien que ceci ait changé dans les versions récentes (on peut utiliser n'importe quelle taille en donnant un nombre négatif), de nombreux opcodes ne les accepteront pas.

Exécution

L'opcode ftgenonce est conçu pour simplifier l'écriture des définitions d'instrument qui peuvent être réutilisées dans différents orchestres par un simple #include qui les insère dans un instrument. Il n'y a pas besoin de définir les tables de fonctions dans la partition ou dans l'en-tête de l'orchestre.

L'opcode ftgenonce est semblable à ftgentmp, et il a les mêmes arguments. Cependant, les tables de fonction ne sont ni dupliquées ni effacées. Au lieu de cela, tous les arguments de l'opcode sont concaténés pour former la clé d'accès à une table qui pointe vers le numéro de la table de fonction. Ainsi, chaque requête à ftgenonce avec les mêmes arguments reçoit la même instance des données de la table de fonction. Chaque changement de valeur d'un des arguments de ftgenonce provoque la création d'une nouvelle table de fonction.

Crédits

Auteur : Michael Gogins
2009