Nodes/RyanOnTheInside/Audio Pitch Shift βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜
ComfyUI Node

Audio Pitch Shift βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜

Move the key up or down in semitones, duration untouched

By ryanontheinsideΒ·Created 2 years agoΒ·Updated 5 months agoΒ· 852
Audio Pitch Shift βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜
  • audio
  • AUDIO
β—„n_steps0β–Ί

The mirror image of AudioTimeStretch: this one changes pitch and leaves duration alone, instead of the other way around. One knob, one job.

Inputs and outputs

  • audio - the clip to shift.
  • n_steps - semitones to shift, -12 to 12, integer, default 0. Twelve steps is a full octave; the sign tells you the direction (negative = down, positive = up).

Output is a single AUDIO.

When you'd reach for it

Two real uses in this pack's context. First, mood: pitching a source clip up reads brighter and thinner, pitching it down reads darker and heavier - a fast, non-destructive way to test a different feel for a track before committing to a full regeneration. Second, and more specific to this pack: ACE-Step cover/style-transfer workflows sometimes benefit from transposing a source clip before feeding it in as semantic guidance, if you want the output in a different key than the source.

Because this only touches pitch, your frame-count math from AudioInfo stays valid - duration doesn't move, so anything you've already synced to the clip's length keeps working. That's the real advantage over just changing the sample rate to fake a pitch shift: a naive rate change drags duration along with the pitch, which is exactly the coupling this node exists to avoid.

n_steps being an integer means you're limited to whole semitones - no microtonal or fractional-cent shifts here. For most creative use that's plenty of resolution; if you need finer control than a semitone, this node isn't built for it.

Installing it

ComfyUI Manager: search RyanOnTheInside, install, restart. Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/ryanontheinside/ComfyUI_RyanOnTheInside
cd ComfyUI_RyanOnTheInside
pip install -r requirements.txt

No model downloads for this one.

Where people get burned

Pitch-shifting algorithms have to guess at formants - the resonances that make a voice sound like a specific person rather than a generic tone - and that guess gets worse the further you push it. Large shifts (getting close to the Β±12 semitone limits) on vocal-heavy material tend to sound obviously processed, sometimes robotic, because the algorithm can't perfectly separate "pitch" from "the character of the voice" at extreme shifts. If you just want a subtle mood change rather than an obviously different-sounding track, Β±1 to Β±3 semitones goes a long way and stays natural - save the bigger shifts for material where you're deliberately going for a processed or unusual effect, or for instrumental content without vocals, which tends to tolerate large shifts better.

CategoryRyanOnTheInside/Audio/Effects

Inputs (2)

NameTypeDefaultDescription
audioAUDIOInput audio to be processed
n_stepsINT0-12–12Amount of pitch shift in semitones (-12 to 12)

Outputs (1)

NameTypeDescription
AUDIOAUDIOβ€”