pub struct SchroederReverb { /* private fields */ }Expand description
Allocation-free prepared Schroeder reverb with four combs and two allpasses.
Implementations§
Source§impl SchroederReverb
impl SchroederReverb
Sourcepub fn new(room_size: f32, damping: f32, wet: f32) -> Self
pub fn new(room_size: f32, damping: f32, wet: f32) -> Self
Creates a reverb with room, damping, and wet controls clamped to the unit interval. Non-finite values fall back to 0.7, 0.3, and 0.25.
Sourcepub fn set_bypass(&mut self, bypass: bool)
pub fn set_bypass(&mut self, bypass: bool)
Enables transparent bypass while the tail continues evolving.
Sourcepub fn tail_samples(&self, sample_rate: u32) -> u64
pub fn tail_samples(&self, sample_rate: u32) -> u64
How long the reverb rings after its input stops, in samples at
sample_rate, prepared or not: until its slowest frequencies (the
lowest, which the damping filter passes) have fallen 60 dB through
the longest comb, plus the allpasses’ own 60 dB. A bound for these
room and damping values, not a fixed length: a room of 1 rings about
four seconds.
Trait Implementations§
Source§impl Clone for SchroederReverb
impl Clone for SchroederReverb
Source§impl Debug for SchroederReverb
impl Debug for SchroederReverb
Source§impl Processor for SchroederReverb
impl Processor for SchroederReverb
Source§fn history_samples(&self) -> u32
fn history_samples(&self) -> u32
Additional source history for a cold seek, excluding algorithmic delay.
Built-in recursive processors use a finite settling horizon; this is an
approximation to uninterrupted playback, not a bit-exact state snapshot.
Source§fn prepare(&mut self, sample_rate: u32, _max_block: usize)
fn prepare(&mut self, sample_rate: u32, _max_block: usize)
Configures non-real-time state before processing begins.
Source§fn process(
&mut self,
_ctx: &ProcessCtx,
inputs: &[&[f32]],
outputs: &mut [&mut [f32]],
)
fn process( &mut self, _ctx: &ProcessCtx, inputs: &[&[f32]], outputs: &mut [&mut [f32]], )
Processes planar channel slices supplied by the host. Read more
Source§fn save_state(&self) -> StateBlob
fn save_state(&self) -> StateBlob
Serializes history at an offline chunk boundary.
Source§fn load_state(&mut self, state: &StateBlob) -> Result<(), StateError>
fn load_state(&mut self, state: &StateBlob) -> Result<(), StateError>
Restores history saved by a processor of the same type, prepared
alike, whole or not at all. Read more
Source§fn inputs_per_output(&self) -> usize
fn inputs_per_output(&self) -> usize
How many input channels the processor reads for each output channel:
1 for an effect, 2 for one that also reads a second bus after the
first (a sidechain, or the other side of a crossfade). A
crate::ProcessorChain gives each node only its own channels, so
it takes only processors that read one.Source§fn latency_samples(&self) -> u32
fn latency_samples(&self) -> u32
Algorithmic delay that the graph host must compensate.
Auto Trait Implementations§
impl Freeze for SchroederReverb
impl RefUnwindSafe for SchroederReverb
impl Send for SchroederReverb
impl Sync for SchroederReverb
impl Unpin for SchroederReverb
impl UnsafeUnpin for SchroederReverb
impl UnwindSafe for SchroederReverb
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