dam

dam — Un compresseur/expander dynamique.

Description

Cet opcode modifie dynamiquement une valeur de gain appliquée à l'entrée ain en comparant son niveau de puissance à un seuil de niveau donné. Le signal est compressé ou élargi de différents facteurs selon qu'il est au-dessus ou en-dessous du seuil.

Syntaxe

ares dam asig, kthreshold, icomp1, icomp2, irtime, iftime

Initialisation

icomp1 -- rapport de compression pour la zone supérieure.

icomp2 -- rapport de compression pour la zone inférieure

irtime -- montée du gain en secondes. Durée au-delà de laquelle le facteur de gain peut augmenter d'une unité.

iftime -- chute du gain en secondes. Durée au-delà de laquelle le facteur de gain peut diminuer d'une unité. of one unit.

Exécution

asig -- signal d'entrée à modifier

kthreshold -- niveau du signal d'entrée qui agit comme seuil. Il peut changer au taux-k (par exemple pour le ducking)

Note sur les taux de compression : un taux de compression de un laisse le son inchangé. Avec un rapport inférieur à un, le signal sera compressé (réduction de son volume) tandis qu'avec un rapport supérieur à un, le signal sera élargi (augmentation de son volume).

Exemples

Les résultats de l'opcode dam pouvant être subtils, je recommande de les regarder dans un éditeur de sons graphique comme audacity. audacity existe pour Linux, Windows, et MacOS et on peut le télécharger à http://audacity.sourceforge.net.

Voici un exemple de l'opcode dam. Il utilise les fichiers dam.csd et beats.wav.

Exemple 178. Un exemple de l'opcode dam compressant un signal audio.

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

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

instr 1	;normal audio

asig diskin2 "beats.wav", 1, 0, 1
     outs asig, asig

endin


instr 2	; compressed audio

kthreshold = 0.2
icomp1 = 0.8
icomp2 = 0.2
irtime = 0.01
iftime = 0.5
asig diskin2 "beats.wav", 1, 0, 1
asig dam asig, kthreshold, icomp1, icomp2, irtime, iftime
    outs asig, asig
endin

</CsInstruments>
<CsScore>

i 1 0 2
i 2 2.5 8.5

e
</CsScore>
</CsoundSynthesizer>


Cet exemple compresse le fichier audio « beats.wav ». On y entend un schéma de batterie répété deux fois. La deuxième fois, le son est moins fort (compressé) que la première fois.

Voici un autre exemple de l'opcode dam. Il utilise les fichiers dam_expanded.csd et beats.wav.

Exemple 179. Un exemple de l'opcode dam élargissant un signal audio.

<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-odac     ;;;RT audio out
;-iadc    ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o dam_expanded.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

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

instr 1	

asig diskin2 "beats.wav", 1, 0, 1
     outs asig, asig

endin

instr 2	;expanded audio

kthreshold = .5
icomp1 = 2
icomp2 = 3
irtime = 0.01
iftime = 0.1

asig diskin2 "beats.wav", 1, 0, 1
asig dam asig, kthreshold, icomp1, icomp2, irtime, iftime
     outs asig*.2, asig*.2	;adjust volume of expanded beat

endin

</CsInstruments>
<CsScore>

i 1 0 2
i 2 2.5 6.5

e
</CsScore>
</CsoundSynthesizer>


Cet exemple élargit le fichier audio « beats.wav ». On y entend un motif de batterie répété deux fois. La deuxième fois, le son est plus fort (élargi) que la première fois. Pour éviter une distorsion le volume du signal a été diminué.

Voir aussi

compress

Crédits

Auteur : Marc Resibois
Belgique
1997

Nouveau dans la version 3.47