pub struct DelayNode { /* private fields */ }Expand description
A node that delays the input signal by a specified number of audio blocks.
Each audio block (AudioUnit) contains AUDIO_UNIT_SIZE samples.
Supports dynamic delay updates via ControlMessage::SetParameter.
§Example
use rust_audio_api::nodes::{DelayNode, NodeType};
use rust_audio_api::{AudioContext, NodeParameter};
let mut ctx = AudioContext::new().unwrap();
let sample_rate = ctx.sample_rate();
let mut delay_id = None;
let dest_id = ctx.build_graph(|builder| {
// Max delay 2 seconds, initial delay 0.5 seconds
let max_units = (sample_rate as usize * 2) / rust_audio_api::types::AUDIO_UNIT_SIZE;
let initial_units = (sample_rate as f32 * 0.5) as usize / rust_audio_api::types::AUDIO_UNIT_SIZE;
let delay = builder.add_node(NodeType::Delay(DelayNode::new(max_units, initial_units)));
delay_id = Some(delay);
delay
});
// Dynamically change the delay to 1.0 seconds
let new_units = (sample_rate as f32 * 1.0) as usize / rust_audio_api::types::AUDIO_UNIT_SIZE;
ctx.control_sender().send(
rust_audio_api::graph::ControlMessage::SetParameter(
delay_id.unwrap(),
NodeParameter::DelayUnits(new_units)
)
).unwrap();Implementations§
Source§impl DelayNode
impl DelayNode
Sourcepub fn new(max_delay_units: usize, default_delay_units: usize) -> Self
pub fn new(max_delay_units: usize, default_delay_units: usize) -> Self
Creates a new DelayNode.
§Parameters
max_delay_units: The maximum delay buffer size in units.default_delay_units: The initial delay in units.
Sourcepub fn set_delay_units(&mut self, units: usize)
pub fn set_delay_units(&mut self, units: usize)
Dynamically updates the delay time.
If the new delay is larger than the current one, silent blocks are inserted. If it is smaller, old blocks are discarded.
pub fn process(&mut self, input: Option<&AudioUnit>, output: &mut AudioUnit)
Auto Trait Implementations§
impl Freeze for DelayNode
impl RefUnwindSafe for DelayNode
impl Send for DelayNode
impl Sync for DelayNode
impl Unpin for DelayNode
impl UnsafeUnpin 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