compress

compress — Compresse, limite, dilate, atténue ou impose un seuil à un signal audio.

Description

Cette unité fonctionne comme un compresseur audio, un limiteur, un expander ou un noise gate, avec un coude arrondi ou non et des caractéristiques d'exécution variant dynamiquement. Il prend deux signaux audio en entrée, aasig et acsig, le premier étant modifié par l'analyse courante du second. Les deux signaux peuvent être le même signal, ou le premier peut être modifié par un signal de contrôle différent.

compress examine d'abord le signal de contrôle acsig en faisant une détection d'enveloppe. Celle-ci est déterminée par deux valeurs de contrôle katt et krel, définissant les constantes d'attaque et de relachement (en secondes) du détecteur. Le détecteur suit les crêtes (pas la valeur efficace) du signal de contrôle. Les valeurs typiques sont 0.01 et 0.1, la dernière étant habituellement du même ordre que ilook.

L'enveloppe courante est alors convertie en décibels puis passe par une fonction de sélection pour déterminer quelle action du compresseur (s'il y en a une) doit être appliquée. La fonction de sélection est définie par quatre valeurs de contrôle en décibels. Elles sont données sous forme de valeurs positives, où 0 dB correspond à une amplitude de 0dbfs/32768, et 90 dB correspond à une amplitude de 0dbfs.

Syntaxe

ar compress aasig, acsig, kthresh, kloknee, khiknee, kratio, katt, krel, ilook

Initialisation

ilook -- temps de prospection en secondes, pendant lequel un déclenchement d'enveloppe interne peut détecter ce qui se passe. Cela induit un délai entre l'entrée et la sortie, mais une petite durée de prospection améliore les performances du détecteur d'enveloppe. 0.05 secondes est une valeur typique, suffisante pour détecter les crêtes de la fréquence la plus basse dans acsig.

Exécution

kthresh -- fixe le niveau le plus bas en décibels qui sera autorisé à traverser le module. Normalement 0 ou moins, mais si le seuil est plus élevé, les signaux de basse énergie tel que le bruit de fond commenceront à être enlevés.

kloknee, khiknee -- coude de la courbe en décibels indiquant où commencent la compression ou l'expansion. Cela fixe les limites d'un coude arrondi joignant la ligne 1:1 des basses amplitudes et la ligne du rapport de compression des fortes amplitudes. 48 et 60 dB sont des valeurs typiques. Si les deux points sont égaux, le coude est anguleux.

kratio -- rapport de compression lorsque le signal est au-delà du coude. La valeur 2 renforce la sortie d'un décibel pour chaque doublement du gain en entrée ; 3 renforce de un pour trois ; 20 de un pour vingt, etc. Les rapports inverses provoquent une expansion du signal : 0.5 donne deux pour un, 0.25 quatre pour un, etc. La valeur 1 ne provoque aucun changement.

Les actions de compress dépendent du réglage des paramètres. Un compresseur-limiteur à coude anguleux, par exemple, est obtenu avec une attaque proche de zéro, des limites de coude égales, et un rapport très élevé (disons 100). Un noise-gate plus expander est obtenu avec un seuil positif et un rapport fractionnaire au-delà du coude. Un compresseur de musique déclenché par la voix (ducker) est obtenu en affectant la musique à aasig et la voix à acsig. Un de-esser de voix est obtenu en affectant la voix aux deux, avec un filtre passe-bande précédant l'entrée acsig pour renforcer les sifflantes. Il est nécessaire d'expérimenter chaque application pour trouver les meilleurs réglages des paramètres ; ceux-ci sont de taux-k pour faciliter cette expérimentation.

Exemples

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

Exemple 154. Exemple de l'opcode compress.

<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-odac  -iadc    ;;;RT audio out and in
; For Non-realtime ouput leave only the line below:
; -o compress.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

sr = 44100
ksmps = 32
nchnls = 2


instr 1	; uncompressed signal

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


instr 2	; compressed signal.
; Use the "beats.wav" audio file and a mic
avoice in
asig   diskin2 "beats.wav", 1, 0, 1

; duck the audio signal "beats.wav" with your voice.
  kthresh = 0
  kloknee = 40
  khiknee = 60
  kratio  = 3
  katt    = 0.1
  krel    = .5
  ilook   = .02
asig  compress asig, avoice, kthresh, kloknee, khiknee, kratio, katt, krel, ilook	; voice-activated compressor
      outs asig, asig

endin

</CsInstruments>
<CsScore>

i 1 0 5

i 2 6 21

e
</CsScore>
</CsoundSynthesizer>


Voir aussi

dam

compress2

Crédits

Ecrit par Barry L. Vercoe pour Extended Csound et introduit dans Csound 5.02.