Pitch Range Preset β‘π ‘π π £π
A named vocal range instead of raw Hz math
- previous_range_collection
- PITCH_RANGE_COLLECTION
The simplest of the pack's three pitch-range nodes. PitchRange wants you to know your frequencies in Hz, PitchRangeByNoteNode wants specific MIDI note numbers - this one just wants to know what kind of voice you're working with. Pick a classification, and it hands PitchFeatureExtractor a sensible detection window without you having to look up or guess any numbers.
How it works
preset is a single dropdown covering the standard vocal range classifications: Bass, Baritone, Tenor (the low-to-mid male ranges), Alto, Mezzo-soprano, Soprano, Contralto (the mid-to-high, typically female or higher-voice ranges). Pick whichever matches the voice in your source audio and this node builds a PITCH_RANGE_COLLECTION around that classification's typical frequency window.
previous_range_collection (optional) chains this into a larger combined collection alongside PitchRange or PitchRangeByNoteNode outputs, same pattern used throughout the pack - handy if, say, you want to detect both a lead vocalist and a bass instrument as separate accepted bands in one PitchFeatureExtractor setup.
This is a good starting point precisely because it requires zero prior analysis - if you don't already know the exact Hz range of the voice you're targeting, start here, and only reach for PitchRange's raw numbers if the preset turns out too broad or too narrow for your source.
The inputs and outputs that matter
preset(required, enum) - Bass / Baritone / Tenor / Alto / Mezzo-soprano / Soprano / Contralto.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. No dependencies beyond the base pack - this is a lookup table, not analysis.
Common issues & troubleshooting
Picked a preset but detection still misses obvious pitch content. Standard vocal-range classifications are broad generalizations, not a precise fit for every individual voice - a particularly low soprano or a high tenor can sit outside the "typical" window a preset assumes. If detection consistently misses, switch to PitchRange and set the exact Hz bounds you actually need for that voice.
Not sure which preset to pick. If you're unsure, start with whichever is closest to the source's general register (low voice β Bass/Baritone, high voice β Soprano/Alto) and check the resulting PitchVisualizer overlay against the actual audio - if detection looks sparse or clipped at one end, that's a sign the preset's window doesn't match and you should widen it manually with PitchRange instead.
Wired into PitchFeatureExtractor but nothing seems restricted. Confirm opt_pitch_range_collections is actually connected - without that link, the preset has no effect and the extractor listens across its whole detectable range.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| preset | COMBO | Preset vocal range to use ('Bass', 'Baritone', 'Tenor', 'Alto', 'Mezzo-soprano', 'Soprano', 'Contralto') | |
| 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 | β |