Jitter-Shimmer Formant Mapping — User Guide
Measures whole-sound jitter and shimmer, then uses those measurements to control a static spectral-envelope remapping around five formant landmarks.
What this does
Jitter-Shimmer Formant Mapping converts two voice-quality measurements into two static spectral-envelope transformations. Shimmer controls the target positions of F1–F2; jitter controls F3–F5. The five formants are analysis landmarks only: the script does not rebuild an LPC filter and does not move formant tracks frame by frame.
The transformation is applied to the complex spectrum of each output channel as a smooth real-valued gain curve. Because the same gain is applied to the real and imaginary components at each frequency, the original spectral phase is preserved.
Signal flow
- Choose an analysis source. Mono input uses itself. For multichannel input, the channel with the highest RMS is used for analysis; the output channel structure is not collapsed.
- Estimate pitch range. With auto detection enabled, a wide pitch analysis supplies 10th/90th-percentile estimates used to set a practical floor and ceiling.
- Measure voice perturbation. Praat's voice-analysis path provides whole-sound Jitter (local) and Shimmer (local). If a reliable measurement cannot be obtained, that measurement falls back to zero rather than being invented.
- Find five spectral landmarks. A FormantPath analysis supplies median F1–F5 frequencies. These are static reference frequencies, not synthesis poles.
- Calculate target landmarks. Shimmer determines the F1–F2 ratio; jitter determines the F3–F5 ratio.
- Warp the spectral envelope. Broad Gaussian gain regions reduce energy around each measured landmark and add energy around its target position. The accumulated gain is limited by
Envelope_strength_dB. - Optional pitch stage. If enabled and the selected preset uses a pitch multiplier other than 1.0, Praat Manipulation resynthesis changes pitch after the spectral warp.
- Dry/wet and output level. Each channel is mixed with its own dry channel, then the selected output-level policy is applied.
Quick start
- Select one or more Sound objects in Praat.
- Run
Jitter-Shimmer_Formant_Mapping.praat. - Start with Modal (Subtle) to hear a restrained mapping.
- Use Global intensity to scale the measured jitter/shimmer before they drive the mapping.
- Use Dry/wet mix to blend the mapped result with the original.
- Enable Apply pitch shift only if you also want the preset's separate pitch multiplier.
- Enable Advanced settings for pitch range, confidence, envelope width/strength and output-level policy.
Dry_wet_mix = 0 returns a sample-identical copy of the original Sound, preserving channels, duration, sample rate and start time. Output-level processing is deliberately skipped in this bypass path.Presets
| Preset | F1–F2 weight | F3–F5 weight | Envelope | Pitch multiplier* |
|---|---|---|---|---|
| Modal (Subtle) | +0.10 | +0.10 | 10 dB, width ×1.10 | 1.00 |
| Breathy (Brighter) | +0.50 | +0.30 | 16 dB, width ×1.25 | 1.08 |
| Creaky (Darker) | −0.40 | −0.20 | 15 dB, width ×1.15 | 0.92 |
| Tense (Sharp) | +0.20 | +0.60 | 19 dB, width ×0.85 | 1.05 |
| Relaxed (Smooth) | +0.30 | −0.20 | 12 dB, width ×1.45 | 0.98 |
| Custom | Shimmer_to_F1F2 | Jitter_to_F3F5 | Advanced values | 1.00 |
*The pitch multiplier is used only when Apply pitch shift is enabled. Modal and Custom use 1.00, so enabling the pitch stage does not change pitch in those two presets.
Envelope_strength_dB and Envelope_width_scale. Those four user-entered values are fully user-controlled only in Custom. Other advanced settings remain active for all presets.Controls
Main form
| Control | Default | Meaning |
|---|---|---|
| Preset | Modal | Selects one of five fixed mappings or Custom. |
| Global_intensity | 1.0 | Scales the measured jitter and shimmer before logarithmic normalization. Larger values create larger target shifts, subject to the final ratio clamp. |
| Shimmer_to_F1F2 | 0.3 | Custom-mode mapping weight for F1–F2. Positive values move targets upward; negative values move them downward. |
| Jitter_to_F3F5 | 0.3 | Custom-mode mapping weight for F3–F5. Positive values move targets upward; negative values move them downward. |
| Auto_detect_pitch_range | On | Adapts the voice-analysis pitch floor/ceiling from a preliminary pitch estimate. |
| Apply_pitch_shift | Off | Enables the preset-dependent, separate pitch stage after the spectral warp. |
| Dry_wet_mix | 1.0 | 0 = exact dry bypass; 1 = fully processed. Values outside 0–1 are clamped. |
| Advanced_settings | Off | Opens the second settings form. |
| Draw_visualization | On | Draws analysis for the first selected Sound only. |
| Play_result | On | Plays each produced result after processing. |
Advanced settings
| Control | Default | Meaning |
|---|---|---|
| Manual pitch floor / ceiling | 75 / 600 Hz | Used directly when auto range is off and as fallback limits if auto estimation is not usable. |
| Keep intermediates | Off | Keeps the final Pitch, pulse PointProcess and extracted Formant landmark object for each processed Sound. |
| Max_formant_hz | 5500 Hz | Upper reference for FormantPath analysis; constrained internally against Nyquist. |
| Envelope_width_scale | 1.0 | Scales the broad Gaussian regions used for redistribution. Internally clamped to 0.2–4.0. Presets 1–5 override it. |
| Envelope_strength_dB | 15 dB | Maximum magnitude of the accumulated spectral gain curve. Internally clamped to 0.1–36 dB. Presets 1–5 override it. |
| Require_formant_confidence | On | Bypasses the spectral warp if fewer than two usable landmarks are found or their total span is under 600 Hz. |
| Output_level_mode | Natural level | Natural / Safety ceiling / Peak normalize. |
| Ceiling_peak | 0.95 | Target used by Safety ceiling and Peak normalize. Invalid values fall back to 0.95. |
How the mapping works
1. Whole-sound jitter and shimmer
The script uses Praat's voice-analysis chain: Sound → Pitch (cc) → PointProcess (cc) → Voice report, then reads Jitter (local) and Shimmer (local). The time range passed to Voice report is 0–0, so the values summarize the whole analysis Sound.
To make the control response less explosive at high perturbation values, the measured percentages are logarithmically compressed. With Global intensity = 1, roughly 5% jitter maps to a normalized drive of 1, and roughly 10% shimmer maps to 1. The resulting F1–F2 and F3–F5 frequency ratios are finally constrained to 0.5–2.0.
2. Static formant landmarks
The script runs FormantPath (Burg) on the analysis channel and takes the median frequency of F1 through F5 over the whole Sound. These medians are the five reference landmarks used to construct the static spectral map.
3. Spectral redistribution
For every active landmark, the gain curve contains a broad negative Gaussian centred at the measured frequency and a matching positive Gaussian centred at its target. The five contributions are summed, limited to ±Envelope_strength_dB, converted from dB to linear gain, and multiplied into the complex Spectrum.
This is an energy redistribution around landmark regions, not literal movement of LPC resonances. A target can only emphasize energy already represented in the broadband spectrum; it does not synthesize a new oscillator at that frequency.
4. Optional pitch shift
The pitch stage is independent of the jitter/shimmer mapping. When enabled, the script creates a Manipulation object, multiplies its PitchTier by the preset multiplier, and resynthesizes with overlap-add. The spectral warp has already been completed before this stage.
Input, output & level behavior
- Selection: one or more Sound objects may be processed in a single run.
- Channels: mono remains mono; stereo and higher channel counts are preserved. Analysis uses only the loudest-RMS channel, but the same static map is applied independently to every channel.
- Duration: preserved. The spectral stage trims any Fourier zero padding back to the original duration.
- Sample rate: preserved.
- Start time: preserved. Processing is temporarily moved to t=0 and the original
xminis restored to the final output. - Natural level: no final scaling. Peaks may exceed 1.0.
- Safety ceiling: attenuates only when the peak is above
Ceiling_peak. - Peak normalize: scales every non-silent processed output to
Ceiling_peak. - Exact bypass: output-level mode is ignored when
Dry_wet_mix = 0, so the original samples and metadata are retained exactly.
Processed naming: original_JitterShimmer_PresetName. Exact bypass uses original_JitterShimmer_Bypass; silent/near-silent analysis falls back to original_JitterShimmer_SilenceBypass.
Visualization
Visualization is drawn for the first selected Sound only and does not alter the audio result. Tests with visualization on and off produced sample-identical output.
- Original / Processed spectrograms: side-by-side views, up to
Max_formant_hzor 49% of the sample rate. - Landmark map: F1–F5 on the horizontal axis. Grey markers are measured median landmarks; blue markers are their static targets; connecting lines show direction and distance of the mapping.
- Summary strip: measured jitter/shimmer, the two frequency ratios and the formant-confidence state.
For Sounds longer than five seconds, the spectrogram comparison shows the first five seconds, while the jitter/shimmer and landmark calculations still refer to the full analysis Sound.
Notes & limitations
- Use voice-quality measurements as control data, not diagnosis. Jitter and shimmer in this tool are compositional mapping inputs. Their reliability depends strongly on periodicity and on an appropriate pitch range.
- Whole-file statistics matter. Praat's documentation notes that whole-sound voice measurements may include passages that would normally be excluded by a manual time selection. Trim or select suitable material before processing when the source contains long silences, false starts or unrelated passages.
- Unpitched material can produce little or no mapping. If reliable jitter/shimmer cannot be measured, the script uses zero rather than fabricating values.
- Formant landmarks are analysis estimates. The confidence gate can suppress the warp when the landmark set is too sparse or implausibly narrow.
- Natural level can exceed digital full scale. Use Safety ceiling when writing directly to integer audio formats and clipping must be avoided.
Further reading
- Praat manual: Voice 6. Automating voice analysis with a script — the Sound + Pitch + PointProcess workflow used for scripted jitter/shimmer measurement.
- Praat manual: Voice 2. Jitter and Voice 3. Shimmer — definitions of the local perturbation measures.
- Praat manual: FormantPath and Sound: To FormantPath (burg)... — the formant-landmark analysis used here.
- Praat manual: Spectrum and Sound: To Spectrum... — complex-spectrum representation and reconstruction used by the spectral warp.