Skip to main content

EnvelopeGenerator

Struct EnvelopeGenerator 

Source
pub struct EnvelopeGenerator {
    pub state: State,
    pub envelope_counter: u8,
    pub exponential_counter: u8,
    pub exponential_counter_period: u8,
    pub hold_zero: bool,
    pub rate_counter: u16,
    pub rate_counter_period: u16,
    /* private fields */
}
Expand description

A 15 bit counter is used to implement the envelope rates, in effect dividing the clock to the envelope counter by the currently selected rate period. In addition, another counter is used to implement the exponential envelope decay, in effect further dividing the clock to the envelope counter. The period of this counter is set to 1, 2, 4, 8, 16, 30 at the envelope counter values 255, 93, 54, 26, 14, 6, respectively.

Fields§

§state: State§envelope_counter: u8§exponential_counter: u8§exponential_counter_period: u8§hold_zero: bool§rate_counter: u16§rate_counter_period: u16

Implementations§

Source§

impl EnvelopeGenerator

Source

pub fn get_attack_decay(&self) -> u8

Source

pub fn get_control(&self) -> u8

Source

pub fn get_sustain_release(&self) -> u8

Source

pub fn set_attack_decay(&mut self, value: u8)

Source

pub fn set_control(&mut self, value: u8)

Source

pub fn set_sustain_release(&mut self, value: u8)

Source

pub fn clock(&mut self)

Source

pub fn clock_delta(&mut self, delta: u32)

Source

pub fn output(&self) -> u8

Source

pub fn read_env(&self) -> u8

Source

pub fn reset(&mut self)

Trait Implementations§

Source§

impl Clone for EnvelopeGenerator

Source§

fn clone(&self) -> EnvelopeGenerator

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Default for EnvelopeGenerator

Source§

fn default() -> Self

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

impl Copy for EnvelopeGenerator

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.