reverb — Réverbère un signal d'entrée avec une réponse en fréquence « de lieu naturel ».
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.
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.
Voici un exemple de l'opcode reverb. Il utilise le fichier reverb.csd.
Exemple 906. 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 -odac ;;;realtime audio out ;-iadc ;;;uncomment -iadc if realtime audio input is needed too ; For Non-realtime ouput leave only the line below: ; -o reverb.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 0dbfs = 1 nchnls = 2 ga1 init 0 instr 1 asig poscil .2, cpspch(p4), 1 outs asig, asig ga1 += asig ;add direct signal to global reverb endin instr 99 ;(highest instr number executed last) arev reverb ga1, 1.5 outs arev, arev ga1 = 0 ;clear endin </CsInstruments> <CsScore> f 1 0 128 10 1 ;sine i 1 0 0.1 7.00 ;short sounds i 1 1 0.1 8.02 i 1 2 0.1 8.04 i 1 3 0.1 8.06 i 99 0 6 ;reverb runs for 6 seconds e </CsScore> </CsoundSynthesizer>