freeverb — Version opcode de Freeverb de Jezar.
freeverb est une unité de réverbération stéréo basée sur les sources C++ de Jezar du domaine public, composée de huit filtres en peigne en parallèle sur les deux canaux, suivis de quatre unités passe-tout en série. Les filtres du canal de droite sont légèrement déréglés par rapport à ceux du canal de gauche afin de créer un effet stéréo.
iSRate (facultatif, 44100 par défaut) -- ajuste les paramètres de réverbération pour une utilisation avec le taux d'échantillonnage spécifié (cela affecte la longueur en échantillons des lignes à retard et l'atténuation des hautes fréquences). Seuls des multiples entiers de 44100 reproduiront exactement le caractère original de la réverbération ; il peut ainsi être utile de fixer ce paramètre à 44100 ou à 88200 pour un taux d'échantillonnage de l'orchestre de 48000 ou de 96000 Hz, respectivement. Bien que iSRate soit normalement supposé être proche du taux d'échantillonnage de l'orchestre, des valeurs différentes peuvent servir à des effets spéciaux.
iSkip (facultatif, 0 par défaut) -- s'il est différent de zéro, l'initialisation de l'opcode sera ignorée, si c'est possible.
ainL, ainR -- signaux d'entrée ; habituellement, les deux sont identiques, mais on peut utiliser des entrées différentes pour des effets spéciaux.
Note | |
---|---|
Il est recommendé de traiter les signaux d'entrée avec l'opcode denorm afin d'éviter les nombres dénormalisés qui pourraient augmenter la charge CPU de manière significative dans certains cas. |
aoutL, aoutR -- signaux de sortie pour les canaux gauche et droite.
kRoomSize (compris entre 0 et 1) -- contrôle la longueur de la réverbération, une valeur plus importante signifiant une réverbération plus longue. Les valeurs supérieures à 1 peuvent rendre l'opcode instable.
kHFDamp (compris entre 0 et 1) -- atténuation des hautes fréquences ; une valeur de zéro signifie que toutes les fréquences décroissent à la même vitesse, tandis que des valeurs supérieures donnent une décroissance plus rapide des hautes fréquences.
Voici un exemple de l'opcode freeverb. Il utilise le fichier freeverb.csd.
Exemple 382. Un exemple de l'opcode freeverb.
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 freeverb.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 a1 vco2 0.75, 440, 10 kfrq port 100, 0.008, 20000 a1 butterlp a1, kfrq a2 linseg 0, 0.003, 1, 0.01, 0.7, 0.005, 0, 1, 0 a1 = a1 * a2 denorm a1 aL, aR freeverb a1, a1, 0.9, 0.35, sr, 0 outs a1 + aL, a1 + aR endin </CsInstruments> <CsScore> i 1 0 5 e </CsScore> </CsoundSynthesizer>