Creative Formant Manipulations — User Guide

Seven experimental formant transformations: rotation (vowel morphing), reversal (spectral flip), scrambling (randomization), scaling (gender shift), LFO modulation, crossfading (temporal blend), and freezing (static vowels) — creates impossible vocal transformations and timbral effects.

Author: Shai Cohen Affiliation: Department of Music, Bar-Ilan University, Israel Version: 0.1 (2025) License: MIT License Repo: https://github.com/ShaiCohen-ops/Praat-plugin_AudioTools
Contents:

What this does

This script provides seven creative formant manipulations for experimental voice and timbre transformation. Process: (1) Extract formants from input audio using FormantPath analysis. (2) Apply selected manipulation to formant frequencies/bandwidths. (3) Resynthesize audio using modified formants via FormantGrid filtering. Manipulations: Rotation (shift all formants up/down), Reversal (F1↔F5, F2↔F4), Scrambling (random permutation per frame), Scaling (gender shift via frequency/bandwidth ratios), LFO modulation (cyclic frequency wobble), Crossfading (blend start/end formants), Freezing (hold formants at intervals). Result: Impossible vocal transformations beyond natural speech — creates alien voices, morphing timbres, robotic effects, gender shifts, and experimental textures.

What are formants? Formants are resonant peaks in the vocal tract's frequency response that define vowel identity. F1 (first formant) ≈ 300-700 Hz relates to tongue height. F2 (second formant) ≈ 800-2400 Hz relates to tongue front/back position. F3-F5 add timbral color. Natural speech: formants move smoothly between vowel positions. This script manipulates formants in unnatural ways: reversing their order, randomizing them, modulating them cyclically, freezing them — creating effects impossible with human vocal tract.

Quick start

  1. In Praat, select exactly one Sound object (works best on voice/tonal material).
  2. Run script…Creative_Formant_Manipulations.praat.
  3. Choose Manipulation_type (1-7, see below for descriptions).
  4. Adjust manipulation-specific parameters (rotation amount, LFO rate, etc.).
  5. FormantPath parameters usually work well at defaults (modify for non-speech material).
  6. Click OK — processing begins, output auto-plays.
Quick tip: For voice processing: Use default FormantPath settings (5500 Hz max formant for adult speech). For gender shift: Use Formant scaling (shift_ratio <1.0 = male→female, >1.0 = female→male). For alien vocals: Try Formant reversal or scrambling. For robotic voice: Use Formant freezing (creates static vowels). Works best on sustained vowels or voiced speech. Unvoiced consonants (s, t, k) have no clear formants — effect minimal on those segments.
Important: Best results on voiced, tonal material (speech, singing, sustained notes). Poor results on noise, percussion, or broadband signals (formants undefined). Processing time: 5-30 seconds depending on duration and frame count. All manipulations preserve pitch (F0) — only formants (timbre) altered. Some manipulations (scrambling, reversal) create very unnatural timbres — may be unintelligible if applied to speech.

7 Manipulation Types

1. Formant Rotation (Vowel Morphing)

What it does: Shifts all formants up or down in frequency by specified semitones (multiplication by 2^(semitones/12)).

Parameters: Rotation_amount_(semitones) — positive = shift up (brighter), negative = shift down (darker).

Effect: Changes vowel identity smoothly. Example: "ah" → "eh" → "ee" with increasing rotation. Similar to formant shifting in pitch correction software.

Use: Vowel morphing, timbral brightening/darkening, creating intermediate vowel sounds.

2. Formant Reversal (Spectral Flip)

What it does: Reverses formant order (F1 ↔ F5, F2 ↔ F4, F3 stays same).

Parameters: None (automatic reversal).

Effect: Creates "inside-out" vocal timbre. Low formants become high, high become low. Very unnatural, alien character.

Use: Alien voices, experimental sound design, creating impossible vocal timbres.

3. Formant Scrambling (Randomize)

What it does: Randomly shuffles formant order at each time frame (Fisher-Yates shuffle algorithm).

Parameters: None (automatic random permutation per frame).

Effect: Chaotic, constantly-changing timbre. No stable vowel identity. Formants jump unpredictably frame-to-frame.

Use: Glitch effects, chaotic textures, destroying intelligibility, extreme experimental processing.

4. Formant Scaling (Gender Shift)

What it does: Scales formant frequencies and bandwidths by independent ratios.

Parameters: Formant_shift_ratio (frequency scaling), Formant_stretch_ratio (bandwidth scaling).

Effect: Gender transformation. Ratio <1.0 (e.g., 0.8) = male→female (higher formants). Ratio >1.0 (e.g., 1.2) = female→male (lower formants).

Use: Gender shifting, voice disguise, creating different vocal characteristics.

Example: shift=0.85, stretch=1.15 — raises formants (feminization), widens bandwidths (adds breathiness).

5. Formant LFO Modulation

What it does: Modulates all formants cyclically via sine wave LFO (Low-Frequency Oscillator).

