Enum dynwave::BufferSize

source ·
pub enum BufferSize {
    QuarterSecond,
    HalfSecond,
    OneSecond,
    Samples(usize),
}
Expand description

The BufferSize enum represents the amount of audio samples that can be stored in the buffer. Limiting the number of samples in the buffer is crucial for minimizing audio delay in audio playing.

We will use emulation as an example to refer to the process of generating audio samples.

minimizing the buffer size will help minimize audio delay such as audio coming from an emulator. This is due to the fact that emulation speed does not always perfectly match the audio playing speed (e.g., 44100Hz).

A smaller buffer size can help maintain better synchronization, but it may cause noise or other issues on slower machines. This can occur if the emulation process is slow, or if a CPU-intensive process starts while the emulator is running.

Variants§

§

QuarterSecond

1/4 second worth of samples

§

HalfSecond

1/2 second worth of samples

§

OneSecond

1 second worth of samples

§

Samples(usize)

Number of samples to store Be careful, here you have to calculate based on the sample rate manually

Trait Implementations§

source§

impl Clone for BufferSize

source§

fn clone(&self) -> BufferSize

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for BufferSize

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for BufferSize

source§

fn default() -> BufferSize

Returns the “default value” for a type. Read more
source§

impl Copy for BufferSize

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.

§

impl<S> FromSample<S> for S

§

fn from_sample_(s: S) -> S

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> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T, U> ToSample<U> for T
where U: FromSample<T>,

§

fn to_sample_(self) -> U

source§

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

§

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>,

§

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.
§

impl<S, T> Duplex<S> for T
where T: FromSample<S> + ToSample<S>,