Pitch Morphing Between Targets — User Guide
Builds an absolute pitch trajectory from semitone waypoints around the source median F0, with elastic interpolation, bounded overshoot and tension, transition-shaped vibrato, and channel-preserving overlap-add resynthesis.
What this does
Pitch Morphing Between Targets replaces the source's detected pitch trajectory with a new trajectory that moves through a sequence of user-defined semitone targets. The targets are interpreted relative to the median F0 of the selected source, not relative to the source's moment-to-moment pitch contour.
The script interpolates between consecutive targets, adds optional overshoot, tension, and vibrato in semitone space, converts the resulting trajectory to Hz, applies synthesis-safe frequency limits, and resynthesizes every original channel with one shared PitchTier.
Quick start
- Select exactly one Sound object.
- Run
Pitch_Morphing_Between_Targets.praat. - Choose one of the seven built-in presets or Manual.
- For Manual, enter at least two underscore-separated semitone targets, for example
0_7_12_-5. - Adjust morph smoothness, overshoot, tension, and vibrato as needed.
- Set the pitch-analysis range so the source F0 can be detected reliably.
- Enable or disable the Picture-window visualization and automatic playback.
Targets and reference pitch
Target_pitches is an underscore-separated list of semitone values. At least two finite numeric values are required, and each value must lie between −120 and +120 semitones.
The targets are distributed evenly across the entire source time domain from its original xmin to xmax. If there are N targets, the morph contains N−1 equal-duration transitions.
Pitch analysis uses a mono reference when the source has more than one channel. The analysis returns the source median voiced F0; it does not copy the source's original melodic contour into the morph trajectory.
Morph curve
Elastic interpolation
Within each target-to-target transition, the normalized position fraction runs from 0 to 1. The base path is:
Morph_smoothness must be greater than zero. A value of 1 gives linear interpolation. Values above 1 spend more time near the two targets and move more rapidly around the midpoint; values below 1 move more quickly away from the endpoints and flatten more around the middle.
Overshoot and tension
Both components are bounded semitone offsets whose maximum scale depends on the absolute interval between the current pair of targets. Both are zero at each target boundary.
Setting either amount to 0 removes that component completely. Tension changes pitch only; it does not alter audio intensity.
Transition-shaped vibrato
Vibrato is expressed in semitones and uses a true-Hz sinusoid based on elapsed source time. Its triangular transition envelope is zero at target boundaries and strongest halfway through each transition.
The final semitone path is the sum of the base interpolation, overshoot, tension, and vibrato.
From semitones to Hz
The generated F0 is then limited to the synthesis-safe range 20 Hz to 0.45 × source sample rate. This safety range is independent of Minimum_pitch and Maximum_pitch, which are analysis/resynthesis settings.
Presets
The menu contains seven built-in presets plus Manual. Presets replace the target sequence and the four morph-character parameters shown below. They do not replace Vibrato_frequency, Time_step, Minimum_pitch, Maximum_pitch, Draw_visualization, or Play_result.
| Preset | Targets | Smooth | Overshoot | Tension | Vibrato |
|---|---|---|---|---|---|
| Gentle Waves | 0_3_-2_5_-1_2_0 | 2.0 | 0.20 | 0.05 | 0.20 st |
| Emotional Arcs | 0_7_-5_12_-8_15_-12 | 1.8 | 0.30 | 0.15 | 0.40 st |
| Dramatic Leaps | 0_12_-12_24_-24_12_0 | 1.2 | 0.60 | 0.25 | 0.50 st |
| Chromatic Walk | 0_2_4_5_7_9_11_12_11_9_7_5_4_2_0 | 1.5 | 0.10 | 0.08 | 0.15 st |
| Microtonal Glide | 0_1.5_-1_2.5_-0.5_1_-1.5_0.5 | 2.5 | 0.15 | 0.03 | 0.10 st |
| Tension Build | 0_3_1_6_2_9_4_12_5 | 1.3 | 0.40 | 0.30 | 0.25 st |
| Chaotic Dance | 0_7_-3_15_-8_5_12_-5_20_-12 | 0.8 | 0.80 | 0.40 | 0.60 st |
| Manual | Uses the values entered in the form unchanged. | ||||
Parameters
| Parameter | Default | Meaning |
|---|---|---|
| Preset | Manual | Seven built-in configurations or direct use of the form values. |
| Target_pitches | 0_12_-8_15_-12_20_5_-5 | Underscore-separated semitone targets relative to the source median F0. |
| Morph_smoothness | 1.5 | Exponent controlling the shape of each target-to-target interpolation. |
| Overshoot_factor | 0.4 | Non-negative interval-scaled spring-like pitch deviation. |
| Tension_strength | 0.1 | Non-negative interval-scaled pitch deviation with a different oscillatory shape. |
| Vibrato_amount | 0.3 st | Peak semitone amplitude before application of the transition envelope; 0 disables vibrato. |
| Vibrato_frequency | 25 Hz | Frequency of the vibrato sinusoid in true cycles per second. |
| Time_step | 0.005 s | Praat Pitch/Manipulation analysis step. It does not set the density of the generated morph curve. |
| Minimum_pitch | 50 Hz | Lower analysis/resynthesis pitch bound. |
| Maximum_pitch | 900 Hz | Upper analysis/resynthesis pitch bound; must remain below 45% of the source sample rate. |
| Draw_visualization | Yes | Draw the run in the Picture window. |
| Play_result | Yes | Play the final Sound after processing. |
Time_step.
Resynthesis and output
A mono analysis copy is used only to obtain the source median F0. The generated PitchTier is then applied independently to every original source channel through Praat Manipulation → Replace pitch tier → overlap-add resynthesis.
- Channel count: preserved exactly.
- Channel order: preserved.
- Time domain: original
xminandxmaxpreserved. - Duration: preserved.
- Sample rate: original source sampling frequency preserved.
- Output name:
<source>_morph_<preset>, using short labels such asGentle,Emotional,Dramatic, orManual.
After resynthesis, the script checks the absolute peak. Only results above 0.95 are scaled down to 0.95; quieter signals are left unchanged. This is an attenuate-only safety ceiling, not target normalization.
Visualization
When Draw_visualization is enabled, the Picture window contains:
- Original waveform and Morphed waveform. Each Sound is drawn with Praat's automatic vertical amplitude range; the two panels therefore do not enforce a shared amplitude scale.
- Morph curve in semitones relative to the measured median F0. This curve now stores the pitch after synthesis-safe limiting, so it represents what was actually applied to the PitchTier.
- Target markers showing the requested target values at their evenly spaced times. These remain the requested targets even if an extreme target is constrained by the synthesis-safe Hz limits.
- Target-sequence bars showing the requested semitone values by target index.
- Statistics and summary with target count, smoothness, overshoot, vibrato, and a compact description of the processing chain.
For display efficiency, the morph curve stores at most 500 visualization points. The synthesis PitchTier itself still uses the complete 200–2000-point morph grid.