Skip to main content

MixGenerator

Struct MixGenerator 

Source
pub struct MixGenerator {
    pub master_output: StemOutput,
    pub voice_output: StemOutput,
    pub square_output: StemOutput,
    pub triangle_output: StemOutput,
    pub noise_output: StemOutput,
    /* private fields */
}
Expand description

Same per-sample peak-normalization behaviour as [IterMix], for feeding Sample values one-by-one from JS/workers.

Fields§

§master_output: StemOutput§voice_output: StemOutput§square_output: StemOutput§triangle_output: StemOutput§noise_output: StemOutput

Implementations§

Source§

impl MixGenerator

Mix the song and drum samples together

Source

pub fn new() -> Self

Source

pub fn with_master_output(self, output: StemOutput) -> Self

Set the master volume (applied after peak normalisation).

Source

pub fn with_voice_output(self, output: StemOutput) -> Self

Set per-stem output for the voice stem.

Source

pub fn with_square_output(self, output: StemOutput) -> Self

Set per-stem output for the square (melody) stem.

Source

pub fn with_triangle_output(self, output: StemOutput) -> Self

Set per-stem output for the triangle (bass) stem.

Source

pub fn with_noise_output(self, output: StemOutput) -> Self

Set per-stem output for the noise (drum) stem.

Source

pub fn reset(&mut self)

Source

pub fn effective_master_volume(&self) -> f32

Source

pub fn effective_voice_volume(&self) -> f32

Source

pub fn effective_square_volume(&self) -> f32

Source

pub fn effective_triangle_volume(&self) -> f32

Source

pub fn effective_noise_volume(&self) -> f32

Source

pub fn mix_sample(&mut self, sample: Sample) -> Mix

Source

pub fn mix_samples( &mut self, samples: &[Sample], num_samples: usize, ) -> Vec<Mix>

Trait Implementations§

Source§

impl Clone for MixGenerator

Source§

fn clone(&self) -> MixGenerator

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 Debug for MixGenerator

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for MixGenerator

Source§

fn default() -> Self

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

impl PartialEq for MixGenerator

Source§

fn eq(&self, other: &MixGenerator) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for MixGenerator

Source§

impl StructuralPartialEq for MixGenerator

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

Source§

fn __clone_box(&self, _: Private) -> *mut ()

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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V