Nodes/OmniNodes/Audio Transient Shaper πŸ₯Š
ComfyUI Node

Audio Transient Shaper πŸ₯Š

The Punch Button for Drum Hits That Sound Like Pillows

By TensorVizionΒ·Created 3 months agoΒ·Updated about 8 hours agoΒ· 0
Audio Transient Shaper πŸ₯Š
  • audio_samples
  • audio_out
  • summary
β—„sample_rate44100β–Ί
β—„attack_amount1.50β–Ί
β—„sustain_amount1.00β–Ί
β—„attack_ms5.0β–Ί
β—„sustain_ms80β–Ί

Ever generated a drum hit or an impact sound and felt it land like a wet towel? That's a weak transient - the initial attack spike that gives a hit its snap got smeared or softened somewhere. Audio Transient Shaper is the fix: it independently boosts or cuts the attack and sustain portions of a signal, letting you punch up a hit without turning up the whole track. It's the difference between "there was a sound" and "that thing hit."

How it works

It splits the signal into two envelopes using exponential followers - a fast one that captures the attack, a slow one that captures the body/sustain - derives the transient component as the difference between them, and rebuilds the signal with independently scaled attack and sustain gain. Two amounts, two time constants:

  • attack_amount (default 1.5) - above 1.0 boosts the transient punch/snap, below 1.0 softens it. This is your "make it hit harder" knob.
  • sustain_amount (default 1.0) - above 1.0 boosts the body/tail, below 1.0 tightens it. Turning sustain down is how you make a ringy, boomy hit into a tight thump.
  • attack_ms (5) and sustain_ms (80) - the envelope time constants. Shorter attack catches a sharper transient; longer sustain treats more of the signal as "body."

The distinction from the pack's other processors is worth internalizing: this reshapes the signal's own envelope (a loudness curve of the sound itself), whereas Audio Sidechain Duck reshapes one signal based on another signal's level, and Audio Reverb adds a tail. Different tools, and it's easy to grab the wrong one if you're not looking. A transient shaper doesn't add reverb and it doesn't duck anything - it makes what's already there punchier or softer.

The workflow

The output is audio_out plus a summary string, so it slots into a chain anywhere before final level control. The natural home is right after a pitch shift or stem-split, before the mixer: shape the drum's attack, then balance it against the rest. The classic move is attack up and sustain down - punchy hit, no boom - which is exactly what a lot of generated percussion needs.

The honest limits

It's a two-band shaper, not a multiband one - the whole signal's attack is shaped together, so you can't punch up the click of a kick without also affecting the click of a snare in the same signal. On a full mix that's a blunt instrument; on a single drum stem or impact sound it's exactly right. And overdriving attack_amount near the 4.0 ceiling produces harsh, clipped-sounding hits - the "snap" becomes distortion. Start at 1.5, nudge in increments, and trust your ears over the meter.

Install

ComfyUI Manager β†’ search OmniNodes, or:

cd ComfyUI/custom_nodes
git clone https://github.com/TensorVizion/OmniNodes

Restart ComfyUI; it's under TensorVizion/Audio. Pure NumPy, no extra dependencies. If your generated drums sound like they're wrapped in foam, this is the first node to reach for.

CategoryTensorVizion/Audio

Inputs (6)

NameTypeDefaultDescription
audio_samplesAUDIOβ€”
sample_rateINT441008000–192000β€”
attack_amountFLOAT1.500–4β€”
sustain_amountFLOAT1.000–4β€”
attack_msFLOAT5.00.5–50β€”
sustain_msFLOAT8010–500β€”

Outputs (2)

NameTypeDescription
audio_outAUDIOβ€”
summarySTRINGβ€”