nreverb

nreverb — Une réverbération constituée de 6 filtres en peigne passe-bas parallèles.

Description

Réverbération constituée de 6 filtres en peigne passe-bas parallèles suivis de 5 filtres passe-tout en série. nreverb remplace reverb2 (version 3.48) et ainsi les deux opcodes sont identiques.

Syntaxe

ares nreverb asig, ktime, khdif [, iskip] [,inumCombs] [, ifnCombs] \
      [, inumAlpas] [, ifnAlpas]

Initialisation

iskip (facultatif, 0 par défaut) -- L'initialisation est ignorée si ce paramètre est présent et différent de zéro.

inumCombs (facultatif) -- nombre de constantes de filtre dans le filtre en peigne. S'il est omis, les valeurs par défaut sont les constantes de nreverb. Nouveau dans la version 4.09 de Csound.

ifnCombs - table de fonction contenant inumCombs valeurs temporelles du filtre en peigne, suivies du même nombre de valeurs de gain. La table ne doit pas être normalisée (utiliser un numéro de fgen négatif). Les valeurs temporelles positives sont en secondes. Les valeurs temporelles sont converties en interne en nombre d'échantillons, puis fixées au nombre premier supérieur le plus proche. Si le temps est négatif, il est directement interprété en trames d'échantillons, et aucun traitement n'est effectué (à part le changement de signe). Nouveau dans la version 4.09 de Csound.

inumAlpas, ifnAlpas (facultatif) -- comme inumCombs/ifnCombs, pour le filtre passe-tout. Nouveau dans Csound 4.09.

Exécution

Le signal d'entrée asig est réverbéré pendant ktime secondes. Le paramètre khdif contrôle la diffusion des hautes fréquence. Les valeurs de khdif doivent être comprises entre 0 et 1. Si khdif vaut 0 toutes les fréquences décroissent à la même vitesse. Si khdif vaut 1, les hautes fréquences décroissent plus vite que les basses fréquences. Si ktime reçoit par inadvertance un nombre non positif, il est automatiquement réinitialisé à 0.01. (Nouveau dans la version 4.07 de Csound.)

A partir de la version 4.09 de Csound, nreverb peut lire n'importe quel nombre de filtres en peigne et passe-tout depuis une ftable.

Exemples

Voici un exemple simple de l'opdoce nreverb. Il utilise le fichier nreverb.csd.

Exemple 661. Exemple simple de l'opdoce nreverb.

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
-odac             ;;;RT audio out
; For Non-realtime ouput leave only the line below:
;-o nreverb.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

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

gaout init  0

instr 1
a1	oscili	.5, 440
outs	a1, a1
 
gaout = gaout+a1
endin

instr 99

a2	nreverb	gaout, 2, .3
outs	a2*.15, a2*.15		;volume of reverb		
	 
gaout = 0
endin

</CsInstruments>
<CsScore>

i 1 0 .5
i 1 1 .5
i 1 2 .5
i 1 3 .5
i 1 4 .5
i 99 0 9 
e
</CsScore>
</CsoundSynthesizer>


Voici un exemple de l'opcode nreverb utilisant une ftable pour les constantes de filtre. Il utilise les fichiers nreverb_ftable.csd et beats.wav.

Exemple 662. Un exemple de l'opcode nreverb utilisant une ftable pour les constantes de filtre.

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

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

instr 1

a1  soundin "beats.wav"
a2  nreverb a1, 1.5, .75, 0, 8, 71, 4, 72
outs a1 + a2 * .4, a1 + a2 * .4

endin

</CsInstruments>
<CsScore>
; freeverb time constants, as direct (negative) sample, with arbitrary gains
f71 0 16   -2  -1116 -1188 -1277 -1356 -1422 -1491 -1557 -1617  0.8  0.79  0.78  0.77  0.76  0.75  0.74  0.73
f72 0 16   -2  -556 -441 -341 -225  0.7  0.72  0.74  0.76

i1 0 5
e
</CsScore>
</CsoundSynthesizer>


Crédits

Auteur : Paris Smaragdis (reverb2)
MIT, Cambridge
1995

Auteur : Richard Karpen (nreverb)
Seattle, Wash
1998