Crate sample [] [src]

A crate of fundamentals for audio PCM DSP.

  • Use the Sample trait to remain generic across bit-depth.
  • Use the Frame trait to remain generic over channel layout.
  • Use the Signal trait for working with Iterators that yield Frames.
  • Use the slice module for working with slices of Samples and Frames.
  • See the conv module for fast conversions between slices, frames and samples.
  • See the types module for provided custom sample types.
  • See the rate module for sample rate conversion and scaling.

Reexports

pub use conv::{FromSample, ToSample, Duplex, FromSampleSlice, ToSampleSlice, DuplexSampleSlice, FromSampleSliceMut, ToSampleSliceMut, DuplexSampleSliceMut, FromFrameSlice, ToFrameSlice, DuplexFrameSlice, FromFrameSliceMut, ToFrameSliceMut, DuplexFrameSliceMut, DuplexSlice, DuplexSliceMut};
pub use frame::Frame;
pub use signal::Signal;
pub use types::{I24, U24, I48, U48};

Modules

conv

Pure functions and traits for converting between i8, i16, I24, i32, I48, i64, u8, u16, U24, u32, U48, u64, f32 and f64.

frame

Use the Frame trait to remain generic over the number of channels at a single discrete moment in time.

rate

The rate module provides a Converter type, for converting and interpolating the rate of Signals. This can be useful for both sample rate conversion and playback rate multiplication.

signal

Use the Signal trait for working with Iterators that yield Frames. To complement the Iterator trait, Signal provides methods for adding, scaling, offsetting, multiplying, clipping and generating frame iterators and more.

slice

This module provides various helper functions for performing operations on slices of frames.

types

A collection of custom, non-std Sample types.

Traits

FloatSample

Sample format types represented as floating point numbers.

Sample

A trait for working generically across different Sample format types.

SignedSample

Integral and floating-point Sample format types whose equilibrium is at 0.