Dual-Mode Tremolo Generator — User Guide

Intelligent amplitude modulation: combines adaptive signal-responsive tremolo with classic strong pulsing effects for musical volume oscillation that responds to your audio content.

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

What this does

This script implements a dual-mode tremolo generator — a sophisticated amplitude modulation system that provides two distinct approaches to creating rhythmic volume oscillation effects. The system offers: (1) Adaptive Mode: Intelligent tremolo that responds to the input signal's amplitude, creating more musical and natural-sounding modulation that emphasizes loud passages and recedes during quiet sections. (2) Strong Mode: Classic absolute tremolo that applies consistent, powerful pulsing regardless of input content, perfect for dramatic rhythmic effects and vintage-style modulation.

Key Features:

What is tremolo? Tremolo is a classic audio effect that creates rhythmic volume oscillation, typically using a low-frequency oscillator (LFO) to modulate amplitude. Unlike vibrato (pitch modulation) or tremolo picking (performance technique), audio tremolo systematically varies loudness at a controlled rate. Historical uses: (1) Guitar amplifiers: Fender and other amp tremolo circuits. (2) Organ stops: Leslie speakers and vibrato effects. (3) Electronic music: Rhythmic texture creation. (4) Sound design: Creating pulsating, living sounds. The dual-mode approach addresses different musical needs: adaptive tremolo for natural, responsive effects that work with the music, and strong tremolo for bold, consistent rhythmic patterns that cut through any mix.

Technical Implementation: (1) Mode selection: Choose between adaptive (signal-responsive) and strong (absolute) processing paths. (2) Adaptive processing: Use mathematical formula that combines sine-wave modulation with signal amplitude detection to create content-aware tremolo. (3) Strong processing: Generate absolute sine-wave modulator and multiply with original signal for consistent pulsing. (4) Parameter application: Apply user-controlled rate, depth, and sensitivity settings. (5) Output handling: Normalize peak levels and provide playback options. The system uses Praat's efficient formula processing for real-time capable operation and includes careful handling of edge cases and numerical stability.

Quick start

  1. In Praat, select exactly one Sound object.
  2. Run script…Dual_Mode_Tremolo_Generator.praat.
  3. Choose Mode: Adaptive (musical, responsive) or Strong (powerful, consistent).
  4. Set Modulation_rate_hz (2-8 Hz for typical tremolo, 0.5-2 Hz for slow swells).
  5. For Adaptive mode: Adjust depth, sensitivity, and offset parameters.
  6. For Strong mode: Choose whether to keep modulator sound for analysis.
  7. Set Scale_peak output level and enable playback if desired.
  8. Click OK — processing completes almost instantly.
  9. Output appears as "originalname_adaptive_tremolo" or "originalname_strong_tremolo".
Quick tip: Start with Adaptive mode for vocals, acoustic instruments, and natural-sounding modulation — it responds to your audio's dynamics. Use Strong mode for synthesizers, drums, and dramatic rhythmic effects — it creates consistent pulsing regardless of content. Modulation rates 4-7 Hz work well for most musical applications. Lower rates (0.5-2 Hz) create slow, atmospheric swells. Higher rates (8-15 Hz) create tremolo-like textures. In Adaptive mode, higher sensitivity makes the tremolo more responsive to signal changes, while sensitivity offset ensures some modulation occurs even during quiet passages. The visualization helps understand how each mode affects your audio.
Important: RATE LIMITATIONS — very high modulation rates (>20 Hz) may approach audible frequencies and cause aliasing artifacts. Very low rates (<0.1 Hz) may not be perceivable as tremolo on short sounds. Extreme depth settings (near 1.0) can cause near-silence at modulation troughs. Adaptive mode uses signal amplitude — very quiet sources may show minimal modulation. Strong mode creates consistent pulsing that can overwhelm subtle material. Stereo files are processed with identical modulation on both channels (mono-compatible). Output normalization to 0.99 prevents clipping but preserves the tremolo character. Test on short segments first to dial in your preferred settings.

Tremolo Theory

Amplitude Modulation Fundamentals

Mathematical Basis of Tremolo

Sine-wave modulation principles:

Basic tremolo formula: output(t) = input(t) × modulation(t) Where modulation(t) is typically: modulation(t) = 1 - depth × (1 + sin(2π × rate × t)) / 2 This creates a sine wave that oscillates between: Maximum: 1.0 (full amplitude) Minimum: 1 - depth (reduced amplitude) Example with depth = 0.7, rate = 5 Hz: modulation ranges from 0.3 to 1.0 Creates 70% amplitude variation at 5 cycles per second Why sine waves? Smooth, musical modulation No sharp transitions or artifacts Natural sounding volume changes Mathematically pure and efficient

