Module Filter

val one_pole_coefficient : float -> float
val low_pass : cutoff:float -> Signal.t -> Signal.t
val high_pass : cutoff:float -> Signal.t -> Signal.t
type kind =
  1. | Low_pass
  2. | High_pass
  3. | Band_pass
type biquad = {
  1. b0 : float;
  2. b1 : float;
  3. b2 : float;
  4. a1 : float;
  5. a2 : float;
}
val biquad : ?rate:float -> kind -> cutoff:float -> q:float -> biquad
val response : ?rate:float -> biquad -> float -> float
val peaking : frequency:float -> q:float -> gain:float -> biquad
val low_shelf : frequency:float -> gain:float -> biquad
val high_shelf : frequency:float -> gain:float -> biquad
val run : biquad -> Signal.t -> Signal.t
type memory
val silence : unit -> memory
val step : biquad -> memory -> float -> float
val process : biquad -> memory -> Signal.t -> unit
val sweep : kind -> q:float -> from:float -> to_:float -> Signal.t -> Signal.t