Opcodes définis par l'utilisateur (UDO)
Précédent | Syntaxe de l'orchestre | Suivant

## Opcodes définis par l'utilisateur (UDO)

Csound permet la définition d'opcodes dans l'en-tête de l'orchestre au moyen des opcodes opcode et endop. L'opcode défini peut fonctionner avec un nombre d'échantillons par période de contrôle (ksmps) différent en utilisant setksmps.

Pour connecter les entrées et les sorties de l'UDO, on utilise xin et xout.

Un UDO ressemble à ceci :

            opcode Lowpass, a, akk

            setksmps 1              ; nécessite sr=kr
    ain, ka1, ka2   xin             ; lire les paramètres d'entrée
    aout    init 0                  ; initialiser la sortie
    aout    =  ain*ka1 + aout*ka2   ; filtre simple comme tone
            xout aout               ; écrire la sortie

            endop

Cet UDO appelé Lowpass reçoit trois entrées (la première au taux-a, et les deux autres au taux-k), et délivre une sortie au taux-a. Noter l'utilisation de xin pour recevoir les entrées et de xout pour délivrer les sorties. Noter aussi l'utilisation de setksmps, qui est nécessaire pour que le filtre fonctionne correctement.

Pour utiliser cet UDO depuis un instrument, on écrirait quelque chose comme :

    afiltre Lowpass asource, kvaleur1, kvaleur2

voir l'entrée opcode pour des informations détaillées sur la définition d'UDO.

Vous pouvez trouver plusieurs UDO déjà rédigés (ou apporter votre propre contribution) à User Defined Opcode Database sur Csounds.com.

Précédent | Niveau supérieur | Suivant
Instruments nommés | Sommaire | Vecteurs et tableaux