Fade-In — User Guide

Applies a configurable fade-in envelope to one Sound, with full-duration or partial fades, five curve shapes, optional whole-output gain adjustment, explicit normalization, playback, and visualization.

Author: Shai CohenVersion: 1.2 (2026)Category: DynamicsInput: exactly one SoundLicense: MIT
Contents:

What this does

The script copies the selected Sound and multiplies it by a fade-in gain envelope. The envelope rises from approximately zero at the beginning of the fade region to unity at its end. With a partial fade, all samples after the fade region are left at gain 1.0. With a full-duration fade, the curve spans the entire Sound.

Actual Sound time is preserved. Version 1.2 uses the Sound's real xmin/xmax. A Sound that begins at 5.0 s is faded from 5.0 s onward; the script does not assume that the object starts at time 0.

An optional gain adjustment named Apply_attenuation is applied to the whole copied Sound before the fade. Negative values attenuate; a positive custom value would amplify. Optional peak normalization is a separate final stage and is off by default.

Quick start

  1. Select exactly one Sound object.
  2. Run Linear_Fade-In.praat.
  3. Choose a preset or Custom.
  4. Choose the curve and whether the fade spans the full Sound or only its first N seconds.
  5. Optionally apply whole-output attenuation and/or final peak normalization.
  6. Leave Draw_visualization and Play_result enabled if desired, then click OK.

Fade curves

Let φ = (x − fadeStart) / fadeLen within the fade region, so φ runs from 0 to 1 in continuous time.

CurveEnvelope inside fadeCharacter
LinearφConstant-rate rise.
Exponential(base^φ − 1) / (base − 1)For base > 1, slower beginning and faster approach to unity.
Logarithmicln(1 + φ(base−1)) / ln(base)For base > 1, faster beginning and slower approach to unity.
S-Curve(1 − cos(πφ)) / 2Smooth slope at both ends.
Quarter-sinesin(πφ/2)Fast initial rise with a progressively gentler approach to unity.
Curve_base: used only for Exponential and Logarithmic. Values below 1 are rejected. Curve_base = 1 is handled explicitly as the exact linear limiting case, avoiding division by zero.

Presets

Preset selection overwrites the parameters listed below. Parameters not mentioned by a preset retain the form value.

PresetCurveFade rangeWhole-output gain adjustment
CustomForm valuesForm valuesForm values
Gentle EntryLogarithmicFull durationOff
Dramatic RiseExponential, base 20Full durationOff
Smooth OpenS-CurveFull durationOff
Quick AttackQuarter-sineFirst 20% of Sound durationOff
Soft IntroLinearFirst 2 s, clamped to Sound duration−12 dB applied to the entire output
Cinematic SwellS-CurveFull duration−6 dB applied to the entire output
Normalize_output is not changed by presets. It remains whatever the user selected in the form; its default is off.

Parameters

ParameterDefaultBehavior
PresetCustomSelects one of the configurations above.
Curve_shapeS-CurveLinear, Exponential, Logarithmic, S-Curve, or Quarter-sine.
Curve_base10Used only by Exponential/Logarithmic; must be ≥ 1. Base 1 gives a linear fade.
Full_durationOnWhen on, the fade spans the complete Sound duration.
Fade_seconds2.0 sUsed only when Full_duration is off. Values longer than the Sound are clamped to its duration; the effective fade is at least about 1 ms when possible.
Apply_attenuationOffApplies a constant gain to the whole copied Sound before fading.
Attenuation_dB−6 dBConverted to linear gain as 10^(dB/20). Negative values attenuate.
Normalize_outputOffIf enabled and output is non-silent, scales sample peak to 0.99 after all processing.
Draw_visualizationOnDraws the diagnostic page in Praat Picture.
Play_resultOnPlays the processed Sound.

Processing details

1. Copy source → <source>_fadeIn 2. If Apply_attenuation: sample *= 10^(Attenuation_dB/20) 3. Compute fade region [srcStart, srcStart + fadeLen] 4. Multiply samples inside region by selected curve 5. Samples after fadeEnd keep gain 1.0 6. If Normalize_output and output peak > 0: Scale peak to 0.99 7. Optionally visualize and play

The script processes all channels of the selected Sound together with the same time-varying gain law. It does not resample the audio, change duration, or create a mono downmix.

Normalization is intentionally explicit. With its default off, attenuation remains an actual level change. If normalization is enabled, it may undo some or all of that global attenuation by bringing the final sample peak to 0.99.

Praat Sound samples are located at sample-center times rather than exactly on xmin/xmax. The continuous envelope is defined to reach 0 and 1 at the mathematical region boundaries, but the first or last stored sample normally lies slightly inside those boundaries.

Visualization

The 8-inch Picture view contains:

The Original and Output waveform panels use a shared amplitude range so their levels are directly comparable. The envelope panel describes the fade multiplier only; whole-output attenuation and final normalization are reported separately rather than folded into that curve.

Output