Spiral Segmentation — User Guide
Spiral-based temporal and pitch transformation: divides sound into segments, applies exponential duration scaling and incremental pitch shifting to create a spiral trajectory through time-pitch space.
What this does
This script implements Spiral Segmentation — a time and pitch transformation that creates spiral trajectories through audio material. Process: (1) Segmentation: Divide sound into equal-duration segments. (2) Duration spiral: Apply exponential scaling to segment durations (expanding or contracting). (3) Pitch spiral: Apply incremental pitch shifts to each segment. (4) Jitter addition: Add stochastic timing variations for non-metric feel. (5) Resynthesis: Recombine transformed segments via PSOLA (Pitch-Synchronous Overlap-Add). Result: Audio material returns repeatedly, but each return occurs at transformed temporal and spectral levels — never identical, never metrically fixed.
Key Features:
- 12 Spiral Presets: Gentle Expansion, Accelerating Collapse, Pitch Ascent, Pitch Descent, Drunken Spiral, Tight Coil, Wide Orbit, Reverse Time Feel, Glitch Scatter, Meditative Stretch, Anxious Compression, Cosmic Drift
- Exponential Duration Scaling: Segments grow/shrink by multiplier^n
- Incremental Pitch Shifts: Linear pitch changes across segments
- Stochastic Jitter: Gaussian timing variations for non-metric feel
- PSOLA Resynthesis: High-quality time and pitch modification
- 6-Panel Visualization: Waveforms, duration factors, pitch shifts, spiral diagram
- Preset System: 12 artistic presets + custom manual settings
Technical Implementation: (1) Segmentation: Divide sound into N equal segments. (2) Duration factors: Calculate multiplier^n for each segment (n = segment index). (3) Jitter application: Multiply duration factors by (1 + Gaussian random). (4) Pitch shifts: Calculate pitch_step_Hz × segment_index (with direction options). (5) Manipulation object: Create Praat Manipulation object for PSOLA. (6) Duration tier: Build duration tier with segment-specific tempo factors. (7) Pitch tier: Extract original pitch, add spiral offsets, create new pitch tier. (8) Resynthesis: Replace tiers in manipulation, resynthesize via overlap-add. (9) Visualization: Create 6-panel plot showing waveforms, factors, shifts, spiral diagram.
Quick start
- In Praat, select exactly one Sound object.
- Run script… →
Spiral_Segmentation.praat. - Choose Preset (12 options) or Custom for manual settings.
- Set Number_of_segments (how many times material repeats).
- Adjust Duration_multiplier (1.0 = no change, >1 = expansion, <1 = contraction).
- Choose Spiral_direction: Expanding or Contracting.
- Set Pitch_step_Hz (pitch change per segment).
- Choose Pitch_direction: Rising, Falling, or Alternating.
- Add Jitter_amount (0.0 = precise, 0.2 = noticeable variation).
- Enable Show_visualization to see spiral trajectory.
- Click OK — spiral transformation applied, visualization shown.
[original]_spiral appears in Objects window.
Spiral Concept
The Spiral as Formal Structure
🌀 Philosophical & Musical Basis
Core idea: Material returns repeatedly, but transformed
Musical precedents: Minimalism (Reich, Glass), spiral forms in non-Western music
Perceptual effect: Familiar yet novel, predictable yet variable
Time-pitch space: Two-dimensional transformation creates spiral trajectory
Mathematical Spiral Formulation
Segment Processing Pipeline
🔄 From Original to Spiral
Step 1: Equal segmentation
Step 2: Duration factor calculation
Step 3: Pitch shift calculation
PSOLA Resynthesis
🎵 High-Quality Time-Pitch Modification
Praat Manipulation object: PSOLA (Pitch-Synchronous Overlap-Add) algorithm
Jitter: Breaking Metric Regularity
🎲 Stochastic Timing Variations
Purpose: Prevent mechanical, predictable timing
Implementation: Gaussian-distributed multiplicative factors
Philosophical rationale: Imperfection as humanizing element, escape from perfect metric grid
Spiral Presets
Preset 1: Gentle Expansion
🌱 Gradual Growth
Settings: 8 segments, multiplier=1.12, expanding, pitch+3Hz, rising, jitter=0.05
Character: Subtle, natural expansion with slight pitch rise
Use: Gentle evolution, meditative textures, gradual intensification
Musical analogy: Breathing exercise, sunrise, gradual awakening
Preset 2: Accelerating Collapse
💥 Implosive Compression
Settings: 16 segments, multiplier=1.25, contracting, pitch-8Hz, falling, jitter=0.06
Character: Rapid shortening with pitch descent, accelerating feel
Use: Dramatic tension, collapsing structures, downward spirals
Musical analogy: Black hole, vortex, downward spiral
Preset 3: Pitch Ascent
⬆️ Upward Trajectory
Settings: 10 segments, multiplier=1.05, expanding, pitch+15Hz, rising, jitter=0.03
Character: Strong pitch rise with minimal time expansion
Use: Ascending lines, lifting effects, upward motion
Musical analogy: Elevator, rocket launch, climbing
Preset 4: Pitch Descent
⬇️ Downward Trajectory
Settings: 10 segments, multiplier=1.05, expanding, pitch-15Hz, falling, jitter=0.03
Character: Strong pitch fall with minimal time expansion
Use: Descending lines, sinking effects, downward motion
Musical analogy: Falling object, descent, subsidence
Preset 5: Drunken Spiral
🥴 Unstable Orbit
Settings: 12 segments, multiplier=1.18, expanding, pitch±7Hz, alternating, jitter=0.25
Character: High jitter creates unstable, wavering feel
Use: Disorientation, instability, drunken/wobbly effects
Musical analogy: Drunken walk, unstable orbit, wavering
Preset 6: Tight Coil
🌀 Dense Winding
Settings: 24 segments, multiplier=1.08, expanding, pitch+2Hz, rising, jitter=0.02
Character: Many segments with small increments, tight spiral
Use: Dense textures, intricate patterns, detailed evolution
Musical analogy: Watch mechanism, tight spring, precise clockwork
Preset 7: Wide Orbit
🌌 Broad Sweep
Settings: 6 segments, multiplier=1.35, expanding, pitch+20Hz, rising, jitter=0.1
Character: Few segments with large increments, broad spiral
Use: Grand gestures, sweeping motions, large-scale forms
Musical analogy: Planetary orbit, broad sweep, grand gesture
Preset 8: Reverse Time Feel
⏪ Backward Expansion
Settings: 12 segments, multiplier=1.2, contracting, pitch+5Hz, rising, jitter=0.08
Character: Time contracts while pitch rises — contradictory motion
Use: Temporal paradox, contradictory cues, unusual perceptions
Musical analogy: Time running backward, paradoxical motion
Preset 9: Glitch Scatter
💥 Digital Fragmentation
Settings: 32 segments, multiplier=1.1, expanding, pitch±12Hz, alternating, jitter=0.4
Character: Many segments with high jitter, glitchy texture
Use: Glitch art, digital corruption, fragmented textures
Musical analogy: CD skip, digital corruption, data error
Preset 10: Meditative Stretch
🧘 Extreme Expansion
Settings: 6 segments, multiplier=1.5, expanding, pitch-1Hz, falling, jitter=0.02
Character: Extreme time expansion with minimal pitch change
Use: Meditation, time dilation, extreme slow motion
Musical analogy: Time dilation, deep meditation, extreme slow motion
Preset 11: Anxious Compression
😰 Tense Contraction
Settings: 20 segments, multiplier=1.3, contracting, pitch+10Hz, rising, jitter=0.15
Character: Rapid shortening with pitch rise and moderate jitter
Use: Anxiety, tension building, accelerating pressure
Musical analogy: Pressure building, anxiety attack, accelerating tension
Preset 12: Cosmic Drift
🌠 Space-Time Drift
Settings: 8 segments, multiplier=1.4, expanding, pitch±25Hz, alternating, jitter=0.12
Character: Large increments in both time and pitch with oscillation
Use: Cosmic effects, space-time distortion, large oscillations
Musical analogy: Space-time distortion, cosmic drift, gravitational wave
Preset 13: Custom
🔧 Manual Settings
Settings: User-defined parameters
Character: Tailored to specific needs
Use: Experimentation, specific applications, fine control
Flexibility: Full control over all parameters
Parameters Explained
Segmentation Parameters
| Parameter | Default | Range | Description |
|---|---|---|---|
| Number_of_segments | 12 | 2-100 | How many times material repeats |
Duration Spiral Parameters
| Parameter | Default | Range | Description |
|---|---|---|---|
| Duration_multiplier | 1.15 | 0.5-3.0 | Factor applied exponentially across segments |
| Spiral_direction | Expanding | Expanding/Contracting | Whether segments get longer or shorter |
Pitch Spiral Parameters
| Parameter | Default | Range | Description |
|---|---|---|---|
| Pitch_step_Hz | 5.0 | 0.1-100.0 | Pitch change per segment (Hz) |
| Pitch_direction | Rising | Rising/Falling/Alternating | Direction of pitch change |
Temporal Jitter Parameters
| Parameter | Default | Range | Description |
|---|---|---|---|
| Jitter_amount | 0.08 | 0.0-1.0 | Standard deviation of timing variations |
Output Parameters
| Parameter | Default | Description |
|---|---|---|
| Preserve_original | yes | Keep original sound in Objects window |
| Play_result | yes | Automatically play output |
| Show_visualization | yes | Display 6-panel visualization |
Parameter Interactions
- Number_of_segments × Duration_multiplier: Determines total output duration
- Duration_multiplier ^ Number_of_segments: Ratio of last/first segment durations
- Pitch_step_Hz × Number_of_segments: Total pitch change from first to last segment
- Jitter_amount × Duration_multiplier: Combined effect on timing irregularity
- Spiral_direction + Pitch_direction: Creates coherent or contradictory motion
Effect of Parameter Values
- 1.0: No duration change (segments equal length)
- 1.05-1.15: Gentle expansion/contraction
- 1.2-1.4: Strong expansion/contraction
- 1.5+: Extreme expansion/contraction
- 0.5-0.9: Opposite direction (contraction/expansion)
- 1-3 Hz: Subtle, barely perceptible changes
- 5-10 Hz: Clear but moderate changes
- 15-30 Hz: Strong, obvious pitch spiral
- 50+ Hz: Extreme, possibly unnatural changes
- 0.0: Precise, mechanical timing
- 0.05-0.1: Subtle humanization
- 0.15-0.25: Noticeable rhythmic variation
- 0.3+: Highly irregular, unpredictable
Visualization
Six-Panel Display
📊 Understanding the Visualization
| Panel | Content | Purpose |
|---|---|---|
| Title | Script name, input file, preset | Context and identification |
| Original Waveform | Input sound with segment boundaries (red dotted lines) | Show segmentation of original material |
| Result Waveform | Output spiral-transformed sound | Show effect of spiral transformation |
| Duration Factor Plot | Bars showing duration factor for each segment | Visualize duration spiral (blue bars = planned, black line = jittered) |
| Pitch Shift Plot | Line graph of pitch shift per segment | Visualize pitch spiral (red line with markers) |
| Spiral Diagram | Parametric spiral with numbered segment markers | Conceptual representation of spiral trajectory |
| Parameters & Results | Text display of settings and outcomes | Reference information |
| Time Axis | Timeline showing original and output durations | Compare time scales |
Interpreting the Spiral Diagram
🌀 Reading the Conceptual Diagram
Spiral equation: r = a + b×θ (Archimedean spiral)
- Radius (r): Represents cumulative duration factor
- Angle (θ): Represents segment number/position
- Marker position: Shows segment's place in spiral
- Marker size: Proportional to segment duration factor
- Marker number: Segment index (1, 2, 3...)
Interpretation: Movement outward = expansion; movement around = progression through segments
Duration Factor Plot Details
⏱️ Understanding Duration Changes
Blue bars: Planned duration factor (multiplier^n)
Black horizontal lines: Actual jittered duration factor
Dotted line at 1.0: Reference (no change)
Pattern: Shows exponential growth/decay across segments
Jitter effect: Black lines deviate from blue bars
Pitch Shift Plot Details
🎵 Understanding Pitch Changes
Red line: Pitch shift trajectory across segments
Square markers: Pitch shift for each segment
Dotted line at 0 Hz: Reference (no change)
Pattern: Shows linear/alternating pitch changes
Direction: Upward slope = rising, downward = falling, oscillation = alternating
Practical Examples of Visualization
- Gentle Expansion: Slightly upward blue bars, gradual red line rise
- Accelerating Collapse: Steeply downward blue bars, falling red line
- Drunken Spiral: Black lines far from blue bars (high jitter), oscillating red line
- Tight Coil: Many small blue bars, gradual red line
- Wide Orbit: Few large blue bars, steep red line
- Reverse Time Feel: Downward blue bars (contracting) with upward red line (rising pitch)
Advanced Applications
Compositional Techniques
Layering spirals: Apply different spirals to same material, mix results
Spiral chains: Use spiral output as input for another spiral transformation
Multi-voice spirals: Apply same spiral to different sounds, create spiral counterpoint
Sound Design Applications
Evolving textures: Create slowly evolving pads from short samples
Riser/downer effects: Use pitch ascent/descent with time expansion/contraction
Glitch generation: High segment count + high jitter = glitch textures
Analytical Applications
Material study: Hear material transformed systematically, reveal hidden characteristics
Formal analysis: Test different segmentations, hear formal implications
Perceptual experiments: Study perception of time-pitch relationships
Performance Applications
Live processing: Apply spiral transformations in real-time (with adaptation)
Interactive composition: Let parameters be controlled by performers/sensors
Algorithmic improvisation: Use spiral as generative structure
Troubleshooting
Causes: Extreme duration/pitch modifications, unvoiced input, PSOLA limitations
Solutions: Use more moderate settings, ensure input has clear pitch, try different source material
Causes: Unvoiced/noisy input, Praat pitch detection failure
Solutions: Script adds reference points, but results may be artificial; use voiced input
Causes: Extreme duration_multiplier, many segments, jitter accumulation
Solutions: Check formula: total_duration = segment_duration × Σ(multiplier^i × (1+jitter[i]))
Causes: Many segments (>30), complex plot, Praat drawing limits
Solutions: Reduce number_of_segments, disable visualization, use simpler preset
Mathematical Formulas Reference
Creative Combinations
- Contradictory spirals: Expanding time + falling pitch, or contracting time + rising pitch
- Micro-spirals: Many segments (30+) with tiny increments
- Macro-spirals: Few segments (3-6) with huge increments
- Jitter experiments: Same spiral with different jitter amounts
- Alternating extremes: Extreme expansion then extreme contraction
- Nested spirals: Apply spiral to already-spiraled material