Expand description
Very simple implementation of an oscillator.
§Examples
§Sine oscillator
let sample_rate = 44100.0;
let mut osc = augmented_oscillator::Oscillator::sine(sample_rate);
osc.set_frequency(40.0); // set freq. in Hz
let _sample = osc.next_sample(); // tick the oscillator forward
§Wave-table oscillator
use augmented_oscillator::{Oscillator, wavetable::WaveTableOscillator};
let sample_rate = 44100.0;
// let mut osc = WaveTableOscillator::new(vec![/* your wave table data */]);
// You can either ^^^^ provide your own table (and update it at runtime) or generate a table
// of a certain length (100 sample here) from a function oscillator
let mut osc = WaveTableOscillator::from_oscillator(Oscillator::sine(sample_rate), 100);
osc.set_frequency(40.0); // set freq. in Hz
let _sample = osc.next_sample(); // tick the oscillator forward
§Custom oscillator generator function
let sample_rate = 44100.0;
let mut osc = augmented_oscillator::Oscillator::new_with_sample_rate(
sample_rate,
move |phase: f32| phase.sin()
);
osc.set_frequency(40.0); // set freq. in Hz
let _sample = osc.next_sample(); // tick the oscillator forward
Modules§
Structs§
Functions§
- get_
phase_ step - Calculate the phase step increment between samples.