chn

chn — Déclare un canal du bus logiciel nommé.

Description

Déclare un canal du bus logiciel nommé, en donnant des paramètres facultatifs dans le cas d'un canal de contrôle. Si le canal n'existe pas encore, il est créé avec une valeur initiale de zéro ou une chaîne de caractères vide. Sinon le type (contrôle, audio ou chaînes de caractères) du canal existant doit correspondre à la déclaration ou bien il y aura une erreur d'initialisation. Le mode entrée/sortie d'un canal existant est mis à jour de façon à représenter le OU binaire entre la valeur précédente et la nouvelle.

Syntaxe

 chn_k Sname, imode[, itype, idflt, imin, imax, ix, iy, iwidth, iheight, Sattributes]
 chn_a Sname, imode
 chn_S 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.

ix -- position x suggérée pour le contrôleur.

iy -- position y suggérée pour le contrôleur.

iwidth -- position suggérée de la largeur pour le contrôleur.

iheight -- position suggérée de la hauteur pour le contrôleur.

Sattributes -- attributs pour le contrôleur.

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. De plus, la valeur initiale d'un nouveau canal de contrôle est zéro, quelque soit la valeur de idflt.

Il peut être préférable d'utiliser chnexport pour communiquer avec un logiciel externe, car il permet un accès direct aux variables de l'orchestre exportées comme des canaux du bus, ce qui évite l'utilisation de chnset et de chnget pour envoyer ou recevoir des données.

Exécution

chn_k, chn_a, et chn_S déclarent respectivement un canal de contrôle, un canal audio ou un canal de chaînes de caractères.

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

        chn_k "cutoff", 1, 3, 1000, 500, 2000

        instr   1
           kc   chnget    "cutoff"
           a1   oscil     p4, p5, 100
           a2   lowpass2  a1, kc, 200
                out       a2
        endin
      

Crédits

Auteur : Istvan Varga
2005