Why Amplitude Modulation?

Musical and perceptual advantages:

Dual-Mode Architecture

Adaptive Mode Mathematics

Signal-responsive modulation:

Adaptive tremolo formula: output = input × (1 - max_depth × (1 + sin(2π × rate × t)) / 2 × (offset + sensitivity × |input|)) Components: Base modulation: 1 - max_depth × (1 + sin(2π × rate × t)) / 2 Signal sensitivity: offset + sensitivity × |input| How it works: During loud passages: |input| is large → stronger modulation During quiet passages: |input| is small → weaker modulation Offset ensures some modulation always occurs Sensitivity controls how much signal affects modulation Example values: max_depth = 0.7, offset = 0.5, sensitivity = 0.5 Loud signal (|input| = 0.8): modulation factor = 0.5 + 0.5×0.8 = 0.9 Quiet signal (|input| = 0.1): modulation factor = 0.5 + 0.5×0.1 = 0.55 Result: 90% modulation depth on loud parts, 55% on quiet parts

Strong Mode Mathematics

Absolute modulation approach:

Strong tremolo implementation: 1. Create modulator signal: modulator(t) = |sin(2π × rate × t)| 2. Apply to audio: output(t) = input(t) × modulator(t) Why absolute value? |sin(x)| ranges from 0 to 1 (always positive) Creates tremolo that goes from silence to full volume More dramatic than bipolar sine modulation Classic "on-off" tremolo character Modulator characteristics: Frequency: same as rate parameter Waveform: rectified sine wave (half-wave) Range: 0 (complete silence) to 1 (full volume) Creates strong, percussive tremolo effect Optional modulator retention: Can keep modulator sound for analysis or further processing

🎵 Adaptive Mode Intuition

For vocal processing:

Loud sung notes → strong tremolo effect

Soft breaths between phrases → subtle modulation

Result: Musical emphasis where it matters most


For guitar:

Strong picked notes → pronounced pulsing

Sustained decay → gradually fading modulation

Result: Natural, performance-responsive effect

Rate and Depth Relationships

Modulation Parameter Effects

How parameters affect the sound:

MODULATION RATE (Hz): Perception ranges: 0.1-1 Hz: Very slow, atmospheric swells 1-3 Hz: Slow, lyrical pulsation 3-7 Hz: Typical tremolo range (musical) 7-15 Hz: Fast, nervous pulsation 15+ Hz: Rhythmic texture/timbre change Musical timing equivalents: 1 Hz = 60 BPM (quarter notes) 2 Hz = 120 BPM (eighth notes) 4 Hz = 240 BPM (sixteenth notes) 8 Hz = 480 BPM (thirty-second notes) MODULATION DEPTH: 0.1-0.3: Subtle, barely perceptible 0.3-0.6: Moderate, clearly audible 0.6-0.9: Strong, dramatic effect 0.9-1.0: Extreme, near-silence at troughs Adaptive mode depth: max_depth sets maximum possible modulation Actual depth varies with signal amplitude Creates dynamic, responsive behavior

Why Parameter Ranges Matter

Perceptual considerations:

Dual Modes

🎚️ Two Processing Approaches

Complete comparison of adaptive vs strong tremolo modes:

Mode 1: Adaptive Tremolo

AspectCharacterBest ForTechnical Approach
Modulation BehaviorSignal-responsive, dynamicNatural sounds, vocals, acousticMathematical formula with amplitude detection
Depth ControlVariable based on contentMusical expressionmax_depth × (offset + sensitivity × |input|)
WaveformSine wave modulationSmooth, musical effectsStandard sine LFO
Quiet PassagesSubtle modulationMaintaining natural dynamicsReduced depth via offset parameter
Loud PassagesStrong modulationEmphasizing important momentsIncreased depth via sensitivity

Mode 2: Strong Tremolo

AspectCharacterBest ForTechnical Approach
Modulation BehaviorAbsolute, consistentSynthesizers, drums, effectsSeparate modulator sound generation
Depth ControlFixed, maximumDramatic rhythmic effectsFull depth (0 to 1 range)
WaveformAbsolute sine wavePowerful on-off pulsation|sin(2π × rate × t)|
Quiet PassagesFull modulationConsistent rhythmic patternsUnaffected by signal content
Loud PassagesFull modulationCutting through mixesUnaffected by signal content

