Wherein we present the modest details of the PitchTrack node (chugin). Right-click to copy this example to your workspace
PitchTrack is a monophonic autocorrelation pitch tracker with a fast response and extremely high accuracy, even at low frequencies. It is adapted from [helmholtz~] for Pd by Katja, excellently documented here.

inlet connect the audio signal for analysis.
Controller optionally connect a controller to signal performance events.
Fidelity a threshold for certainty about the result. A highly periodic
signal (ie one that has a strong pitch center) should produce a result
with a high fidelity, which a non-periodic signal (eg noise) will have
a very low fidelity. Setting this parameter close to 1 should reduce
the number of inaccurate reports.
Sensitivity the minimum RMS value to trigger a pitch calculation.
Setting this parameter low forces PitchTracker to attempt to find
the pitch of even very quiet sounds. Higher values will cause it
to trigger only on louder notes.
Overlap sets the overlap between successive analysis frames. Higher
values should produce smoother values, at the cost of an increase of
CPU load.
Frame sets the size of the analysis window, measured in samples.
QuantizeFreq causes sucessful frequency results to be quantized to
the nearest MIDI note.
HoldNotes produces variable length notes which depend on the analysis
result. When not checked, every successful track will produce notes
whose duration is given by the Beats parameter.
Beats controls the frequency we consult the analysis, measured in
TimeKeeper beats. This is also the smallest duration of notes
in the output stream.
In this example we perform pitch tracking on a speech by US President Obama.

The two PitchTrack nodes have slightly different settings and the resulting
notes are routed to a Note Plot. Here's the
resulting plot. Orange notes result from the Player0 pipeline while blue
are the result of Player1 which includes a NSFilter node which produces
a notestream whose notes are guided by a musical scale and transposed.

Here are the NSFilter values used.

Notes incoming notestream connection port.
NoteRange the min and max MIDI notes to pass through the filter.
Transpose the number of MIDI notes (semitones) to transpose the result.
Here you'll notice that all the blue notes are to the right of the
orange ones. 7 semitones is a musical fifth.
Constraints controls a scale-based contraint to further limit the
notes within the NoteRange. None adds no additional contraints.
ScaleOnly filters out any notes that aren't part of the requested scale.
NearestNote causes incoming notes to be converted to the nearest note
in the scale.
Scale selects from a menu of scales/modes including Major, Minor,
Mixolydian, etc.
Base selects the root note of the scale expressed as a MIDI note number.
Here the number 50 represents D2. More details can
be found here.
Subset selects a subset of notes from the selected scale including
triad, fifth, seventh.