Pitch Range β‘π ‘π π £π
A raw Hz window for the pack's pitch tools
- previous_range_collection
- PITCH_RANGE_COLLECTION
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.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| min_pitch | FLOAT | 8020β2000 | Minimum frequency of the pitch range in Hz (20.0 to 2000.0) |
| max_pitch | FLOAT | 40020β2000 | Maximum frequency of the pitch range in Hz (20.0 to 2000.0) |
| previous_range_collectionopt | PITCH_RANGE_COLLECTION | Optional previous pitch range collection to append to |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| PITCH_RANGE_COLLECTION | PITCH_RANGE_COLLECTION | β |