pub struct TrackParams {Show 20 fields
pub gain: Shared,
pub cutoff: Shared,
pub resonance: Shared,
pub detune: Shared,
pub sweep_k: Shared,
pub sweep_center: Shared,
pub reverb_mix: Shared,
pub supermass: Shared,
pub pulse_depth: Shared,
pub mute: Shared,
pub freq: Shared,
pub life_mod: Shared,
pub pattern_bits: Arc<AtomicU32>,
pub pattern_hits: Shared,
pub pattern_rotation: Shared,
pub lfo_rate: Shared,
pub lfo_depth: Shared,
pub lfo_target: Shared,
pub character: Shared,
pub arp: Shared,
}Fields§
§gain: Shared§cutoff: Shared§resonance: Shared§detune: Shared§sweep_k: Shared§sweep_center: Shared§reverb_mix: Shared§supermass: Shared§pulse_depth: Shared§mute: Shared§freq: Shared§life_mod: Shared§pattern_bits: Arc<AtomicU32>16-step Euclidean rhythm pattern as a bitmask. Drum presets
(currently only Heartbeat) read this every sample to decide
whether to fire on the current step. Recomputed in the TUI loop
from pattern_hits + pattern_rotation.
pattern_hits: SharedHits per 16 steps, [0.0, 16.0]. Fed into euclidean_bits().
pattern_rotation: SharedPattern rotation, [0.0, 15.0].
lfo_rate: SharedPer-track LFO rate in Hz (0.01..20).
lfo_depth: SharedLFO depth [0..1]. Depth 0 = LFO off regardless of target.
lfo_target: SharedLFO target index (quantised): 0 OFF · 1 CUT · 2 GAIN · 3 FREQ · 4 REV
character: SharedPer-preset “character” knob in [0.0, 1.0]. Each preset interprets this differently — Pad stretches partials, Bell shifts FM ratio, Heartbeat scales the pitch drop, etc. Default 0.5 reproduces the original hand-tuned formula; 0 and 1 are the two extremes.
arp: SharedArpeggiator depth [0..1]. 0 → pitch stays on freq.
Above 0, every 2 beats the pitch jumps to a pentatonic-scale note
(glided via follow() so it sounds like portamento, not steps).
Implementations§
Source§impl TrackParams
impl TrackParams
pub fn default_for(freq: f32) -> Self
pub fn dormant(freq: f32) -> Self
Sourcepub fn snapshot(&self) -> TrackSnapshot
pub fn snapshot(&self) -> TrackSnapshot
TUI-facing snapshot — narrowed to f32 where only display precision matters. Audio still runs on f64 internally.
Trait Implementations§
Source§impl Clone for TrackParams
impl Clone for TrackParams
Source§fn clone(&self) -> TrackParams
fn clone(&self) -> TrackParams
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for TrackParams
impl RefUnwindSafe for TrackParams
impl Send for TrackParams
impl Sync for TrackParams
impl Unpin for TrackParams
impl UnsafeUnpin for TrackParams
impl UnwindSafe for TrackParams
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more