minabsaccum

minabsaccum — Accumule le minimum de la valeur absolue de signaux audio.

Description

minabsaccum compare deux variables de taux-audio et écrit le minimum de la valeur absolue des deux dans la première.

Syntaxe

minabsaccum aAccumulator, aInput

Exécution

aAccumulator -- variable audio dans laquelle la valeur minimale est écrite.

aInput -- signal auquel aAccumulator est comparé.

L'opcode minabsaccum est conçu pour accumuler la valeur minimale de plusieurs signaux audio qui peuvent provenir de plusieurs instances de note, dans différents canaux, ou qui ne peuvent être comparés en une fois au moyen de l'opcode minabs. minabsaccumest identique à minaccum sauf qu'il prend la valeur absolue de aInput avant la comparaison. Sa sémantique est semblable à celle de vincr car aAccumulator est utilisé à la fois comme variable d'entrée et comme variable de sortie, sauf que minabsaccum garde la valeur absolue minimale au lieu d'additionner les signaux ensemble. minabsaccum exécute l'opération suivante sur chaque paire d'échantillons :


            if  (abs(aInput) < aAccumulator)  aAccumulator = abs(aInput)

aAccumulator sera habituellement une variable audio globale. A la fin de chaque cycle de calcul (période-k), après que sa valeur ait été lue et utilisée, la variable accumulateur doit habituellement être réinitialisée à une valeur positive suffisamment grande pour être toujours supérieure aux signaux d'entrée auquels elle est comparée.

Exemples

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

Exemple 616. Exemple de l'opcode minabsaccum.

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
-odac   ;;;realtime audio out
;-iadc    ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o minabsaccum.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

sr = 44100
ksmps = 32
nchnls = 2
0dbfs  = 1

instr 1	;saw

asig  vco2 .2, p4		
      outs  asig, asig				
gasaw = asig
endin

instr 2	;sine

aout  poscil .3, p4, 1		
      outs  aout, aout				
gasin = aout
endin

instr 10

accum init 0	
      minabsaccum  accum, gasaw + gasin		;saw and sine accumulated	
accum dcblock2 accum				;get rid of DC
      outs  accum, accum	
     		
clear accum
endin

</CsInstruments>
<CsScore>
f 1 0 4096 10 1	

i 1 0 7 330
i 2 3 3 440

i 1 10 7 330	;same notes but without minabsaccum, for comparison
i 2 13 3 440

i 10 0 6	;accumulation note stops after 6 seconds

e
</CsScore>
</CsoundSynthesizer>


Voir aussi

maxabsaccum, maxaccum, minaccum, max, min, maxabs, minabs, vincr

Crédits

Auteur : Anthony Kozar
Mars 2006

Nouveau dans la version 5.01 de Csound.