Struct cybergrape::spatial_data_format::GrapeFile
source · pub struct GrapeFile {
header: GrapeFileHeader,
samples: Vec<f32>,
}
Expand description
This struct contains the header and samples associated with a GrapeFile
Fields§
§header: GrapeFileHeader
§samples: Vec<f32>
Implementations§
source§impl GrapeFile
impl GrapeFile
sourcepub fn builder() -> GrapeFileBuilder
pub fn builder() -> GrapeFileBuilder
Make a GrapeFileBuilder, which can be used to set sample rate and add streams, before building the GrapeFile.
sourcepub fn to_path(&self, path: impl AsRef<Path>) -> Result<(), GrapeFileError>
pub fn to_path(&self, path: impl AsRef<Path>) -> Result<(), GrapeFileError>
Write out a GrapeFile to the path provided.
sourcepub fn from_path(path: impl AsRef<Path>) -> Result<Self, GrapeFileError>
pub fn from_path(path: impl AsRef<Path>) -> Result<Self, GrapeFileError>
Read a GrapeFile from the path provided.
sourcepub fn from_file(file: &mut impl Read) -> Result<Self, GrapeFileError>
pub fn from_file(file: &mut impl Read) -> Result<Self, GrapeFileError>
sourcepub fn streams_native_sample_rate(&self) -> (u64, Vec<(GrapeTag, Vec<f32>)>)
pub fn streams_native_sample_rate(&self) -> (u64, Vec<(GrapeTag, Vec<f32>)>)
Extract the streams from a GrapeFile, also returns the sample rate because the streams can be encoded at any sample rate.
sourcepub fn streams_with_sample_rate(
&self,
sample_rate: u64,
) -> Vec<(GrapeTag, Vec<f32>)>
pub fn streams_with_sample_rate( &self, sample_rate: u64, ) -> Vec<(GrapeTag, Vec<f32>)>
Extracts the streams from a GrapeFile, interpolating or quantizing the streams to produce datapoints at the requested sample rate.
Take a slice of GrapeTags and sample vectors and zip them.
sourcefn get_raw_streams(&self) -> Vec<Vec<f32>>
fn get_raw_streams(&self) -> Vec<Vec<f32>>
Returns a cloned, de-interleaved version of the samples in the file.
sourcefn streams_interpolated(&self, sample_rate: u64) -> Vec<(GrapeTag, Vec<f32>)>
fn streams_interpolated(&self, sample_rate: u64) -> Vec<(GrapeTag, Vec<f32>)>
Extracts the streams from the file, and interpolates data points to produce data points at the requrested sample_rate.
Right now, this function only really works if the requested sample rate is a multiple of the native sample rate. This needs some work.
sourcefn streams_quantized(&self, sample_rate: u64) -> Vec<(GrapeTag, Vec<f32>)>
fn streams_quantized(&self, sample_rate: u64) -> Vec<(GrapeTag, Vec<f32>)>
Extracts the streams from the file, and quantizes data points to produce data points at the requested sample_rate.
Right now, this function only really works if the requested sample rate is a factor of the native sample rate. This needs some work.
Trait Implementations§
source§impl PartialEq for GrapeFile
impl PartialEq for GrapeFile
impl StructuralPartialEq for GrapeFile
Auto Trait Implementations§
impl Freeze for GrapeFile
impl RefUnwindSafe for GrapeFile
impl Send for GrapeFile
impl Sync for GrapeFile
impl Unpin for GrapeFile
impl UnwindSafe for GrapeFile
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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