Struct Vco
pub struct Vco { /* private fields */ }Expand description
Audio-rate VCO modeled after the CEM3340/AS3340.
Features:
- 1V/octave exponential pitch tracking
- Saw, triangle, and pulse outputs
- Pulse width modulation
- Anti-aliased using PolyBLEP for saw/pulse
Implementations§
§impl Vco
impl Vco
pub fn set_cv_pitch(&mut self, cv: f64)
pub fn set_cv_pitch(&mut self, cv: f64)
Set the CV pitch input (1V/octave, 0V = base frequency).
CV is in volts, with 0V = 440Hz (A4) by default. Each volt doubles the frequency.
pub fn set_base_freq(&mut self, freq: f64)
pub fn set_base_freq(&mut self, freq: f64)
Set the base frequency (the frequency at 0V CV).
pub fn set_pulse_width(&mut self, pw: f64)
pub fn set_pulse_width(&mut self, pw: f64)
Set pulse width (0.0 - 1.0). 0.5 = square wave.
pub fn tick(&mut self) -> (f64, f64, f64)
pub fn tick(&mut self) -> (f64, f64, f64)
Generate one sample and return all waveforms.
Returns (saw, triangle, pulse) outputs in range [-1, 1].
pub fn reset(&mut self)
pub fn reset(&mut self)
Reset oscillator state.
pub fn set_sample_rate(&mut self, sample_rate: f64)
pub fn set_sample_rate(&mut self, sample_rate: f64)
Update sample rate.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Vco
impl RefUnwindSafe for Vco
impl Send for Vco
impl Sync for Vco
impl Unpin for Vco
impl UnsafeUnpin for Vco
impl UnwindSafe for Vco
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
Mutably borrows from an owned value. Read more