app: multi-core-inverter: fix non-terminating drive signal
This commit is contained in:
@@ -148,14 +148,20 @@ impl Params {
|
|||||||
// simple square wave:
|
// simple square wave:
|
||||||
let amp = ty.as_signed_f32() * self.input_magnitude;
|
let amp = ty.as_signed_f32() * self.input_magnitude;
|
||||||
let start = self.clock_phase_duration * cycle as f32;
|
let start = self.clock_phase_duration * cycle as f32;
|
||||||
Exp::new_at(amp.cast(), start.cast(), 100f32.cast() /* very long decay */)
|
Exp::new(100f32.cast() /* very long decay */)
|
||||||
|
.scaled(amp.cast())
|
||||||
|
.gated(R::zero(), self.clock_phase_duration.cast())
|
||||||
|
.shifted(start.cast())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn control_signal_release(&self, cycle: u32, ty: DriveDirection) -> ClockSegment {
|
fn control_signal_release(&self, cycle: u32, ty: DriveDirection) -> ClockSegment {
|
||||||
// decaying exponential wave:
|
// decaying exponential wave:
|
||||||
let amp = ty.as_signed_f32() * self.input_magnitude;
|
let amp = ty.as_signed_f32() * self.input_magnitude;
|
||||||
let start = self.clock_phase_duration * cycle as f32;
|
let start = self.clock_phase_duration * cycle as f32;
|
||||||
Exp::new_at(amp.cast(), start.cast(), self.clock_decay.cast())
|
Exp::new(self.clock_decay.cast() /* half life */)
|
||||||
|
.scaled(amp.cast())
|
||||||
|
.gated(R::zero(), self.clock_phase_duration.cast())
|
||||||
|
.shifted(start.cast())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user