Spiral Pitch Dance — User Guide
Source-relative accelerating sinusoidal pitch modulation with controllable range, rotation count, and acceleration.
What this does
Spiral Pitch Dance applies an accelerating sinusoidal pitch shift to the detected source pitch contour. The original F0 trajectory is retained as the moving reference: at each detected pitch point, the script multiplies that source F0 by a time-varying ratio derived from the requested semitone shift.
Quick start
- Select exactly one Sound object in Praat.
- Run
Spiral_Pitch_Dance.praat. - Choose one of the seven built-in presets, or use Manual.
- Set the spiral motion and analysis parameters as needed.
- Click OK. The processed Sound is created and optionally visualized and played.
Parameters
| GUI field | Default | Meaning |
|---|---|---|
| Preset | Manual | Selects Manual or one of seven built-in spiral settings. A preset overrides only Spirals, Semitone_range, and Acceleration. |
| Spirals | 2 | Total phase rotations across the file. Valid range: greater than 0 and no more than 64. |
| Semitone_range | 24 | Peak requested shift in either direction. Valid range: 0–72 st. A value of 0 activates the PSOLA bypass path. |
| Acceleration | 1.5 | Exponent controlling how rotation speed changes over normalized time. Valid range: 1–10. At 1, phase advances linearly; values above 1 make the oscillation increasingly faster toward the end. |
| Time_step | 0.005 s | Time step used by Praat's Manipulation analysis/resynthesis. It does not set the sampling density of the displayed mathematical spiral curve. |
| Floor_pitch | 50 Hz | Lower F0 bound for pitch analysis and Manipulation construction. |
| Ceiling_pitch | 1200 Hz | Upper F0 bound for pitch analysis. It must be below 45% of the source sampling frequency. |
| Draw_visualization | On | Draws the analysis/processing summary in the Picture window. |
| Play_result | On | Plays the created Sound after processing. |
Spiral pitch law
Requested semitone motion
The shift therefore oscillates symmetrically between -Semitone_range and +Semitone_range. Spirals determines the total phase rotation, while Acceleration redistributes that rotation over time.
For Acceleration = 1, the spiral frequency is constant. For values above 1, the instantaneous rotation frequency begins lower and increases toward the end of the Sound.
Presets
| Preset | Spirals | Range (st) | Acceleration |
|---|---|---|---|
| Gentle Spiral | 1.5 | 12 | 1.3 |
| Moderate Spiral | 2 | 24 | 1.5 |
| Aggressive Spiral | 3 | 36 | 1.8 |
| Extreme Spiral | 5 | 48 | 2.2 |
| Fast Rotation | 4 | 30 | 2.5 |
| Slow Evolution | 1 | 18 | 1.2 |
| Psychedelic Swirl | 8 | 60 | 3.0 |
Manual leaves the values entered in the form unchanged. Presets do not override Time_step, pitch-analysis limits, visualization, or playback settings.
Analysis & resynthesis
- For multichannel input, a mono copy is created for pitch analysis only. Mono input is copied for the same analysis path.
- Praat creates a Manipulation object using
Time_step,Floor_pitch, andCeiling_pitch, then extracts the original PitchTier. - If no usable voiced pitch points are detected, processing stops cleanly.
- At every detected PitchTier point, the script evaluates the spiral law and multiplies that point's original F0 by the resulting ratio.
- The synthesized F0 is limited to 20 Hz … 0.45 × source sample rate. The Info window reports how many pitch points were limited.
- The same processed PitchTier is inserted into a separate Manipulation object for each original channel, and each channel is resynthesized with Praat overlap-add.
- The processed channels are rebuilt into a Sound with the original channel count, time domain, duration, and sample rate.
Semitone_range = 0, PSOLA is bypassed and the Sound is copied directly. The script still performs its final attenuation-only peak check, so a copied source whose absolute peak exceeds 0.95 is reduced to 0.95.
Output
- Object name:
<source>_spiral_<presetName>, usingManual,Gentle,Moderate,Aggressive,Extreme,Fast,Slow, orPsychedelic. - Channels: original channel count preserved.
- Duration / time domain / sample rate: preserved.
- Peak handling: attenuation only. If the final absolute peak exceeds 0.95, the result is scaled down to a peak of 0.95; quieter results are not amplified.
Visualization
When enabled, the Picture window shows:
- Original and Spiral waveforms. Each waveform is drawn with Praat's automatic amplitude scaling, so their vertical scales are not a shared amplitude reference.
- Requested shift (st): the mathematical spiral law, bounded by the requested ± semitone range. This is intentionally labeled requested because synthesis safety may limit the actual F0 at individual source pitch points.
- Spiral freq: an estimate of instantaneous spiral rotation frequency derived from changes in the displayed phase curve.
- A parameter line and summary strip for the current run.
The mathematical spiral display uses 200–2000 generated points, decimated to at most 500 visualization bins. These display points are independent of the source PitchTier points used for audio resynthesis.