74 float update(
float target,
float dtMs,
float attackMs,
float releaseMs);
90 void update(fl::u32 nowMs);
95 void rest(fl::u32 nowMs);
108 void blendFrom(
float presenceTarget,
float grooveConf,
float dtMs);
float update(float target, float dtMs, float attackMs, float releaseMs)
Smoothed one-pole follower with independent attack and release.
void update(fl::u32 nowMs)
Poll the Processor and refresh sense(). Call once per frame.
void deriveMood(float dtMs)
void deriveRhythm(fl::u32 nowMs)
fl::shared_ptr< fl::audio::Processor > mProcessor
RoomListener(fl::shared_ptr< fl::audio::Processor > processor)
void rest(fl::u32 nowMs)
Not listening this frame.
const char * regimeName() const
Which regime currently dominates, for logs only.
void deriveBlend(float dtMs)
void blendFrom(float presenceTarget, float grooveConf, float dtMs)
void begin()
Install the event callbacks. Call once after the Processor exists.
const RoomSense & sense() const
float stepClock(fl::u32 nowMs)
Advance the frame clock; returns a bounded dt in ms.
void deriveEnergy(float dtMs)
float shimmer
treble transient
float punchGain
scales the bass transient
float arousal
0 calm .. 1 energetic
float punch
bass transient (a hit, not loudness)
float grooveAttackMs
how slowly we start trusting a beat
float presenceReleaseMs
how slowly silence settles in
float energy
smoothed loudness
float measurePhase
0 on the downbeat
float trend
[-1, 1] falling .. rising
float grooveExit
confidence where groove is fully off
float grooveReleaseMs
how slowly we stop trusting it
float presence
sound is present (silence -> 0)
float beatPhase
0 on the beat, ramps to 1 before the next
float warmth
0 cool .. 1 warm, from valence
float grooveEnter
confidence where groove is fully on
float presenceAttackMs
how fast sound wakes the ring
Everything a visual is allowed to react to.
One-frame rising edges. Set on the frame the event lands, cleared next.
Everything the UI is allowed to tune on the listening side.