lpf18 — Un filtre passe-bas résonant glissant à 3 pôles.
iskip (facultatif, à par défaut) -- S'il est présent et différent de zéro, l'initialisation est ignorée.
xfco -- fréquence de coupure du filtre en Hz. Doit être comprise entre 0 et sr/2.
xres -- quantité de résonance. Il y a des auto-oscillations lorsque kres est proche de 1. Doit être habituellement compris entre 0 et 1, mais des valeurs légèrement supérieures à 1 sont possibles pour obtenir des oscillations plus soutenues et un effet de « saturation ».
xdist -- quantité de distortion. kdist = 0 donne une sortie propre. kdist > 0 ajoute une distorsion de type tanh() contrôlée par les paramètres du filtre, de façon à ce qu'une faible fréquence de coupure et qu'une résonance importante augmentent le taux de distorsion. Il est conseillé d'expérimenter.
lpf18 est une simulation numérique d'un filtre passe-bas à 3 pôles (18 dB/oct) capable d'auto-oscillations avec une unité de distorsion intégrée. C'est vraiment une version 3 pôles de moogvcf, révisée, recalibrée et comportant quelques améliorations. Les tables de réglage et de rétroaction n'utilisent pas plus de 6 additions et 6 multiplications par cycle de contrôle. L'unité de distorsion est basée sur une fonction tanh modifiée, pilotée par les contôles du filtre.
Note | |
---|---|
Avant la version 6.04, ce filtre nécessitait un signal d'entrée normalisé à un. |
Voici un exemple de l'opcode lpf18. Il utilise le fichier lpf18.csd.
Exemple 547. Exemple de l'opcode lpf18.
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 lpf18.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ; by Kevin Conder with help from Iain Duncan sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 kamp init 1 ; Note that its amplitude (kamp) ranges from 0 to 1. kcps init 440 knh init 3 ifn = 1 asine buzz kamp, kcps, knh, ifn ; Generate a sine waveform. kfco line 300, p3, 3000 ; Filter the sine waveform. kres init 0.8 ; Vary the cutoff frequency (kfco) from 300 to 3,000 Hz. kdist = p4 ivol = p5 aout lpf18 asine, kfco, kres, kdist outs aout * ivol, aout * ivol endin </CsInstruments> <CsScore> f 1 0 16384 10 1 ; sine wave. ; different distortion and volumes to compensate i 1 0 4 0.2 .8 i 1 4.5 4 0.9 .7 e </CsScore> </CsoundSynthesizer>