Mode Selection Guide

Choosing the right mode:
  • Use Adaptive mode when:
    • Processing natural recordings (vocals, instruments)
    • You want the effect to respond to performance dynamics
    • Creating subtle, musical modulation
    • Preserving natural sound character is important
  • Use Strong mode when:
    • Processing synthetic sounds or drums
    • You want consistent, powerful rhythmic effects
    • Creating dramatic, attention-grabbing modulation
    • Recreating vintage amplifier tremolo sounds

Each mode serves different musical purposes and creative intentions

Creative Mode Applications

🎤 Vocal Expression

Mode: Adaptive

Application: Process lead vocals for emotional emphasis

Result: Tremolo that strengthens on emotional peaks and recedes during softer passages

🎹 Synth Arpeggios

Mode: Strong

Application: Process synthesizer arpeggios for rhythmic drive

Result: Consistent, powerful pulsation that creates forward motion

🥁 Drum Textures

Mode: Strong

Application: Process drum loops for chopped rhythmic effects

Result: Gated, percussive patterns with vintage character

Parameters Guide

⚙️ Complete Parameter Reference

Detailed explanation of all tremolo parameters:

Common Parameters (Both Modes)

ParameterRangeDefaultDescription
Modulation_rate_hz0.1-20.05.0Tremolo speed in cycles per second
Scale_peak0.1-1.00.99Output peak normalization level
Play_after_processing0/11Auto-play result after processing

Adaptive Mode Parameters

ParameterRangeDefaultDescription
Max_modulation_depth0.1-1.00.7Maximum possible modulation depth
Signal_sensitivity0.0-2.00.5How much signal affects modulation
Sensitivity_offset0.0-1.00.5Base modulation level for quiet signals

Strong Mode Parameters

ParameterOptionsDefaultDescription
Keep_modulator_sound0/10Retain LFO modulator sound for analysis

Parameter Interactions

Key relationships:
  • Rate vs musical timing: Higher rates create faster rhythmic patterns
  • Adaptive depth control: max_depth × (offset + sensitivity × signal)
  • Sensitivity vs offset: Balance between signal response and base modulation
  • Strong mode consistency: Parameters create predictable, repeatable effects

Parameters work together to create the overall tremolo character

Recommended Settings

🎸 Vintage Amp Tremolo

Mode: Strong

Settings:

  • Modulation_rate_hz: 6.5
  • Keep_modulator_sound: 0

🎻 Expressive Strings

Mode: Adaptive

Settings:

  • Modulation_rate_hz: 3.0
  • Max_modulation_depth: 0.6
  • Signal_sensitivity: 0.7
  • Sensitivity_offset: 0.3

🌊 Ambient Swell

Mode: Adaptive

Settings:

  • Modulation_rate_hz: 0.8
  • Max_modulation_depth: 0.9
  • Signal_sensitivity: 0.4
  • Sensitivity_offset: 0.6

Applications

Music Production

Use case: Add rhythmic interest to static sounds

Technique: Apply moderate tremolo to pads and sustained sounds

Example: Transform static synth pads into breathing, living textures

Sound Design

Use case: Create vintage and retro effects

Technique: Use strong mode with medium rates

Example: Recreate 1960s guitar amplifier tremolo sounds

Voice Processing

Use case: Enhance vocal expression and emotion

Technique: Use adaptive mode to follow vocal dynamics

Example: Add subtle tremolo that strengthens on emotional vocal peaks

Rhythmic Effects

Use case: Create chopped rhythmic patterns

Technique: Use strong mode with faster rates

Example: Process drum loops to create stutter and gate effects

💡 Creative Techniques

Advanced applications:

  • Layered tremolo: Apply different modes to frequency bands
  • Tempo sync: Calculate rate from BPM for musical timing
  • Automated parameters: Change rate or depth over time
  • Stereo tremolo: Process channels with different rates for spatial effects

Troubleshooting Common Issues

Problem: Tremolo effect too subtle
Cause: Low depth settings or inappropriate mode
Solution: Increase depth parameters or try strong mode
Problem: Unpleasant silence gaps
Cause: Extreme depth settings in strong mode
Solution: Reduce depth or use adaptive mode with offset
Problem: Tremolo doesn't respond to dynamics
Cause: Using strong mode instead of adaptive
Solution: Switch to adaptive mode and adjust sensitivity
Problem: Aliasing artifacts at high rates
Cause: Very high modulation rates
Solution: Use lower rates (below 15 Hz typically)