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 Freeze for EnvState
impl RefUnwindSafe for EnvState
impl Send for EnvState
impl Sync for EnvState
impl Unpin for EnvState
impl UnwindSafe for EnvState
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