/ Examples / Control / CCPitchTrack

Projects .. AudioIO .. Control
NoteStreams .. Instruments
Filters .. Effects .. LiCK Effects
Plot .. Utility .. Pure ChucK


Wherein we present the modest details of the CCPitchTrack node (chugin).

Right-click to copy this example to your workspace.

CCPitchTrack

CCPitchTrack 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.

CCPitchTrack is a sibling of NSPitchTrack that produces CC events rather than notes. Thus you can easily produce tracking plots via CCPlot or just peruse the tracking output in the log. This may be convenient during a recording session to ensure that you are in tune.

inlet connect an input audio signal for pitch tracking.

Controller optional connection point to automate parameters.

PrintNotes when checked, we log occasional messages indicating the nearest note. This can be helpful in a recording context to ensure you're in tune.

SampleRate the rate we consult the pitch tracker's analysis.

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.

DiffThreshold When 0, we produce a CC value at sample rate whenever a note is detected. Otherwise, we only produce a CC when the last reported note differs by this threshold, measured in semitones.

CCAliases an optional connection point to rename the "Pitch" and "Note" CC channels to another name.

The Example

Here's a potentially useful rig to record a guitar session. The input signal is routed both the the PitchTracker (to ensure we're in tune) and the LkCryBaby node which is receiving CC messages from an expression pedal to control the Wah.

home .. topics .. interface .. reference .. examples .. tipjar