Trait rodio::Sample
[−]
[src]
pub trait Sample: CpalSample { fn lerp(first: Self, second: Self, numerator: u32, denominator: u32) -> Self; fn amplify(self, value: f32) -> Self; fn saturating_add(self, other: Self) -> Self; fn zero_value() -> Self; }
Represents a value of a single sample.
This trait is implemented by default on three types: i16
, u16
and f32
.
- For
i16
, silence corresponds to the value0
. The minimum and maximum amplitudes are represented byi16::min_value()
andi16::max_value()
respectively. - For
u16
, silence corresponds to the valueu16::max_value() / 2
. The minimum and maximum amplitudes are represented by0
andu16::max_value()
respectively. - For
f32
, silence corresponds to the value0.0
. The minimum and maximum amplitudes are represented by-1.0
and1.0
respectively.
You can implement this trait on your own type as well if you wish so.
Required Methods
fn lerp(first: Self, second: Self, numerator: u32, denominator: u32) -> Self
Linear interpolation between two samples.
The result should be equal to
first * numerator / denominator + second * (1 - numerator / denominator)
.
fn amplify(self, value: f32) -> Self
Multiplies the value of this sample by the given amount.
fn saturating_add(self, other: Self) -> Self
Calls saturating_add
on the sample.
fn zero_value() -> Self
Returns the value corresponding to the absence of sound.