chnget
Prev | Opcodes et opérateurs de l'orchestre | Next

## chnget

chnget — Lit des données depuis le bus logiciel.

## Description

Lit des données depuis un canal du bus logiciel entrant nommé. Cela implique la déclaration du canal avec imode=1 (voir aussi chn_k, chn_a et chn_S).

## Syntaxe

    ival chnget Sname

    kval chnget Sname

    aval chnget Sname

    Sval chnget Sname

## Initialisation

Sname -- une chaîne de caractères identifiant le canal du bus logiciel nommé à lire.

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

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

## Exécution

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

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

## 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

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

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

Example 113. Exemple de l'opcode chnget.

    <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 chnget.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

Prev | Up | Next
chnexport | Home | chnmix