ftgentmp

ftgentmp — Génère une table de fonction de partition depuis l'orchestre, qui est effacée à la fin de la note.

Description

Génère une table de fonction de partition depuis l'orchestre, qui est facultativement effacée à la fin de la note.

Syntaxe

ifno ftgentmp ip1, ip2dummy, isize, igen, iarga, iargb, ...

Initialisation

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

ip1 -- le numéro de la table à générer ou 0 si le numéro doit être assigné, auquel cas la table est effacée à la fin de la période d'activation de la note.

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.

Exemples

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

Exemple 360. Exemple de l'opcode ftgentmp.

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>
</CsOptions>
<CsInstruments>

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

instr 1
ifno  ftgentmp  0, 0, 512, 10, 1
print ifno
endin

instr 2
print ftlen(p4)
endin

</CsInstruments>
<CsScore>
i 1 0 10
i 2 2 1 101
i 1 5 10
i 2 7 1 102
i 2 12 1 101 
i 2 17 1 102 
e
</CsScore>
</CsoundSynthesizer>


La sortie de ce csd montre que les tables sont détruites après la fin des instances d'instrument qui les ont créées, provoquant une erreur d'initialisation si les tables sont demandées.

SECTION 1:
new alloc for instr 1:
ftable 101:
instr 1:  ifno = 101.000
B  0.000 ..  2.000 T  2.000 TT  2.000 M:  0.00000  0.00000
new alloc for instr 2:
instr 2:  #i0 = 512.000
B  2.000 ..  5.000 T  5.001 TT  5.001 M:  0.00000  0.00000
new alloc for instr 1:
ftable 102:
instr 1:  ifno = 102.000
B  5.000 ..  7.000 T  7.001 TT  7.001 M:  0.00000  0.00000
instr 2:  #i0 = 512.000
B  7.000 .. 12.000 T 11.999 TT 11.999 M:  0.00000  0.00000
INIT ERROR in instr 2: Invalid ftable no. 101.000000
#i0     ftlen.i p4
instr 2:  #i0 = -1.000
         B 12.000 - note deleted.  i2 had 1 init errors
B 12.000 .. 17.000 T 17.000 TT 17.000 M:  0.00000  0.00000
INIT ERROR in instr 2: Invalid ftable no. 102.000000
#i0     ftlen.i p4
instr 2:  #i0 = -1.000
         B 17.000 - note deleted.  i2 had 1 init errors

Crédits

Auteur : Istvan Varga
2005