chnexport

chnexport — Exporte une variable globale en tant que canal du bus.

Description

Exporte une variable globale en tant que canal du bus ; le canal ne doit pas déjà exister sinon il y aura une erreur d'initialisation. On appelle normalement cet opcode depuis l'en-tête de l'orchestre ; il permet à l'application hôte de lire et d'écrire directement dans des variables de l'orchestre, sans avoir à utiliser chnget ou chnset pour copier les données.

Syntaxe

gival chnexport Sname, imode[, itype, idflt, imin, imax]
gkval chnexport Sname, imode[, itype, idflt, imin, imax]
gaval chnexport Sname, imode
gSval chnexport Sname, imode

Initialisation

imode -- somme d'au moins un des nombres suivants : 1 pour entrée et 2 pour sortie.

itype (facultatif, 0 par défaut) -- sous-type du canal, seulement pour les canaux de contrôle. Les valeurs possibles sont :

  • 0: par défault / indéfini (idflt, imin et imax sont ignorés)

  • 1: seulement des valeurs entières

  • 2: échelle linéaire

  • 3: échelle exponentielle

idflt (facultatif, 0 par défaut) -- valeur par défaut, seulement pour les canaux de contrôle avec itype différent de zéro. Doit être supérieur ou égal à imin et inférieur ou égal à imax.

imin (facultatif, 0 par défaut) -- valeur minimale, seulement pour les canaux de contrôle avec itype différent de zéro. Doit être différent de zéro pour l'échelle exponentielle (itype = 3).

imax (facultatif, 0 par défaut) -- valeur maximale, seulement pour les canaux de contrôle avec itype différent de zéro. Doit être supérieur à imin. Dans le cas d'une échelle exponentielle, il doit également avoir le même signe que imin.

Notes

Les paramètres du canal (imode, itype, idflt, imin et imax) ne sont que des indications pour l'application hôte ou un logiciel externe accédant au bus par l'API, et ils ne restreignent en rien la lecture ou l'écriture sur le canal.

Bien que la variable globale soit utilisée comme argument de sortie, chnexport ne la change pas, et ne s'exécute seulement qu'au taux-i. Si la variable n'a pas été préalablement déclarée, elle est créée par Csound avec une valeur initiale de zéro ou une chaîne de caractères nulle.

Exemples

L'exemple montre l'utilisation du bus logiciel comme signal de contrôle asynchrone pour fixer la fréquence de coupure du filtre. On suppose qu'un programme externe utilisant l'API fournit les valeurs.

        sr = 44100
        kr = 100
        ksmps = 1

        gkc init 1000   ; set default value
        gkc chnexport "cutoff", 1, 3, i(gkc), 500, 2000

        instr   1
           a1   oscil     p4, p5, 100
           a2   lowpass2  a1, gkc, 200
                out       a2
        endin
      

Crédits

Auteur : Istvan Varga
2005