chnset
Précédent | Opcodes et opérateurs de l'orchestre | Suivant

## chnset

chnset — Ecrit des données vers le bus logiciel nommé.

## Description

Ecrit sur un canal du bus logiciel nommé. Cela implique la déclaration du canal avec imod=2 (voir aussi chn_k, chn_a et chn_S).

## Syntaxe

    chnset ival, Sname

    chnset kval, Sname

    chnset aval, Sname

    chnset Sval, Sname

    chnsetks Sval, Sname

    chnseti ival[], []Sname

    chnsetk kval[], []Sname

    chnseta aval[], []Sname

    chnsets Sval[], []Sname

## Initialisation

Sname -- une chaîne de caractères indiquant le canal nommé du bus logiciel sur lequel écrire.

Sname[] -- un tableau de chaînes de caractères indiquant sur quels canaux nommés du bus logiciel écrire.

ival -- la valeur de contrôle écrite à l'initialisation.

ival[] -- un tableau de valeurs de contrôle à écrire à l'initialisation.

Sval -- la chaîne de caractères écrite à l'initialisation.

Sval[] -- un tableau de chaînes de caractères à écrire à l'initialisation.

## Exécution

kval -- la valeur de contrôle écrite pendant l'exécution.

aval -- le signal audio écrit pendant l'exécution.

Sval -- la chaîne de caractères à écrire au taux-k. L'opcode chnset avec des chaînes de caractères fonctionne au temps-i et durant l'exécution, tandis que chnsetks ne fonctionne que pendant l'exécution. Le contenu du canal n'est mis à jour que si la variable chaîne de caractères est modifiée.

kval[] -- un tableau de valeurs de contrôle à écrire pendant l'exécution.

aval[] -- un tableau de vecteurs audio à écrire pendant l'exécution.

| Note
Bien qu'il soit possible de boucler sur les noms de canaux d'un tableau avec chnget et chnset, l'utilisation de la variante basée sur des tableaux est plus efficace.

## Exemples

L'exemple montre l'utilisation du bus logiciel pour écrire une information de hauteur vers un programme de contrôle.

            sr = 44100
            kr = 100
            ksmps = 1

            instr   1
               a1    in
               kp,ka pitchamdf a1
                     chnset    kp, "pitch"
            endin

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

Exemple 135. Exemple de l'opcode chnset.

    <CsoundSynthesizer>
    <CsOptions>
    ; Select audio/midi flags here according to platform
    -odac     ;;;realtime audio out
    ;-iadc    ;;;uncomment -iadc if realtime audio input is needed too
    ; For Non-realtime ouput leave only the line below:
    ; -o chnset.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>
    ;Example by Joachim Heintz
    sr = 44100
    ksmps = 32
    nchnls = 2
    0dbfs = 1

      instr 1; send i-values
              chnset    1, "sio"
              chnset    -1, "non"
      endin

      instr 2; send k-values
    kfreq     randomi   100, 300, 1
              chnset    kfreq, "cntrfreq"
    kbw       =         kfreq/10
              chnset    kbw, "bandw"
      endin

      instr 3; send a-values
    anois     rand      .1
              chnset    anois, "noise"
     loop:
    idur      random    .3, 1.5
              timout    0, idur, do
              reinit    loop
     do:
    ifreq     random    400, 1200
    iamp      random    .1, .3
    asig      oscils    iamp, ifreq, 0
    aenv      transeg   1, idur, -10, 0
    asine     =         asig * aenv
              chnset    asine, "sine"
      endin

      instr 11; receive some chn values and send again
    ival1     chnget    "sio"
    ival2     chnget    "non"
              print     ival1, ival2
    kcntfreq  chnget    "cntrfreq"
    kbandw    chnget    "bandw"
    anoise    chnget    "noise"
    afilt     reson     anoise, kcntfreq, kbandw
    afilt     balance   afilt, anoise
              chnset    afilt, "filtered"
      endin

      instr 12; mix the two audio signals
    amix1     chnget     "sine"
    amix2     chnget     "filtered"
              chnmix     amix1, "mix"
              chnmix     amix2, "mix"
      endin

      instr 20; receive and reverb
    amix      chnget     "mix"
    aL, aR    freeverb   amix, amix, .8, .5
              outs       aL, aR
      endin

      instr 100; clear
              chnclear   "mix"
      endin

    </CsInstruments>
    <CsScore>
    i 1 0 20
    i 2 0 20
    i 3 0 20
    i 11 0 20
    i 12 0 20
    i 20 0 20
    i 100 0 20
    </CsScore>
    </CsoundSynthesizer>

## Crédits

Auteur : Istvan Varga
2005
Opcodes de canaux basés sur des tableaux ajoutés dans la version 6.14 - Rory Walsh

Précédent | Niveau supérieur | Suivant
chnparams | Sommaire | chuap