nreverb — Une réverbération constituée de 6 filtres en peigne passe-bas parallèles.
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.
ares nreverb asig, ktime, khdif [, iskip] [,inumCombs] [, ifnCombs] \
[, inumAlpas] [, ifnAlpas]
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.
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.
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>