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.
kfco -- fréquence de coupure du filtre en Hz. Doit être comprise entre 0 et sr/2.
kres -- 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 ».
kdist -- 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 |
---|---|
Ce filtre nécessite un signal d'entrée normalisé à un. |
Voici un exemple de l'opcode lpf18. Il utilise le fichier lpf18.csd.
Exemple 435. 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 No messages -odac -iadc -d ;;;RT audio I/O ; For Non-realtime ouput leave only the line below: ; -o lpf18.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ; Initialize the global variables. sr = 44100 kr = 4410 ksmps = 10 nchnls = 1 ; Instrument #1. instr 1 ; Generate a sine waveform. ; Note that its amplitude (kamp) ranges from 0 to 1. kamp init 1 kcps init 440 knh init 3 ifn = 1 asine buzz kamp, kcps, knh, ifn ; Filter the sine waveform. ; Vary the cutoff frequency (kfco) from 300 to 3,000 Hz. kfco line 300, p3, 3000 kres init 0.8 kdist = p4 ivol = p5 aout lpf18 asine, kfco, kres, kdist out aout * ivol endin </CsInstruments> <CsScore> ; Table #1, a sine wave. f 1 0 16384 10 1 ; different distortion and volumes to compensate i 1 0 4 0.2 30000 i 1 4.5 4 0.9 27000 e </CsScore> </CsoundSynthesizer>