Parameters: LFO_rate_Hz (modulation speed), LFO_depth_semitones (modulation range).

Effect: Formants wobble up/down rhythmically. Creates "wah-wah" or tremolo-like timbre variation.

Use: Vibrato-like effects, rhythmic timbral modulation, synthetic vocal character.

Example: rate=2 Hz, depth=6 semitones — formants oscillate ±6 semitones twice per second.

6. Formant Crossfade (Temporal Blend)

What it does: Blends between first frame and last frame formants cyclically over duration.

Parameters: Crossfade_cycles (number of start→end→start cycles).

Effect: Formants morph from beginning vowel to ending vowel and back, repeatedly. Creates looping vowel transitions.

Use: Vowel animation, creating motion in static sounds, temporal formant evolution.

Example: 3 cycles — formants crossfade start→end→start three times over audio duration.

7. Formant Freezing (Hold Vowels)

What it does: Holds formants static at regular intervals (samples formant, holds for duration, repeats).

Parameters: Freeze_interval_(s) (time between freezes), Freeze_duration_(s) (how long to hold).

Effect: Creates "stuttering" or "robotic" vowels. Formants lock, then jump to next freeze position.

Use: Robotic voice, beat-repeat-like formant effects, rhythmic vowel chopping.

Example: interval=0.3s, duration=0.15s — freeze formant every 300ms for 150ms.

Parameters

FormantPath Analysis Parameters

Parameter Default Description
Time_step_(s) 0.005 Analysis frame rate (200 frames/second). Smaller = finer temporal resolution.
Max_number_of_formants 5 Number of formants to track (typically 3-5 for speech).
Maximum_formant_(Hz) 5500 Upper frequency limit for formant search (5000-5500 Hz for adult speech, 8000 Hz for children).
Window_length_(s) 0.025 Analysis window duration (25ms standard for speech).
Pre_emphasis_from_(Hz) 50 High-pass filter to boost high frequencies for formant detection.
Formant_smoothing_bandwidth 0.05 Smoothing kernel bandwidth (temporal averaging of formant tracks).
Relative_formant_bandwidth 4 Bandwidth scaling factor (higher = wider formant bandwidths in synthesis).

Manipulation-Specific Parameters

Parameter Manipulation Default Range/Notes
Rotation_amount_(semitones) Rotation 3 ±12 semitones typical. Positive = up, negative = down.
Formant_shift_ratio Scaling 0.8 0.7-1.3 typical. <1.0 = higher formants (feminization).
Formant_stretch_ratio Scaling 1.2 0.8-1.5 typical. >1.0 = wider bandwidths (breathiness).
LFO_rate_Hz LFO 2 0.5-10 Hz typical. Higher = faster wobble.
LFO_depth_semitones LFO 6 1-12 semitones typical. Larger = more extreme modulation.
Crossfade_cycles Crossfade 3 1-10 cycles typical. More cycles = faster morphing.
Freeze_interval_(s) Freezing 0.3 0.1-1.0s typical. Time between freeze events.
Freeze_duration_(s) Freezing 0.15 0.05-0.5s typical. How long to hold formants. Must be < interval.

Output Options

Parameter Default Description
Keep_intermediate_objects 0 (false) If true, keeps FormantPath, Formant, FormantGrid objects for inspection. If false, auto-cleanup.

Applications & Use Cases

Voice Transformation

Gender shifting: Use Formant scaling (shift_ratio 0.8-0.9 for feminization, 1.1-1.2 for masculinization).

Alien/robot voices: Use Formant reversal or scrambling for unintelligible, otherworldly character.

Vowel morphing: Use Formant rotation to smoothly transition between vowel qualities.

Experimental Sound Design

Glitch vocals: Formant scrambling creates chaotic, digital artifact aesthetic.

Synthetic textures: Apply to non-vocal material (synths, pads) for formant-like resonances.

Rhythmic effects: Formant freezing or LFO modulation creates pulsing timbral variation.

Creative Combinations

Chain manipulations: Process output with different manipulation type for compound effects.

Layer originals: Mix manipulated version with original for partial formant alteration.

Automate parameters: Modify script to vary parameters over time (e.g., gradual rotation increase).

Troubleshooting

Problem: No audible effect or quiet output
Cause: Poor formant detection (noise, unvoiced material) or formants outside valid range
Solution: Use tonal/voiced material. Check Maximum_formant matches input (5500 Hz for speech, adjust for other material).
Problem: Artifacts, buzzing, or distortion
Cause: Formants too close together, extreme manipulations, or bandwidth issues
Solution: Reduce manipulation intensity (smaller rotation/scaling). Adjust Relative_formant_bandwidth (4-10 range).
Problem: Gender shift sounds unnatural
Cause: Only formants shifted, not pitch (F0) — mismatch creates uncanny valley effect
Solution: For realistic gender shift, combine with pitch shifting (Change gender... in Praat, or external pitch shifter).