Panning Variations — User Guide
Create stereo motion from a mono working source using sweeps, sine-based auto-pan, ping-pong motion, stochastic random walk, expanding or contracting motion, static placement, or equal-channel tremolo.
What this does
Panning Variations creates a two-channel output by first deriving a mono working source and then applying independent left/right gain automation. A mono input is copied; any input with more than one channel is converted to mono before panning. The original Sound is not modified.
- 10 patterns — two linear sweeps, sine auto-pan, double-rate sine auto-pan, ping-pong, random walk, expanding/contracting sine auto-pan, tremolo, and static position.
- Two panning laws — constant-power trigonometric panning or linear panning.
- Bounded pan range — Min_pan and Max_pan are clamped to [0,1] and sorted if entered in reverse order.
- Automation through IntensityTier — sampled L/R gain curves are converted to dB tier points and multiplied with two copies of the mono source.
- Stereo output — the two automated channels are combined and normalized to peak 0.99.
Quick start
- Select exactly one Sound.
- Run
Panning_variations.praat. - Choose a Panning_pattern.
- Set Min_pan and Max_pan to define the allowed stereo range.
- For cyclic pan patterns, set Number_of_cycles. For Tremolo, set Motion_speed_(Hz).
- Choose constant-power or linear panning, then run the script.
original_pan_pattern, for example voice_pan_SinePan or voice_pan_Random.Panning patterns
| Pattern | Motion | Active motion parameter | Output suffix |
|---|---|---|---|
| Linear Sweep (L → R) | One linear traversal from the low end of the selected pan range to the high end across the full Sound duration. | None | SweepLR |
| Linear Sweep (R → L) | One linear traversal in the opposite direction. | None | SweepRL |
| Sine Auto-Pan | Sinusoidal motion across the selected pan range. | Number_of_cycles | SinePan |
| Double-Rate Sine Auto-Pan | The same sine trajectory at twice the ordinary sine rate. With Number_of_cycles = 2, four sine cycles occur across the Sound. | Number_of_cycles | DoubleSinePan |
| Ping-Pong (bounce) | Triangle-wave motion that repeatedly travels between the two ends of the selected pan range. | Number_of_cycles | PingPong |
| Random Walk | Stochastic position/velocity walk with damping and edge reflection, then mapped into the selected pan range. | Neither Speed nor Cycles | Random |
| Expanding Sine Auto-Pan | Starts at the centre of the selected range and gradually increases sine excursion toward the full range. | Number_of_cycles | ExpandPan |
| Contracting Sine Auto-Pan | Starts with full-range sine excursion and gradually contracts toward the centre. | Number_of_cycles | ContractPan |
| Tremolo (both channels) | No left/right motion in the audio. L and R receive the same sinusoidal gain from 0 to 1. | Motion_speed_(Hz) | Tremolo |
| Static Position | Fixed pan value mapped through the selected Min/Max range. | Static_position | Static |
Curve_resolution also affects the number and temporal spacing of random-walk updates.Panning laws
Constant-power panning
L = cos(angle)
R = sin(angle)
This keeps L² + R² = 1 before the later peak normalization.
Linear panning
R = pan
At the centre, both channels are 0.5 before final normalization.
For all panning patterns except Tremolo, Use_constant_power selects between these laws. Tremolo bypasses the pan-law gain calculation and sets both channels to the same tremolo value.
Parameters
| Parameter | Default | Actual behavior |
|---|---|---|
| Panning_pattern | Linear Sweep (L → R) | Selects one of the 10 patterns above. |
| Motion_speed_(Hz) | 1.0 | Used by Tremolo. Sweeps, Static, Random Walk, and cycle-based pan patterns do not use it. |
| Number_of_cycles | 2.0 | Used by Sine Auto-Pan, Double-Rate Sine Auto-Pan, Ping-Pong, Expanding Sine Auto-Pan, and Contracting Sine Auto-Pan. |
| Min_pan | 0.0 | Lower endpoint of the allowed pan range. Clamped to [0,1]. |
| Max_pan | 1.0 | Upper endpoint. Clamped to [0,1]. If Min exceeds Max after clamping, the two are swapped. |
| Static_position | 0.5 | Normalized position used by Static mode before mapping through the Min/Max range; final pan is clamped to [0,1]. |
| Curve_resolution | 200 | Number of automation intervals. The script creates resolution + 1 tier points over the Sound duration. |
| Use_constant_power | yes | Selects constant-power vs. linear gain law for panning modes. It does not affect Tremolo audio. |
| Draw_visualization | yes | Draws pan position, actual L/R automation gains, output waveform, and summary. |
| Play_result | yes | Plays the completed stereo Sound. |
Processing pipeline
2. Read duration, sample rate, and channel count.
3. Clamp/sort Min_pan and Max_pan.
4. Convert multichannel input to mono, or copy mono input.
5. Sample the selected motion at Curve_resolution + 1 times.
6. Map each pan value into the Min/Max range and clamp to [0,1].
7. Calculate L/R gains; Tremolo instead assigns one equal gain to both channels.
8. Floor gains at 0.001 and convert them to IntensityTier dB values around Praat's 70 dB unity reference.
9. Multiply two mono copies by the left and right tiers.
10. Combine them to stereo.
11. Apply
Scale peak: 0.99 unconditionally.12. Remove intermediate objects and optionally draw/play the result.
Scale peak: 0.99 is full peak normalization, not merely a clipping ceiling. It can either attenuate or amplify the completed result so that its absolute peak becomes 0.99.Visualization
When Draw_visualization is enabled, the script draws four process-focused regions:
- Pan Position — the sampled pan trajectory over time, with L/C/R reference lines and the selected Min/Max band.
- L/R Gain — the actual automation gains stored for the IntensityTiers. In Tremolo, Left and Right therefore coincide as equal modulation curves.
- Output — waveform preview of the completed stereo Sound after normalization.
- Summary — pattern-specific active control, pan range where relevant, constant-power state, and duration.
Practical use
Sweeps and ping-pong
Use for clear left/right gestures, transitions, alternating motion, and spatial articulation of mono material.
Sine auto-pan
Use cycle count to define repeated periodic motion over the exact Sound duration rather than an independent Hz rate.
Expanding / contracting
Useful when the stereo excursion itself should evolve over time while retaining a sine trajectory.
Random Walk
Creates a different stochastic pan path on each run; use a narrower Min/Max range when full-width wandering is too extreme.
Tremolo
Applies equal amplitude modulation to both output channels. It is included in the tool as a gain-variation mode, not a panning trajectory.
Static Position
Places the mono working source at one fixed stereo position using the same selected pan law as the moving panning modes.