pub trait Generator {
type Sample;
// Required method
fn sample(&mut self) -> Self::Sample;
// Provided methods
fn iter(self) -> Iter<Self>
where Self: Sized { ... }
fn amplitude(self, amplitude: f32) -> Amplitude<Self>
where Self: Sized { ... }
}
Expand description
The trait for an audio generator.
Required Associated Types§
Required Methods§
Provided Methods§
Sourcefn iter(self) -> Iter<Self>where
Self: Sized,
fn iter(self) -> Iter<Self>where
Self: Sized,
Construct an iterator from this generator.
use audio_generator::{Generator, Sin};
let mut g = Sin::new(440.0, 44100.0).amplitude(0.5);
let samples = g.iter().take(10).collect::<Vec<f32>>();
assert_eq!(samples.len(), 10);
Sourcefn amplitude(self, amplitude: f32) -> Amplitude<Self>where
Self: Sized,
fn amplitude(self, amplitude: f32) -> Amplitude<Self>where
Self: Sized,
Modify the amplitude of the sample.
§Examples
use audio_generator::{Generator, Sin};
let mut a = Sin::new(440.0, 44100.0).amplitude(0.1);
let mut b = Sin::new(440.0, 44100.0).amplitude(0.1);
for _ in 0..100 {
assert!(a.sample().abs() <= b.sample().abs());
}