[][src]Trait dasp::interpolate::Interpolator

pub trait Interpolator {
    type Frame: Frame;
    fn interpolate(&self, x: f64) -> Self::Frame;
fn next_source_frame(&mut self, source_frame: Self::Frame); }

Types that can interpolate between two values.

Implementations should keep track of the necessary data both before and after the current frame.

Associated Types

type Frame: Frame

The type of frame over which the interpolate may operate.

Loading content...

Required methods

fn interpolate(&self, x: f64) -> Self::Frame

Given a distance between [0.0 and 1.0) toward the following sample, return the interpolated value.

fn next_source_frame(&mut self, source_frame: Self::Frame)

To be called whenever the Interpolator value steps passed 1.0.

Loading content...

Implementors

impl<F> Interpolator for Floor<F> where
    F: Frame,
    <F as Frame>::Sample: Duplex<f64>, 
[src]

type Frame = F

impl<F> Interpolator for Linear<F> where
    F: Frame,
    <F as Frame>::Sample: Duplex<f64>, 
[src]

type Frame = F

fn interpolate(&self, x: f64) -> <Linear<F> as Interpolator>::Frame[src]

Converts linearly from the previous value, using the next value to interpolate. It is possible, although not advisable, to provide an x > 1.0 or < 0.0, but this will just continue to be a linear ramp in one direction or another.

impl<S> Interpolator for Sinc<S> where
    S: SliceMut,
    <S as Slice>::Element: Frame,
    <<S as Slice>::Element as Frame>::Sample: Duplex<f64>, 
[src]

type Frame = <S as Slice>::Element

fn interpolate(&self, x: f64) -> <Sinc<S> as Interpolator>::Frame[src]

Sinc interpolation

Loading content...