pub struct EnvState {
pub srate_ms: f32,
pub stage: u32,
pub phase: f32,
pub start: f32,
pub current: f32,
}
Expand description
Envelope state structure for the macros crate::env_hold_stage, crate::env_target_stage and crate::env_sustain_stage.
use synfx_dsp::{EnvState, env_hold_stage, env_target_stage, assert_decimated_slope_feq};
let mut state = EnvState::new();
state.set_sample_rate(48000.0);
let attack_ms = 1.0;
let hold_ms = 2.0;
let delay_ms = 2.0;
state.trigger();
let mut env_samples = vec![];
for _ in 0..(((48000.0 * (attack_ms + hold_ms + delay_ms)) / 1000.0) as usize) {
env_target_stage!(state, 0, attack_ms, 1.0, |x| x, {
env_hold_stage!(state, 2, hold_ms, {
env_target_stage!(state, 4, delay_ms, 0.0, |x| x, {});
});
});
env_samples.push(state.current);
}
assert_decimated_slope_feq!(env_samples[0..48], 4, vec![0.02083; 100]);
Fields
srate_ms: f32
stage: u32
phase: f32
start: f32
current: f32
Implementations
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for EnvState
impl Send for EnvState
impl Sync for EnvState
impl Unpin for EnvState
impl UnwindSafe for EnvState
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more