Struct web_audio_api::node::BiquadFilterNode
source · [−]pub struct BiquadFilterNode { /* private fields */ }
Expand description
BiquadFilterNode is an AudioNode processor implementing very common low-order IIR filters.
Low-order filters are the building blocks of basic tone controls (bass, mid, treble), graphic equalizers, and more advanced filters. Multiple BiquadFilterNode filters can be combined to form more complex filters.
- MDN documentation: https://developer.mozilla.org/en-US/docs/Web/API/BiquadFilterNode
- specification: https://webaudio.github.io/web-audio-api/#BiquadFilterNode
- see also:
BaseAudioContext::create_biquad_filter
Usage
use std::fs::File;
use web_audio_api::context::{AudioContext, BaseAudioContext};
use web_audio_api::node::{AudioNode, AudioScheduledSourceNode};
let context = AudioContext::default();
let file = File::open("samples/think-stereo-48000.wav").unwrap();
let buffer = context.decode_audio_data_sync(file).unwrap();
// create a lowpass filter (default) and open frequency parameter over time
let biquad = context.create_biquad_filter();
biquad.connect(&context.destination());
biquad.frequency().set_value(10.);
biquad
.frequency()
.exponential_ramp_to_value_at_time(10000., context.current_time() + 10.);
// pipe the audio buffer source into the lowpass filter
let src = context.create_buffer_source();
src.connect(&biquad);
src.set_buffer(buffer);
src.set_loop(true);
src.start();
Examples
cargo run --release --example biquad
Implementations
sourceimpl BiquadFilterNode
impl BiquadFilterNode
sourcepub fn new<C: BaseAudioContext>(
context: &C,
options: BiquadFilterOptions
) -> Self
pub fn new<C: BaseAudioContext>(
context: &C,
options: BiquadFilterOptions
) -> Self
returns a BiquadFilterNode
instance
Arguments
context
- audio context in which the audio node will live.options
- biquad filter options
sourcepub fn gain(&self) -> &AudioParam
pub fn gain(&self) -> &AudioParam
Returns the gain audio paramter
sourcepub fn frequency(&self) -> &AudioParam
pub fn frequency(&self) -> &AudioParam
Returns the frequency audio paramter
sourcepub fn detune(&self) -> &AudioParam
pub fn detune(&self) -> &AudioParam
Returns the detune audio paramter
sourcepub fn q(&self) -> &AudioParam
pub fn q(&self) -> &AudioParam
Returns the Q audio paramter
sourcepub fn type_(&self) -> BiquadFilterType
pub fn type_(&self) -> BiquadFilterType
Returns the biquad filter type
sourcepub fn set_type(&self, type_: BiquadFilterType)
pub fn set_type(&self, type_: BiquadFilterType)
sourcepub fn get_frequency_response(
&self,
frequency_hz: &[f32],
mag_response: &mut [f32],
phase_response: &mut [f32]
)
pub fn get_frequency_response(
&self,
frequency_hz: &[f32],
mag_response: &mut [f32],
phase_response: &mut [f32]
)
Returns the frequency response for the specified frequencies
Arguments
frequency_hz
- frequencies for which frequency response of the filter should be calculatedmag_response
- magnitude of the frequency response of the filterphase_response
- phase of the frequency response of the filter
Panics
This function will panic if arguments’ lengths don’t match
Trait Implementations
sourceimpl AudioNode for BiquadFilterNode
impl AudioNode for BiquadFilterNode
fn registration(&self) -> &AudioContextRegistration
fn channel_config(&self) -> &ChannelConfig
sourcefn number_of_inputs(&self) -> usize
fn number_of_inputs(&self) -> usize
The number of inputs feeding into the AudioNode. For source nodes, this will be 0.
sourcefn number_of_outputs(&self) -> usize
fn number_of_outputs(&self) -> usize
The number of outputs coming out of the AudioNode.
sourcefn context(&self) -> &ConcreteBaseAudioContext
fn context(&self) -> &ConcreteBaseAudioContext
The BaseAudioContext
concrete type which owns this
AudioNode. Read more
sourcefn connect<'a>(&self, dest: &'a dyn AudioNode) -> &'a dyn AudioNode
fn connect<'a>(&self, dest: &'a dyn AudioNode) -> &'a dyn AudioNode
Connect the output of this AudioNode to the input of another node. Read more
sourcefn connect_at<'a>(
&self,
dest: &'a dyn AudioNode,
output: usize,
input: usize
) -> &'a dyn AudioNode
fn connect_at<'a>(
&self,
dest: &'a dyn AudioNode,
output: usize,
input: usize
) -> &'a dyn AudioNode
Connect a specific output of this AudioNode to a specific input of another node. Read more
sourcefn disconnect_from<'a>(&self, dest: &'a dyn AudioNode) -> &'a dyn AudioNode
fn disconnect_from<'a>(&self, dest: &'a dyn AudioNode) -> &'a dyn AudioNode
Disconnects all outputs of the AudioNode that go to a specific destination AudioNode.
sourcefn disconnect(&self)
fn disconnect(&self)
Disconnects all outgoing connections from the AudioNode.
sourcefn channel_count_mode(&self) -> ChannelCountMode
fn channel_count_mode(&self) -> ChannelCountMode
Represents an enumerated value describing the way channels must be matched between the node’s inputs and outputs. Read more
fn set_channel_count_mode(&self, v: ChannelCountMode)
sourcefn channel_interpretation(&self) -> ChannelInterpretation
fn channel_interpretation(&self) -> ChannelInterpretation
Represents an enumerated value describing the meaning of the channels. This interpretation will define how audio up-mixing and down-mixing will happen. Read more
fn set_channel_interpretation(&self, v: ChannelInterpretation)
sourcefn channel_count(&self) -> usize
fn channel_count(&self) -> usize
Represents an integer used to determine how many channels are used when up-mixing and down-mixing connections to any inputs to the node. Read more
fn set_channel_count(&self, v: usize)
Auto Trait Implementations
impl RefUnwindSafe for BiquadFilterNode
impl Send for BiquadFilterNode
impl Sync for BiquadFilterNode
impl Unpin for BiquadFilterNode
impl UnwindSafe for BiquadFilterNode
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more