chnset — Ecrit des données vers le bus logiciel nommé.
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).
chnset ival, Sname
chnset kval, Sname
chnset aval, Sname
chnset Sval, Sname
chnsetks Sval, Sname
Sname -- une chaîne de caractères indiquant le canal nommé du bus logiciel sur lequel écrire.
ival -- la valeur de contrôle écrite à l'initialisation.
Sval -- la chaîne de caractères écrite à l'initialisation.
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.
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 129. 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>