zkwm

zkwm — Ecrit dans une variable zk au taux-k avec mixage.

Description

Ecrit dans une variable zk au taux-k avec mixage.

Syntaxe

zkwm ksig, kndx [, imix]

Initialisation

imix (facultatif) -- indique si le mixage sera fait.

Exécution

ksig -- valeur à écrire dans l'espace zk.

kndx -- pointe sur la position zk ou za vers laquelle écrire.

zkwm est un opcode de mixage, il ajoute le signal à la valeur courante de la variable. Si aucun imix n'est specifié, le mixage aura toujours lieu. imix = 0 provoquera l'écrasement des données comme dans ziw, zkw, et zaw. Toutes autres valeurs entraînera un mixage.

Avertissement : lors de l'utilisation des opcodes de mixage ziwm, zkwm, et zawm, il faut faire attention à ce que les variables qui reçoivent 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 possible serait d'établir certains intervalles de variables zk ou za à utiliser pour le mixage, puis d'utiliser ensuite zkcl ou zacl pour effacer ces variables.

Exemples

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

Exemple 1111. Exemple de l'opcode zkwm.

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    No messages
-odac           -iadc     -d     ;;;RT audio I/O
; For Non-realtime ouput leave only the line below:
; -o zkwm.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 basic instrument.
instr 1
  ; Generate a k-rate signal.
  ; The signal goes from 30 to 20,000 then back to 30.
  kramp linseg 30, p3/2, 20000, p3/2, 30

  ; Mix the signal into the zk variable #1.
  zkwm kramp, 1
endin

; Instrument #2 -- another basic instrument.
instr 2
  ; Generate another k-rate signal.
  ; This is a low frequency oscillator.
  klfo lfo 3500, 2

  ; Mix this signal into the zk variable #1.
  zkwm klfo, 1
endin

; Instrument #3 -- generates audio output.
instr 3
  ; Read zk variable #1, containing a mix of both signals.
  kamp zkr 1

  ; Create a sine waveform. Its amplitude will vary
  ; according to the values in zk variable #1.
  a1 oscil kamp, 880, 1

  ; Generate the audio output.
  out a1

  ; Clear the zk variable, get it ready for 
  ; another pass.
  zkcl 0, 1
endin


</CsInstruments>
<CsScore>

; Table #1, a sine wave.
f 1 0 16384 10 1

; Play Instrument #1 for 5 seconds.
i 1 0 5
; Play Instrument #2 for 5 seconds.
i 2 0 5
; Play Instrument #3 for 5 seconds.
i 3 0 5
e


</CsScore>
</CsoundSynthesizer>


Voir aussi

zaw, zawm, ziw, ziwm, zkcl, zkw, zkr

Crédits

Auteur : Robin Whittle
Australie
Mai 1997

Nouveau dans la version 3.45

Exemple écrit par Kevin Conder.