Skip to main content

AudioClip

Struct AudioClip 

Source
pub struct AudioClip<const SAMPLE_RATE_HZ: u32, T: ?Sized = [i16]> { /* private fields */ }
Available on target_os=none only.
Expand description

Unsized view of static audio clip data. &AudioClip values of different lengths can be sequenced together.

For fixed-size, const-friendly storage, see AudioClipBuf.

See the audio_player module documentation for usage examples.

Implementations§

Source§

impl<const SAMPLE_RATE_HZ: u32, T: ?Sized> AudioClip<SAMPLE_RATE_HZ, T>

Source

pub const SAMPLE_RATE_HZ: u32 = SAMPLE_RATE_HZ

Clip sample rate in hertz.

Source§

impl<const SAMPLE_RATE_HZ: u32> AudioClip<SAMPLE_RATE_HZ>

Source

pub const fn samples(&self) -> &[i16]

Clip samples as an i16 slice.

Source

pub const fn sample_count(&self) -> usize

Number of samples in this clip.

See the audio_player module documentation for usage examples.

Source§

impl<const SAMPLE_RATE_HZ: u32, const SAMPLE_COUNT: usize> AudioClip<SAMPLE_RATE_HZ, [i16; SAMPLE_COUNT]>

Implementation for fixed-size clips (AudioClipBuf).

This impl applies to AudioClip with array-backed storage: AudioClip<SAMPLE_RATE_HZ, [i16; SAMPLE_COUNT]> (which is what AudioClipBuf aliases).

Source

pub const SAMPLE_COUNT: usize = SAMPLE_COUNT

Number of samples in this clip.

See the audio_player module documentation for clip usage examples.

Source

pub const fn new(samples: [i16; SAMPLE_COUNT]) -> Self

Creates a clip from i16 samples.

This is the primary constructor for custom clip-generation and transform helpers written as const fn.

Source

pub const fn samples(&self) -> &[i16; SAMPLE_COUNT]

Returns the clip samples as a fixed-size array reference.

This is intended for custom clip-transform helpers written as const fn.

Source

pub const fn with_gain(self, gain: Gain) -> Self

Returns a new clip with linear sample gain applied.

This is intended to be used in const clip definitions so the adjusted samples are computed ahead of time.

You can also write your own compile-time clip transforms by reading samples with AudioClipBuf::samples and building a new clip with AudioClipBuf::new.

Gain multiplication uses i32 math and saturates to i16 sample bounds. Large boosts can hard-clip peaks and introduce distortion.

See the audio_player module documentation for usage examples.

Source

pub const fn silence() -> Self

Creates a silent clip.

See the audio_player module documentation for usage examples.

Source

pub const fn tone(frequency_hz: u32) -> Self

Creates a sine-wave clip.

See the audio_player module documentation for usage examples.

Auto Trait Implementations§

§

impl<const SAMPLE_RATE_HZ: u32, T> Freeze for AudioClip<SAMPLE_RATE_HZ, T>
where T: Freeze + ?Sized,

§

impl<const SAMPLE_RATE_HZ: u32, T> RefUnwindSafe for AudioClip<SAMPLE_RATE_HZ, T>
where T: RefUnwindSafe + ?Sized,

§

impl<const SAMPLE_RATE_HZ: u32, T> Send for AudioClip<SAMPLE_RATE_HZ, T>
where T: Send + ?Sized,

§

impl<const SAMPLE_RATE_HZ: u32, T> Sync for AudioClip<SAMPLE_RATE_HZ, T>
where T: Sync + ?Sized,

§

impl<const SAMPLE_RATE_HZ: u32, T> Unpin for AudioClip<SAMPLE_RATE_HZ, T>
where T: Unpin + ?Sized,

§

impl<const SAMPLE_RATE_HZ: u32, T> UnwindSafe for AudioClip<SAMPLE_RATE_HZ, T>
where T: UnwindSafe + ?Sized,

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> Az for T

Source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
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<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

Source§

fn cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> CheckedAs for T

Source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

Source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<Src, Dst> LosslessTryInto<Dst> for Src
where Dst: LosslessTryFrom<Src>,

Source§

fn lossless_try_into(self) -> Option<Dst>

Performs the conversion.
Source§

impl<Src, Dst> LossyInto<Dst> for Src
where Dst: LossyFrom<Src>,

Source§

fn lossy_into(self) -> Dst

Performs the conversion.
Source§

impl<T> OverflowingAs for T

Source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

Source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> SaturatingAs for T

Source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

Source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> StrictAs for T

Source§

fn strict_as<Dst>(self) -> Dst
where T: StrictCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> StrictCastFrom<Src> for Dst
where Src: StrictCast<Dst>,

Source§

fn strict_cast_from(src: Src) -> Dst

Casts the value.
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.
Source§

impl<T> UnwrappedAs for T

Source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

Source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> WrappingAs for T

Source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

Source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.