Skip to main content

Filter

Trait Filter 

Source
pub trait Filter<T>: ParameterizedAlgorithm<T, Params = FilterParams>
where T: Transcendental,
{ // Provided methods fn set_cutoff(&mut self, cutoff: f32) { ... } fn cutoff(&self) -> f32 { ... } fn set_q(&mut self, q: f32) { ... } fn q(&self) -> f32 { ... } fn set_gain_db(&mut self, gain: f32) { ... } fn gain_db(&self) -> f32 { ... } fn filter_type(&self) -> FilterType { ... } }
Expand description

Common trait for all filters

Provides a unified interface for controlling filter parameters. All concrete filters implement this trait via ParameterizedAlgorithm with Params = FilterParams.

§Example

use rill_core_dsp::filters::*;
use rill_core::Transcendental;
use rill_core::time::ClockTick;
use rill_core::traits::ActionContext;

fn process_filter<T: Transcendental>(filter: &mut dyn Filter<T>, input: T) -> T {
    filter.set_cutoff(1000.0);
    filter.set_q(0.707);
    let mut output = [T::ZERO];
    let tick = ClockTick::default();
    let ctx = ActionContext::new(&tick);
    filter.process(Some(&[input]), &mut output).unwrap();
    output[0]
}

Provided Methods§

Source

fn set_cutoff(&mut self, cutoff: f32)

Set cutoff frequency

§Arguments
  • cutoff - frequency in Hz (typically 20..20000)
Source

fn cutoff(&self) -> f32

Get current cutoff frequency

Source

fn set_q(&mut self, q: f32)

Set quality factor (Q)

§Arguments
  • q - quality factor (typically 0.1..20.0)
Source

fn q(&self) -> f32

Get current quality factor

Source

fn set_gain_db(&mut self, gain: f32)

Set gain (for peak/shelving filters)

§Arguments
  • gain - gain in dB (typically -24..24)
Source

fn gain_db(&self) -> f32

Get current gain in dB

Source

fn filter_type(&self) -> FilterType

Get filter type

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<T, F> Filter<T> for F