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

Pitch Range βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜

A raw Hz window for the pack's pitch tools

By ryanontheinsideΒ·Created 2 years agoΒ·Updated 5 months agoΒ· 852
Pitch Range βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜
  • previous_range_collection
  • PITCH_RANGE_COLLECTION
β—„min_pitch80β–Ί
β—„max_pitch400β–Ί

The plainest of the three range-building nodes this pack offers for pitch detection. PitchRangeByNoteNode works in MIDI note numbers, PitchRangePreset works in named vocal categories - this one just takes a minimum and maximum frequency in Hz. If you already know the exact frequency window you care about (a specific instrument's range, a known vocal range from a prior analysis, a frequency band you're deliberately isolating), this is the most direct way to set it.

How it works

Two fields, min_pitch and max_pitch (both 20–2000 Hz, default 80–400), define the window. Anything PitchFeatureExtractor detects outside that range gets excluded from consideration when this collection is wired into its opt_pitch_range_collections input - useful for cutting out low-end rumble below your actual source, or high-frequency detection noise above it.

previous_range_collection (optional) chains multiple range nodes together into one combined PITCH_RANGE_COLLECTION, the same composable pattern used throughout this pack - stack a PitchRange for a bass part with another for a vocal part, and PitchFeatureExtractor will consider both bands rather than just one.

On its own, this node does nothing visible - like the pack's force-field and modulator nodes, it produces a definition that only matters once it's wired downstream.

The inputs and outputs that matter

  • min_pitch (default 80, 20–2000 Hz) - lower bound.
  • max_pitch (default 400, 20–2000 Hz) - upper bound.
  • previous_range_collection (optional, PITCH_RANGE_COLLECTION) - chain with earlier ranges.

Output is a single PITCH_RANGE_COLLECTION, which plugs into PitchFeatureExtractor's opt_pitch_range_collections input.

How to install it

ComfyUI Manager: search "RyanOnTheInside", install, restart. Manually:

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

then restart. This node is pure numeric range definition - no dependency drama, no model download.

Common issues & troubleshooting

Wired it in and nothing changed about pitch detection. Confirm it's actually connected to PitchFeatureExtractor's opt_pitch_range_collections input - without a range collection wired in there, PitchFeatureExtractor just listens across its full detectable range and this node's output goes unused.

Set a range but detection still misses the notes you care about. min_pitch/max_pitch cap out at 2000 Hz - that covers the vast majority of musical vocal and instrumental fundamentals, but if you're working with something genuinely high-pitched (a piccolo's upper register, for instance), you may be running against the field's ceiling rather than a misconfigured value.

Combined two PitchRange nodes and only one range seems active. Check previous_range_collection is actually threaded from the earlier node into the later one - without that link, you have two separate, disconnected collections rather than one combined range, and only whichever one reaches PitchFeatureExtractor gets used.

CategoryRyanOnTheInside/FlexFeatures/Sources/Audio

Inputs (3)

NameTypeDefaultDescription
min_pitchFLOAT8020–2000Minimum frequency of the pitch range in Hz (20.0 to 2000.0)
max_pitchFLOAT40020–2000Maximum frequency of the pitch range in Hz (20.0 to 2000.0)
previous_range_collectionoptPITCH_RANGE_COLLECTIONOptional previous pitch range collection to append to

Outputs (1)

NameTypeDescription
PITCH_RANGE_COLLECTIONPITCH_RANGE_COLLECTIONβ€”