Struct WindowProcessor

Source
pub struct WindowProcessor { /* private fields */ }
Expand description

Provides fixed size windows extracted from a stream of arbitrarily sized input buffers. Supports downsampling and partially overlapping windows. Useful for implementing algorithms operating on consecutive windows of the same size.

Implementations§

Source§

impl WindowProcessor

Source

pub fn new( downsampling: usize, downsampled_window_size: usize, downsampled_hop_size: usize, ) -> Self

Creates a new WindowProcessor instance.

§Arguments
  • downsampling - The downsampling factor (1 corresponds to no downsampling)
  • downsampled_window_size - The window size after downsampling.
  • downsampled_hop_size - The distance, after downsampling, between the start of windows. Must not be zero and not be greater than downsampled_window_size.
Source

pub fn reset(&mut self)

Source

pub fn downsampling(&self) -> usize

Returns the downsampling factor.

Source

pub fn downsampled_hop_size(&self) -> usize

Returns the hop size after downsampling.

Source

pub fn downsampled_window_size(&self) -> usize

Returns the window size after downsampling.

Source

pub fn process<F>(&mut self, buffer: &[f32], handler: F)
where F: FnMut(&[f32]),

Processes an arbitrarily sized buffer of input samples. Invokes the provided handler with each newly filled window.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.