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

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

gaout init  0

instr 1
a1	oscil	15000, 440, 1
	out	a1
 
gaout = gaout+a1
endin

instr 99

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

</CsInstruments>
<CsScore>

; Table 1: an ordinary sine wave.
f 1 0 32768 10 1 
         
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 530. 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    No messages
-odac           -iadc     -d     ;;;RT audio I/O
; For Non-realtime ouput leave only the line below:
; -o nreverb_ftable.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

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

instr 1
  a1  soundin "beats.wav"
  a2  nreverb a1, 1.5, .75, 0, 8, 71, 4, 72
  out 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 3
e


</CsScore>
</CsoundSynthesizer>


Crédits

Auteur : Paris Smaragdis (reverb2)
MIT, Cambridge
1995

Auteur : Richard Karpen (nreverb)
Seattle, Wash
1998