lpf18

lpf18 — Un filtre passe-bas résonant glissant à 3 pôles.

Description

Implémentation d'un filtre passe-bas résonant glissant à 3 pôles.

Syntaxe

ares lpf18 asig, kfco, kres, kdist [, iskip]

Initialisation

iskip (facultatif, à par défaut) -- S'il est présent et différent de zéro, l'initialisation est ignorée.

Exécution

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] Note

Ce filtre nécessite un signal d'entrée normalisé à un.

Exemples

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>


Crédits

Auteur : Josep M Comajuncosas
Espagne
Décembre 2000

Exemple écrit par Kevin Conder avec l'aide de Iain Duncan. Merci à Iain pour son aide sur cet exemple.

Nouveau dans la version 4.10 de Csound.