reverb

reverb — Réverbère un signal d'entrée avec une réponse en fréquence « de lieu naturel ».

Description

Réverbère un signal d'entrée avec une réponse en fréquence « de lieu naturel ».

Syntaxe

ares reverb asig, krvt [, iskip]

Initialisation

iskip (facultatif, 0 par défaut) -- état initial de l'espace de données de la boucle de retard (cf. reson). La valeur par défaut est 0.

Exécution

krvt -- la durée de réverbération (définie comme le temps en secondes pris par un signal pour décroitre à 1/1000 ou 60 dB de son amplitude originale).

Une unité reverb standard est composée de quatre filtres en peigne comb en parallèle suivis de deux unités alpass en série. Les durées de boucle sont réglées pour une « réponse de lieu naturel » optimale. Les besoins en mémoire pour cette unité ne sont proportionnels qu'au taux d'échantillonnage, chaque unité ayant besoin d'approximativement 3K mots pour chaque 10 KC. Les unités comb, alpass, delay, tone et d'autres unités de Csound permettent d'expérimenter sur des conceptions alternatives de réverbération.

Comme la sortie de la reverb standard n'apparait qu'avec un retard d'environ 1/20 seconde, et souvent avec moins de trois-quarts de la puissance originale, il est normal d'envoyer en sortie à la fois la source et le signal réverbéré. Si krvt est fixé par inadvertance à un nombre non positif, il sera automatiquement réinitialisé à 0.01. (Nouveau dans la version 4.07 de Csound.) De plus, comme le son réverbéré persiste longtemps après l'arrêt de la source, il est normal de mettre reverb dans un instrument séparé auquel le son est transmis via une variable globale, et de laisser cet instrument actif durant toute l'exécution.

Exemples

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

Exemple 526. Exemple de l'opcode reverb.

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 reverb.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

; Initialize the global variables.
sr = 44100
kr = 4410
ksmps = 10
nchnls = 1

; init an audio receiver/mixer
ga1 init 0 

; Instrument #1. (there may be many copies)
instr 1 
  ; generate a source signal
  a1 oscili 7000, cpspch(p4), 1 
  ; output the direct sound
  out a1  
  ; and add to audio receiver
  ga1 = ga1 + a1 
endin

; (highest instr number executed last)
instr 99 
  ; reverberate whatever is in ga1
  a3 reverb ga1, 1.5
  ; and output the result
  out a3 
  ; empty the receiver for the next pass
  ga1 = 0 
endin


</CsInstruments>
<CsScore>

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

; p4 = frequency (in a pitch-class)
; Play Instrument #1 for a tenth of a second, p4=8.00
i 1 0 0.1 8.00
; Play Instrument #1 for a tenth of a second, p4=8.02
i 1 1 0.1 8.02
; Play Instrument #1 for a tenth of a second, p4=8.04
i 1 2 0.1 8.04
; Play Instrument #1 for a tenth of a second, p4=8.06
i 1 3 0.1 8.06

; Make sure the reverb remains active.
i 99 0 6
e


</CsScore>
</CsoundSynthesizer>


Voir Aussi

alpass, comb, valpass, vcomb

Crédits

Auteur : William « Pete » Moss
Université du Texas à Austin
Austin, Texas USA
Janvier 2002