Skip to main content

Vco

Struct Vco 

Source
pub struct Vco { /* private fields */ }
Expand description

Voltage-Controlled Oscillator (VCO)

A multi-waveform oscillator with V/Oct pitch input, FM, pulse width control, and hard sync. Outputs sine, triangle, saw, and square waveforms.

The saw and square outputs are bandlimited with PolyBLEP and the triangle with PolyBLAMP to suppress aliasing; the sine is inherently bandlimited.

§FM inputs

  • Port 1 fm (exponential): a raw ±5V CvBipolar signal is treated as ±5 octaves (freq = base * 2^fm), i.e. full-scale ±5V spans ×32 / ÷32. Attenuate it for musical depths.
  • Port 4 fm_lin (linear, through-zero): adds to the frequency directly, scaled so ±5V is ±100% of the base frequency (freq += (fm_lin / 5) * base). This enables through-zero linear FM and its classic symmetric sidebands; the frequency may pass through and below zero, running the phase backwards.

Implementations§

Source§

impl Vco

Source

pub fn new(sample_rate: f64) -> Self

Trait Implementations§

Source§

impl Default for Vco

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl GraphModule for Vco

Source§

fn port_spec(&self) -> &PortSpec

Returns the module’s port specification
Source§

fn tick(&mut self, inputs: &PortValues, outputs: &mut PortValues)

Process one sample given port values
Source§

fn reset(&mut self)

Reset internal state
Source§

fn set_sample_rate(&mut self, sample_rate: f64)

Set sample rate
Source§

fn type_id(&self) -> &'static str

Get module type identifier for serialization
Source§

fn process_block( &mut self, inputs: &BlockPortValues, outputs: &mut BlockPortValues, frames: usize, )

Process a block of samples (optional optimization). Read more
Source§

fn breaks_feedback_cycle(&self) -> bool

Whether this module breaks a feedback cycle in the patch graph. Read more
Source§

fn params(&self) -> &[ParamDef]

Get parameter definitions for UI binding. Read more
Source§

fn get_param(&self, _id: ParamId) -> Option<f64>

Get a parameter value. Read more
Source§

fn set_param(&mut self, _id: ParamId, _value: f64)

Set a parameter value. Read more
Source§

fn serialize_state(&self) -> Option<Value>

Available on crate feature alloc only.
Serialize module state (alloc feature only)
Source§

fn deserialize_state(&mut self, _state: &Value) -> Result<(), String>

Available on crate feature alloc only.
Deserialize module state (alloc feature only)
Source§

fn introspect(&self) -> Option<&dyn ModuleIntrospection>

Available on crate feature alloc only.
Downcast this module to its ModuleIntrospection view, if it exposes one. Read more
Source§

fn introspect_mut(&mut self) -> Option<&mut dyn ModuleIntrospection>

Available on crate feature alloc only.
Mutable companion to introspect, used to set internal parameters.
Source§

impl ModuleIntrospection for Vco

Available on crate feature alloc only.
Source§

fn param_infos(&self) -> Vec<ParamInfo>

Get all parameter descriptors for this module Read more
Source§

fn get_param_info(&self, id: &str) -> Option<ParamInfo>

Get a specific parameter by its ID
Source§

fn set_param_by_id(&mut self, _id: &str, _value: f64) -> bool

Set a parameter value by its ID Read more

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.