Exponential Pitch Glide — User Guide
Applies a deterministic time-varying transposition to the detected source pitch contour, with selectable upward or downward direction and an exponential glide shape.
What this does
Exponential Pitch Glide analyzes the source F0 once from a mono reference, then applies a deterministic transposition curve to that detected contour. The original melodic or prosodic pitch movement is therefore retained: at every voiced control point, the target F0 is the detected source F0 multiplied by the current glide ratio.
The glide can move up or down. Its nominal endpoint is exactly the requested Semitones_change, unless individual target points must be limited for sampling safety. The processed sound keeps the source duration, sampling frequency, start/end times, and channel count.
Quick start
- Select exactly one Sound object in Praat.
- Run
Exponential_Glide_Up.praat. - Choose one of the ten presets, or leave Manual (configure below).
- For Manual, choose Direction, set Semitones_change, and shape the curve with Curve_steepness.
- Set the Praat pitch-analysis range with Minimum_pitch and Maximum_pitch. Time_step controls pitch analysis only; the glide control grid itself is fixed at 10 ms.
- Optionally enable Draw_visualization and Play_result, then run the script.
Glide curve
Normalized time is u = (t - start) / duration. For Curve_steepness > 0.001, the script uses:
The curve is normalized so that shape(0)=0 and shape(1)=1. For Curve_steepness at or below 0.001, the script uses the linear fallback shape(u)=u.
Curve_steepness makes more of the total transposition happen earlier in the sound. A value of 0 gives a linear glide.
At each voiced control time:
This is a transposition of the detected source contour, not a replacement contour built around one constant reference frequency.
Presets
Choosing a preset overrides only Direction, Semitones_change, and Curve_steepness. Pitch-analysis settings and output switches remain as entered in the form.
| Preset | Direction | Change | Steepness |
|---|---|---|---|
| Gentle Glide Up | Up | 5 st | 2 |
| Moderate Rise | Up | 8 st | 3 |
| Dramatic Sweep Up | Up | 12 st | 4 |
| Extreme Rocket | Up | 24 st | 6 |
| Slow Build | Up | 6 st | 1 |
| Quick Jump | Up | 4 st | 8 |
| Cinematic Rise | Up | 18 st | 2.5 |
| Gentle Glide Down | Down | 5 st | 2 |
| Dramatic Fall | Down | 12 st | 4 |
| Dive Bomb | Down | 24 st | 6 |
Parameters
| Parameter | Default | What it controls |
|---|---|---|
| Preset | Manual | Selects Manual or one of ten fixed glide configurations. |
| Direction | Up | Sets the sign of the semitone change. Used directly in Manual mode and overridden by non-Manual presets. |
| Semitones_change | 7 | Positive magnitude of the nominal final transposition. Direction determines whether it is added or subtracted. |
| Curve_steepness | 3 | Must be ≥ 0. Zero is linear; larger positive values concentrate more pitch change near the beginning. |
| Time_step | 0.005 s | Praat pitch-analysis time step used for the mono analysis reference and each channel Manipulation object. It does not set the glide-control spacing. |
| Minimum_pitch | 50 Hz | Lower bound for Praat pitch analysis. |
| Maximum_pitch | 900 Hz | Upper bound for pitch analysis; it must be below Nyquist. |
| Draw_visualization | Yes | Draws the source/result waveforms, semitone glide curve, curve-shape comparison, and summary strip. |
| Play_result | Yes | Plays the final Sound after processing. |
Processing & output
Analysis and control grid
If the input has more than one channel, the script creates a mono analysis reference. Pitch is detected from that reference using the user-specified Time_step, Minimum_pitch, and Maximum_pitch. The median detected F0 is reported only as diagnostic information; it is not used as the pitch target.
The glide is sampled on a fixed 10 ms control grid, with an exact point at the sound endpoint. Only times with a usable detected source F0 contribute target points.
Target-pitch safety
The transposed target F0 is limited to 20 Hz through 0.45 × source sample rate. These are rendering-safety limits and are separate from the user-defined pitch-analysis range. The Info window reports how many control points were limited.
Channels and resynthesis
The original channel count is preserved. Every source channel is extracted and converted independently to a Praat Manipulation object, but all channels receive the same target PitchTier derived from the mono pitch analysis. Each channel is then resynthesized with Get resynthesis (overlap-add) and copied back into the matching channel of a new output Sound.
The output is created directly with the source start time, end time, duration, sample rate, and number of channels. Its name is <source>_glideUp or <source>_glideDown.
Final level
Peak handling is attenuation-only. If the final absolute extremum exceeds 0.95, the script applies Scale peak: 0.95. Quieter results are left unchanged; they are not normalized upward.
Visualization
When Draw_visualization is enabled, the Picture window contains:
- Original waveform — the selected source Sound.
- Result waveform — the rendered glide result. The source and result waveform panels are drawn with their own automatic amplitude scales rather than a shared amplitude axis.
- Glide curve — semitone shift versus source time, including the exact nominal endpoint marker.
- Curve-shape comparison — normalized shapes for steepness 1, 3, and 6 plus the current setting.
- Summary strip — identifies the glide law and points the user to the Info window for run parameters.
The glide curve is decimated only for drawing when necessary; the DSP uses the full 10 ms control grid. The visualization decimation always retains the exact endpoint.