Stretch-Tremolo Ambience — User Guide
Time-stretched textures meet rhythmic pulsation: creates ethereal ambient layers by stretching audio into smooth clouds, then applying tremolo modulation to generate breathing, living soundscapes from any source material.
What this does
This script creates ethereal ambient textures by combining time-stretching with tremolo modulation. It processes audio through a unique two-stage pipeline: first stretching the source material into smooth, sustained "clouds" using phase-vocoder techniques, then applying rhythmic amplitude modulation to create breathing, pulsating textures. The result is a lush ambient layer that can be mixed with the original sound to add depth, space, and atmospheric character to any audio material.
Key Features:
- 4 Atmospheric Presets — From ethereal pads to dark drones
- Phase-Vocoder Stretching — High-quality time expansion without pitch change
- Rhythmic Cloud Modulation — Tremolo-applied to stretched textures
- Flexible Mix Control — Independent dry/wet balancing
- Mono Compatibility — Automatic stereo preservation
- Duration Preservation — Stretched cloud cropped to original length
Technical Implementation: (1) Safety preparation: Renames source audio to prevent object reference conflicts. (2) Cloud creation: Converts to mono, applies phase-vocoder stretching using Praat's Lengthen algorithm. (3) Modulation: Applies tremolo to stretched cloud using sine-wave amplitude modulation. (4) Duration management: Crops stretched cloud back to original duration. (5) Mixing: Combines original dry signal with modulated cloud using flexible mix controls. (6) Cleanup: Restores original names and removes temporary objects.
Quick start
- In Praat, select exactly one Sound object (any material works).
- Run script… →
stretch_tremolo_ambience.praat. - Choose a Preset or select "Custom" to adjust parameters manually.
- Adjust Stretch Parameters:
- Stretch_factor: Time expansion amount (1.5-8.0)
- Set Cloud Modulation for rhythmic character:
- Cloud_Rate_Hz: Tremolo speed (0.2-6.0 Hz)
- Cloud_Depth: Modulation intensity (0.2-0.8)
- Adjust Mix balances:
- Dry_Mix: Original signal level (0.0-2.0)
- Wet_Cloud_Mix: Ambient layer level (0.0-1.0)
- Click OK — effect applied, result named "originalname_cloud".
Ambience Creation Theory
The Two-Stage Ambience Pipeline
From Source to Soundscape
The effect transforms audio through two distinct processes:
🌫️ Why Stretch Before Modulating?
Traditional approach: Apply modulation to original → rhythmic but detailed
This approach: Stretch first, then modulate → smooth and rhythmic
Key insight: Time-stretching smooths out transients and details, creating a canvas that tremolo can paint with broad, beautiful strokes. The modulation works on the texture rather than the details.
Phase-Vocoder Time Stretching
How Praat's Lengthen Algorithm Works
The phase-vocoder preserves pitch while changing duration:
Stretch Factor Effects
1.5-2.0: Subtle smoothing, preserves most original character
2.0-3.0: Noticeable texture change, good for rhythmic sources
3.0-5.0: Strong pad-like transformation, ideal for ambience
5.0-8.0: Extreme smoothing, creates drone textures
8.0+: Experimental, may produce artifacts
Sweet spot: 3.0-4.0 for most musical applications
Tremolo Modulation Mathematics
Sine-Wave Amplitude Control
The tremolo uses a classic amplitude modulation formula:
Rate and Depth Combinations
Slow + Deep (0.2 Hz, 0.7 depth): Breathing, oceanic motion
Medium + Medium (2.0 Hz, 0.5 depth): Gentle pulsation
Fast + Shallow (6.0 Hz, 0.3 depth): Nervous, shimmering
Very Slow + Very Deep (0.1 Hz, 0.9 depth): Swelling, dramatic
Musical rates:
0.5-1.0 Hz: Largo, very slow breathing
1.0-2.0 Hz: Adagio, relaxed pulse
2.0-4.0 Hz: Andante, walking pace
4.0-6.0 Hz: Allegro, energetic pulse
Stretch Technique
⏱️ Phase-Vocoder Time Stretching
How time-stretching creates ambience:
Why mono for stretching?
- Ensures phase coherence between channels
- Prevents stereo image smearing
- More computationally efficient
- Final mix preserves original stereo
Complete Processing Pipeline
🔄 Step-by-Step Processing
STEP 1: Safety Preparation
STEP 2: Cloud Layer Creation
STEP 3: Tremolo Application
STEP 4: Duration Management
STEP 5: Final Mix
STEP 6: Cleanup
Source Material Considerations
What Works Best for Stretch-Tremolo
Percussive sounds: Drums, hits, clicks → Smooth textures
Vocal fragments: Words, syllables → Choir-like pads
Instrument sustains: Strings, synths → Enhanced atmospheres
Environmental sounds: Water, wind → Dreamy textures
Short melodic phrases: Riffs, motifs → Evolving pads
Less ideal material:
Already sustained sounds → Less transformation
Very noisy material → May become muddled
Complex polyphonic music → Can become chaotic
Effect Presets
Ethereal Pad (Smooth)
✨ Smooth Textural Transformation
Settings: Stretch: 4.0, Rate: 0.5 Hz, Depth: 0.3, Wet Mix: 0.5
Character: Beautiful, smooth pad textures with gentle breathing motion
Best for: Creating lush pads from any source material
Ghostly Trail (Slow pulse)
👻 Rhythmic Atmospheric Pulses
Settings: Stretch: 2.5, Rate: 4.0 Hz, Depth: 0.6, Wet Mix: 0.4
Character: Pulsating, rhythmic trails with medium texture
Best for: Adding motion to sounds, creating rhythmic beds
Dark Drone (Deep stretch)
🌑 Deep Sustained Atmospheres
Settings: Stretch: 8.0, Rate: 0.2 Hz, Depth: 0.2, Wet Mix: 0.7
Character: Very smooth, deep drone textures with subtle motion
Best for: Background atmospheres, deep textural beds
Shimmering Tail (Fast wobble)
💎 Nervous, Sparkling Textures
Settings: Stretch: 3.0, Rate: 6.0 Hz, Depth: 0.5, Wet Mix: 0.4
Character: Fast, shimmering modulation with preserved detail
Best for: Adding sparkle and motion, special effects
| Preset | Stretch | Rate (Hz) | Depth | Wet Mix | Texture | Motion |
|---|---|---|---|---|---|---|
| Ethereal Pad | 4.0 | 0.5 | 0.3 | 0.5 | Very Smooth | Slow Breathing |
| Ghostly Trail | 2.5 | 4.0 | 0.6 | 0.4 | Medium | Rhythmic Pulse |
| Dark Drone | 8.0 | 0.2 | 0.2 | 0.7 | Ultra Smooth | Very Slow |
| Shimmering Tail | 3.0 | 6.0 | 0.5 | 0.4 | Detailed | Fast Shimmer |
Parameters
Stretch Parameters
| Parameter | Type | Range | Default | Description |
|---|---|---|---|---|
| Stretch_factor | positive | 1.5-8.0 | 3.0 | Time expansion ratio |
Cloud Modulation
| Parameter | Type | Range | Default | Description |
|---|---|---|---|---|
| Cloud_Rate_Hz | positive | 0.2-6.0 | 2.0 | Tremolo oscillation frequency |
| Cloud_Depth | positive | 0.2-0.8 | 0.5 | Modulation intensity |
Mix Parameters
| Parameter | Type | Range | Default | Description |
|---|---|---|---|---|
| Dry_Mix | positive | 0.0-2.0 | 1.0 | Original signal level |
| Wet_Cloud_Mix | positive | 0.0-1.0 | 0.6 | Ambient layer level |
Output Options
| Parameter | Type | Range | Default | Description |
|---|---|---|---|---|
| Scale_peak | positive | 0.1-1.0 | 0.99 | Output normalization level |
| Play_after_processing | boolean | yes/no | yes | Auto-play processed sound |
Parameter Interactions
High Stretch + Low Rate + Medium Depth:
Creates slowly breathing, very smooth pads
Medium Stretch + High Rate + High Depth:
Creates nervous, pulsating textures
Low Stretch + Medium Rate + Low Depth:
Adds subtle motion while preserving detail
Extreme Stretch + Very Low Rate + Low Depth:
Creates nearly static, deep atmospheric beds
Mix balance strategies:
Dry 1.0 + Wet 0.3: Subtle enhancement
Dry 0.5 + Wet 0.7: Strong ambience character
Dry 0.0 + Wet 1.0: Pure ambient texture
Applications
Sound Design and Textures
Use case: Creating custom atmospheric textures from everyday sounds
Technique: Process unexpected source material
Source ideas:
- Kitchen sounds (pans, utensils) → Metallic atmospheres
- Paper rustling → Textural beds
- Water droplets → Rhythmic aquatic textures
- Mechanical sounds → Industrial atmospheres
- Vocal breaths → Choir-like pads
Result: Unique, custom atmospheric layers
Music Production Enhancement
Use case: Adding depth and space to musical elements
Technique: Process individual tracks or stems
Applications:
- Drum loops → Atmospheric rhythmic beds
- Vocal phrases → Background choir textures
- Guitar riffs → Sustained pad layers
- Percussion hits → Evolving textures
- Synth arpeggios → Washed-out backgrounds
Result: Enhanced productions with added atmospheric depth
Film and Game Audio
Use case: Creating ambient beds and environmental sounds
Technique: Process location recordings or Foley
Creative approaches:
- City traffic → Urban atmosphere beds
- Forest sounds → Dreamy natural environments
- Crowd voices → Ghostly population textures
- Machine sounds → Industrial environment beds
- Weather recordings → Atmospheric conditions
Result: Custom, layered ambient soundscapes
Experimental Music and Composition
Use case: Transforming musical material into new textures
Technique: Use as a compositional tool
Compositional strategies:
- Process melodic motifs into atmospheric backgrounds
- Create evolving textures from rhythmic patterns
- Build form through changing stretch and modulation parameters
- Layer multiple processed versions
- Use different presets for different sections
Result: Innovative textural compositions
Practical Workflow Examples
🎵 Drum Loop Transformation
Goal: Turn drum loop into atmospheric bed
Settings:
- Preset: Ethereal Pad
- Increase stretch to 5.0 for more smoothing
- Reduce wet mix to 0.4 to preserve rhythm
- Apply to entire drum loop
Result: Drum loop with atmospheric texture layer
🎤 Vocal Pad Creation
Goal: Create choir-like pad from spoken word
Settings:
- Preset: Dark Drone
- Use stretch 6.0 for maximum smoothing
- Set wet mix to 0.8 for strong effect
- Process individual words or phrases
Result: Vocal-derived pad textures
🎬 Environmental Atmosphere
Goal: Create custom environment bed
Settings:
- Preset: Ghostly Trail
- Adjust rate to match desired pulse speed
- Use medium stretch (3.0-4.0)
- Process location recordings
Result: Custom atmospheric background
Advanced Techniques
- Process same source with different presets
- Layer Ethereal Pad + Ghostly Trail for complex motion
- Use different stretch factors for frequency separation
- Create evolving textures by automating parameters
- Pre-process sounds with EQ before stretching
- Use transient-rich sounds for maximum transformation
- Experiment with unconventional source material
- Combine multiple short sounds before processing
Troubleshooting Common Issues
Cause: Too high stretch factor, complex source material
Solution: Reduce stretch factor, try simpler source sounds
Cause: Too high wet mix, extreme stretch factor
Solution: Reduce wet mix, use lower stretch factor
Cause: Too high cloud depth, inappropriate rate
Solution: Reduce cloud depth, adjust rate for material
Cause: High stretch factor with long duration
Solution: Reduce stretch factor, process shorter segments
Technical Deep Dive
Phase-Vocoder Algorithm
Praat's Lengthen Implementation
The phase-vocoder uses sophisticated time-scale modification:
Quality vs Speed Trade-offs
Quality factors:
- Pitch floor/ceiling settings affect harmonic preservation
- Frame size and overlap affect transient handling
- Phase propagation method affects smoothness
Computational load:
- Increases with stretch factor
- Higher quality settings require more processing
- Long files with high stretch = significant computation
Praat's approach: Optimized for speech but works well for general audio
Mixing and Signal Flow
Preserving Stereo Image
The script carefully manages stereo information:
Creative Extensions
Beyond the Basic Effect
Integration with Other Effects
Before stretch-tremolo:
EQ → Shape frequency content before stretching
Filter → Remove unwanted frequencies
Pitch shift → Create harmonic variations
After stretch-tremolo:
Reverb → Add additional space and depth
Delay → Create rhythmic patterns
Filter → Shape the final texture
Compression → Control dynamics
Parallel processing:
Multiple instances with different settings
Frequency-split processing
Temporal gating for rhythmic effects