- Audio
- Control
Pitch Convert
Purpose
Section titled “Purpose”Pitch Convert translates MIDI note-number control streams into musically useful formats: hertz for oscillator frequency, pitch class for visualization, scale degree for harmonic analysis, or quantized note/hertz for snapping to a scale. Wire a Scale Source into the optional scale input for key-aware quantization and degree output.
Place Pitch Convert after any node that outputs MIDI note numbers as control_f32_v1 (typically the pitch channel from MIDI Note, or the output of a compose node). Optionally wire a Scale Source into the second input for scale-aware modes. Wire the output into an oscillator frequency input, a TouchDesigner parameter, or a visualization.
Inputs and outputs
Section titled “Inputs and outputs”- Input 0: note — control_f32_v1 (required). The note-number stream to convert.
- Input 1: scale — scale_v1 (optional). Provides key and scale degrees from Scale Source. Without it, the plugin falls back to chromatic C.
- Output 0: out — control_f32_v1. The converted value, broadcast to all output channels.
Controls
Section titled “Controls”- Mode — Output format: hertz, pitch_class (0-11), scale_degree (index into the current scale), quantized_note (snapped MIDI note number), or quantized_hertz (frequency of the nearest scale tone).
- Pitchchannel — Which input channel to read the note number from. Default 0.
- Transpose — Semitone offset applied before conversion. Range -96 to +96.
- A4hz — Reference frequency for A4. Default 440 Hz. Adjustable for alternate tunings.
- Snap — When on, notes not in the current scale snap to the nearest scale tone. When off, non-scale notes return degree -1 in scale_degree mode.
- Stateless processor; no allocation or state management needed.
- Reveal channels show the last converted note, hertz, degree, pitch class, scale root, scale size, scale presence, and snap delta.
Inputs
-
noterow required -
scalerow
Outputs
-
outrow
Parameters
Section titled “Parameters” Pitchchannel (Pitchchannel) Int
op('pitch_convert').par.Pitchchannel - Default:
0- Range:
- 0 to 63
Transpose (Transpose) Float
op('pitch_convert').par.Transpose - Default:
0- Range:
- -96 to 96
A4hz (A4hz) Float
op('pitch_convert').par.A4hz - Default:
440- Range:
- 1 to 20000
Snap (Snap) Toggle
op('pitch_convert').par.Snap - Default:
On- Options:
- Off, On