Struct web_audio_api::node::DelayNode
source · pub struct DelayNode { /* private fields */ }
Expand description
Node that delays the incoming audio signal by a certain amount
The current implementation does not allow for zero delay. The minimum delay is one render quantum (e.g. ~2.9ms at 44.1kHz).
- MDN documentation: https://developer.mozilla.org/en-US/docs/Web/API/DelayNode
- specification: https://webaudio.github.io/web-audio-api/#DelayNode
- see also:
BaseAudioContext::create_delay
Usage
use std::fs::File;
use web_audio_api::context::{BaseAudioContext, AudioContext};
use web_audio_api::node::{AudioNode, AudioScheduledSourceNode};
// create an `AudioContext` and load a sound file
let context = AudioContext::default();
let file = File::open("samples/sample.wav").unwrap();
let audio_buffer = context.decode_audio_data_sync(file).unwrap();
// create a delay of 0.5s
let delay = context.create_delay(1.);
delay.delay_time().set_value(0.5);
delay.connect(&context.destination());
let src = context.create_buffer_source();
src.set_buffer(audio_buffer);
// connect to both delay and destination
src.connect(&delay);
src.connect(&context.destination());
src.start();
Examples
cargo run --release --example simple_delay
cargo run --release --example feedback_delay
Implementations§
source§impl DelayNode
impl DelayNode
sourcepub fn new<C: BaseAudioContext>(context: &C, options: DelayOptions) -> Self
pub fn new<C: BaseAudioContext>(context: &C, options: DelayOptions) -> Self
Create a new DelayNode
Panics
Panics when the max delay value is smaller than zero or langer than three minutes.
sourcepub fn delay_time(&self) -> &AudioParam
pub fn delay_time(&self) -> &AudioParam
A-rate AudioParam
representing the amount of delay (in seconds) to apply.
Trait Implementations§
source§impl AudioNode for DelayNode
impl AudioNode for DelayNode
source§fn 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.
source§fn 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.
source§fn disconnect(&self)
fn disconnect(&self)
Disconnects all outgoing connections from the AudioNode.
fn registration(&self) -> &AudioContextRegistration
fn channel_config(&self) -> &ChannelConfig
source§fn 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.
source§fn number_of_outputs(&self) -> usize
fn number_of_outputs(&self) -> usize
The number of outputs coming out of the AudioNode.
source§fn context(&self) -> &ConcreteBaseAudioContext
fn context(&self) -> &ConcreteBaseAudioContext
The
BaseAudioContext
concrete type which owns this
AudioNode.source§fn 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
source§fn 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.
source§fn set_channel_count_mode(&self, v: ChannelCountMode)
fn set_channel_count_mode(&self, v: ChannelCountMode)
Update the
channel_count_mode
attributesource§fn 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.
source§fn set_channel_interpretation(&self, v: ChannelInterpretation)
fn set_channel_interpretation(&self, v: ChannelInterpretation)
Update the
channel_interpretation
attributesource§fn 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.
source§fn set_channel_count(&self, v: usize)
fn set_channel_count(&self, v: usize)
Update the
channel_count
attributesource§fn set_onprocessorerror(
&self,
callback: Box<dyn FnOnce(ErrorEvent) + Send + 'static>
)
fn set_onprocessorerror( &self, callback: Box<dyn FnOnce(ErrorEvent) + Send + 'static> )
Register callback to run when an unhandled exception occurs in the audio processor. Read more
source§fn clear_onprocessorerror(&self)
fn clear_onprocessorerror(&self)
Unset the callback to run when an unhandled exception occurs in the audio processor.
Auto Trait Implementations§
impl RefUnwindSafe for DelayNode
impl Send for DelayNode
impl Sync for DelayNode
impl Unpin for DelayNode
impl UnwindSafe for DelayNode
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more