Stereo Delay Splitter — User Guide
Independent channel delay processing: applies different divisor-based delay patterns to left and right channels separately, creating stereo width and spatial separation through differential temporal processing.
What this does
This script processes stereo sound by splitting channels, applying different delay arrays to each (like delay_array.praat but per-channel), then recombining. Left channel gets divisors 1-2, right channel gets divisors 3-4. Different delay patterns create stereo width and spatial interest. Result: Enhanced stereo image with independent channel transformations.
Quick start
- Select one stereo Sound object in Praat (must be 2-channel).
- Run script… → Load Stereo Delay Splitter script.
- Choose Preset: Default/Narrow/Wide/Alt or Custom.
- If Custom: Set divisors 1-4 and channel ranges.
- Click OK — processing instant, auto-plays stereo result.
Presets
| Preset | Left (d1,d2) | Right (d3,d4) | Character |
|---|---|---|---|
| Default | 2, 4 | 8, 10 | Balanced stereo width |
| Narrow Stereo | 3, 5 | 6, 8 | Subtle separation, similar channels |
| Wide Stereo | 2, 6 | 12, 18 | Maximum separation, extreme width |
| Alt Divisors | 2, 3 | 9, 15 | Asymmetric, experimental spacing |
🎧 Default (L:2,4 | R:8,10)
Left: Longer delays (samples/2, samples/4) = slower echoes
Right: Shorter delays (samples/8, samples/10) = faster echoes
Effect: Left spacious, right tighter = balanced stereo image
Best for: General use, enhancing stereo width without extremes
How It Works
Independent Channel Processing
Process flow:
- Split stereo: Extract left (channel 1) and right (channel 2)
- Process left: Apply divisors 1-2 (iterations left_start to left_end)
- Process right: Apply divisors 3-4 (iterations right_start to right_end)
- Recombine: Merge processed channels back to stereo
- Normalize: Scale peak to 0.99
Delay Formula (Per Channel)
Same as delay_array.praat, applied independently:
- For each iteration k, calculate: b = samples / divisor[k]
- Apply: output = self[position+b] - self[position]
- Emphasizes transients, creates rhythmic patterns
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| Preset | choice | Default | Preset stereo configuration |
| Left Channel Divisors | |||
| divisor_1 | positive | 2 | First left channel divisor |
| divisor_2 | positive | 4 | Second left channel divisor |
| Right Channel Divisors | |||
| divisor_3 | positive | 8 | First right channel divisor |
| divisor_4 | positive | 10 | Second right channel divisor |
| Iteration Ranges | |||
| left_start / left_end | natural | 1 / 2 | Which divisors for left (1-2 = d1,d2) |
| right_start / right_end | natural | 3 / 4 | Which divisors for right (3-4 = d3,d4) |
| Output Options | |||
| scale_peak | positive | 0.99 | Peak normalization level |
| play_after_processing | boolean | yes | Auto-play result |
Creating Stereo Width
Divisor strategies:
Narrow stereo (subtle separation):
- Similar divisors: L: 3,5 | R: 6,8
- Small difference = subtle width
- Cohesive stereo image
Balanced stereo (moderate width):
- Moderate difference: L: 2,4 | R: 8,10 (default)
- Clear separation without extremes
- Most versatile
Wide stereo (maximum separation):
- Large difference: L: 2,6 | R: 12,18
- Dramatic spatial effect
- Can sound disjointed if too extreme
Applications
Stereo enhancement:
- Add width to narrow recordings
- Create spatial interest in mono-like material
- Differentiate left/right channels creatively
Sound design:
- Asymmetric stereo effects
- Spatial movement through differential delays
- Experimental stereo processing
Mixing:
- Widen specific stereo elements
- Create stereo versions of similar takes
- Add depth to flat stereo recordings
Output
New Sound object: "soundObj_stereo"
- Channels: 2 (stereo)
- Left: Processed with divisors 1-2
- Right: Processed with divisors 3-4
- Normalized: Scaled to 0.99 peak
- Original: Preserved (script works on copy)
Limitations
- Stereo input required: Will not work with mono files (needs 2 channels)
- Fixed iteration count: Always 2 iterations per channel (hardcoded)
- No mid-side processing: Processes L/R directly, not mid-side components
- Divisor-based delays only: Cannot specify delays in milliseconds directly
- Same formula both channels: Only divisors differ, not processing type
Related script: For mono processing with more iteration control, use delay_array.praat