ziwm — Ecrit dans une variable zk au taux-i avec mixage.
isig -- initialise la valeur à la position zk.
indx -- pointe sur la position zk vers laquelle écrire.
imix (facultatif, par défault=1) -- indique si le mixage doit avoir lieu.
ziwm est un opcode de mixage, il ajoute le signal à la valeur actuelle de la variable. Si aucun imix n'est spécifié, le mixage aura toujours lieu. imix = 0 provoquera l'écrasement des données comme dans ziw, zkw et zaw. Toute autre valeur entraînera un mixage.
Attention : lors de l'utilisation des opcodes de mixage ziwm, zkwm et zawm, il faut faire attention à ce que les variables qui recoivent le mixage soient remises à zéro à la fin (ou au début) de chaque cycle-k ou -a. Leur ajouter indéfiniment des signaux peut engendrer des valeurs astronomiques.
Une approche serait d'établir certains intervalles de variables zk et za à utiliser pour le mixage, puis d'utiliser zkcl ou zacl pour effacer ces intervalles.
Voici un exemple de l'opcode ziwm. Il utilise le fichier ziwm.csd.
Exemple 1251. Exemple de l'opcode ziwm.
Voir les sections Audio en Temps Réel et Options de la Ligne de Commande pour plus d'information sur l'utilisation des options de la ligne de commande.
<CsoundSynthesizer> <CsOptions> ; Select audio/midi flags here according to platform ; Audio out Audio in -odac -iadc ;;;RT audio I/O ; For Non-realtime ouput leave only the line below: ; -o ziwm.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ; Initialize the global variables. sr = 44100 kr = 4410 ksmps = 10 nchnls = 1 ; Initialize the ZAK space. ; Create 1 a-rate variable and 1 k-rate variable. zakinit 1, 1 ; Instrument #1 -- a simple instrument. instr 1 ; Add 20.5 to zk variable #1. ziwm 20.5, 1 endin ; Instrument #2 -- another simple instrument. instr 2 ; Add 15.25 to zk variable #1. ziwm 15.25, 1 endin ; Instrument #3 -- prints out zk variable #1. instr 3 ; Read zk variable #1 at i-rate. i1 zir 1 ; Print out the value of zk variable #1. ; It should be 35.75 (20.5 + 15.25) print i1 endin </CsInstruments> <CsScore> ; Play Instrument #1 for one second. i 1 0 1 ; Play Instrument #2 for one second. i 2 0 1 ; Play Instrument #3 for one second. i 3 0 1 e </CsScore> </CsoundSynthesizer>