Nodes/S42 CutFlow/📉 Reactive Parameter Scheduler (S42)
ComfyUI Node

📉 Reactive Parameter Scheduler (S42)

Turn a music energy curve into a value schedule for anything that takes one

By GeekyGhost·Created 6 months ago·Updated 4 months ago· 3
📉 Reactive Parameter Scheduler (S42)
    • schedule_floats
    audio_curve
    min_value0.00
    max_value1.00
    smoothing0.10

    Reactive Parameter Scheduler is the adapter between music and motion. It takes one of the normalized energy curves from S42_AudioFrequencyExtractor and maps it onto a range you choose, so you can drive any float-driven parameter with the beat instead of hand-painting a schedule. It doesn't touch pixels or audio - it turns "here's how loud the bass was, frame by frame" into "here's the exact value this parameter should be, frame by frame."

    The four inputs are deliberately simple:

    • audio_curve - plug in a bass, mid, or treble curve. Bass is the usual pick because kicks are the most visually obvious pulse, but the mid curve (vocals) makes reaction follow a voice, which is a different and often cooler feel.
    • min_value (default 0) - the value when the audio is silent.
    • max_value (default 1) - the value when the band is peaking.
    • smoothing (0–0.99, default 0.1) - exponential smoothing applied as it maps. Raw energy curves can jump frame-to-frame in ways that look like noise; this tames that. The tooltip's warning is worth taking literally: leave it at 0 and watch your parameter jitter.

    The output is schedule_floats - a FLOAT list with one mapped, smoothed value per frame, straight from min_value at silence to max_value at peak. So if you set 0 to 1, you get a normalized "reaction schedule" you can also feed through more math; if you set it to something domain-specific, the schedule comes out pre-scaled.

    Honest note on wiring: "a list of floats" is only useful if whatever you're driving can actually consume a per-frame float list. That's the part of ComfyUI where a lot of graphs still want a string of keyframes rather than a FLOAT output, so the practical flow is: use this with nodes that accept float-list schedules, or convert it to whatever format your target needs. Inside the S42-CutFlow family it plays nicely with the frequency-extractor → scheduler chain for driving things like S42_AudioLatentWobble-style parameters or any CutFlow node with a strength input you're willing to schedule.

    The mechanism is trivial - exponential smoothing then a linear remap - which is exactly why it's good: it's deterministic, costs nothing, and it's the missing glue that turns an audio analysis into a usable control signal. It's the second link in the pack's audio-reactive chain, and it's honest about being exactly that.

    Installing it

    Standard S42-CutFlow install: ComfyUI Manager → search "S42 CutFlow" → Install → restart, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/GeekyGhost/S42-CutFlow.git
    pip install -r S42-CutFlow/requirements.txt
    

    One-line requirements file (opencv-python-headless); the scheduling math is pure Python floats. Console prints "[S42 CutFlow] Loaded ..." on restart.

    Where you'll actually use it

    It's the translator in an audio-reactive graph: Frequency Extractor → this → whatever parameter you want to breathe with the track. The skill is picking good min/max values and a smoothing that hides the energy curve's spikiness without flattening the beat.

    CategoryS42 CutFlow/Audio/Sync

    Inputs (4)

    NameTypeDefaultDescription
    audio_curveFLOATPlug in a bass, mid, or treble curve here.
    min_valueFLOAT0.00-100–100The value when the audio is silent.
    max_valueFLOAT1.00-100–100The value when the audio is peaking.
    smoothingFLOAT0.100–0.99Exponential smoothing to reduce erratic frame-by-frame jitter.

    Outputs (1)

    NameTypeDescription
    schedule_floatsFLOAT