Creative Accelerating Polyrhythm – User Guide
Advanced Praat script for generating evolving polyrhythmic patterns with multiple morphing modes.
What this does
This script generates complex polyrhythmic patterns that evolve over time through acceleration and morphing. It creates two simultaneous rhythmic patterns with different beat counts, then progressively speeds them up while optionally transforming their characteristics.
Key Features:
- Polyrhythmic Generation – Create simultaneous patterns with different beat divisions (e.g., 3 against 4)
- Acceleration Control – Linear or exponential tempo increase across cycles
- 4 Morph Types – Evolve frequency, amplitude, rhythm, or random parameters
- Stereo Panning – Spatial distribution of beats across the stereo field
- Pure Sine Wave Synthesis – Clean, precise tone generation for rhythm analysis
Technical Implementation: The script creates polyrhythms by generating two independent beat patterns with different subdivisions. Each cycle's duration is progressively shortened based on the acceleration factor (exponential or linear). Sine wave tones mark each beat position, with optional morphing applied to frequencies, amplitudes, or rhythmic patterns. Stereo panning distributes beats spatially, with Pattern 1 panning left-to-right and Pattern 2 panning right-to-left.
Quick start
- In Praat, Run script… →
Creative Accelerating Polyrhythm.praat. - Set Pattern1_beats and Pattern2_beats (e.g., 3 and 4 for classic polyrhythm).
- Choose Total_cycles (number of acceleration stages).
- Select a Morph_type for evolution pattern.
- Click OK – sound generates and plays automatically.
Morph Types
The morph type determines how the polyrhythm evolves across cycles:
1. Frequency Morph Harmonic
Effect: Pitch relationships change progressively between cycles.
Pattern 1: Frequency increases (rises in pitch)
Pattern 2: Frequency decreases slightly (descends in pitch)
Use case: Create melodic movement within rhythmic patterns, study pitch-rhythm interaction.
2. Amplitude Morph Dynamic
Effect: Volume balance shifts between the two patterns.
Pattern 1: Amplitude decreases (fades out)
Pattern 2: Amplitude increases (fades in)
Use case: Crossfade between patterns, create dynamic emphasis shifts.
3. Rhythm Morph Structural
Effect: Beat count changes, creating increasingly complex divisions.
Pattern 1: Adds one beat per cycle (3→4→5→6...)
Pattern 2: Remains constant
Use case: Study metric modulation, create accelerating complexity.
4. Random Evolution Experimental
Effect: All parameters vary unpredictably each cycle.
Variation: Frequencies and amplitudes randomized within ranges
Use case: Generative music, unpredictable rhythmic textures, algorithmic composition.
Parameters
Basic Settings
| Parameter | Type | Default | Description |
|---|---|---|---|
| Base_duration | real | 2.0 | Initial cycle duration in seconds (before acceleration) |
| Total_cycles | integer | 8 | Number of acceleration stages |
| Samplerate | integer | 44100 | Audio sample rate in Hz |
Pattern 1 (Slower/Lower Division)
| Parameter | Type | Default | Description |
|---|---|---|---|
| Pattern1_beats | integer | 3 | Number of beats per cycle (try 3, 5, 7 for odd divisions) |
| Pattern1_frequency | real | 300 | Tone frequency in Hz (300 Hz ≈ D4) |
| Pattern1_amp | real | 0.3 | Amplitude (0.0 to 1.0, keep ≤0.5 to avoid clipping) |
Pattern 2 (Faster/Higher Division)
| Parameter | Type | Default | Description |
|---|---|---|---|
| Pattern2_beats | integer | 4 | Number of beats per cycle (try 4, 6, 8 for even divisions) |
| Pattern2_frequency | real | 500 | Tone frequency in Hz (500 Hz ≈ B4) |
| Pattern2_amp | real | 0.3 | Amplitude (0.0 to 1.0, keep ≤0.5 to avoid clipping) |
Acceleration
| Parameter | Type | Default | Description |
|---|---|---|---|
| Acceleration_factor | real | 2.0 | Speed increase multiplier (2.0 = doubles speed each cycle) |
| Exponential_acceleration | boolean | Yes | Exponential (rapid) vs. linear (gradual) acceleration |
| Morph_type | menu | Frequency | How the pattern evolves (see Morph Types above) |
Tone & Effects
| Parameter | Type | Default | Description |
|---|---|---|---|
| Tone_duration | real | 0.1 | Length of each beat tone in seconds |
| Stereo_pan | boolean | Yes | Distribute beats across stereo field for spatial effect |
Outputs
- Object name: creative_poly
- Sample rate: As specified in Samplerate parameter
- Channels: Mono (single channel)
- Normalization: Peak scaled to 0.9
- Info window displays:
- Pattern configuration (e.g., "3 against 4")
- Total cycles and duration
- Selected morph type
The generated sound object remains in Praat's object list for further analysis, manipulation, or export.
Usage Examples
Example 1: Classic 3-Against-4 Polyrhythm
Pattern1_beats: 3 Pattern2_beats: 4 Total_cycles: 6 Acceleration_factor: 1.5 Exponential_acceleration: No Morph_type: Frequency morph
Result: Traditional polyrhythm with gentle acceleration and evolving pitch relationships. Ideal for teaching basic polyrhythmic concepts.
Example 2: Extreme Acceleration Study
Pattern1_beats: 5 Pattern2_beats: 7 Total_cycles: 10 Acceleration_factor: 2.5 Exponential_acceleration: Yes Morph_type: Random evolution Stereo_pan: Yes
Result: Complex, rapidly accelerating pattern with unpredictable evolution. Useful for studying rhythm perception limits and creating experimental textures.
Example 3: Metric Modulation Demo
Pattern1_beats: 3 Pattern2_beats: 4 Total_cycles: 8 Acceleration_factor: 1.3 Exponential_acceleration: No Morph_type: Rhythm morph Tone_duration: 0.05
Result: Pattern 1 progressively adds beats (3→4→5→6...) while Pattern 2 stays constant. Demonstrates metric modulation and increasing complexity.
Example 4: Dynamic Crossfade
Pattern1_beats: 4 Pattern2_beats: 6 Pattern1_frequency: 220 Pattern2_frequency: 440 Morph_type: Amplitude morph Total_cycles: 12 Acceleration_factor: 1.2
Result: Smooth crossfade from Pattern 1 to Pattern 2 across 12 cycles, with octave relationship between pitches. Pattern 1 fades out as Pattern 2 fades in.
Example 5: Research-Grade Analysis
Pattern1_beats: 7 Pattern2_beats: 11 Base_duration: 4.0 Total_cycles: 5 Acceleration_factor: 1.0 Exponential_acceleration: No Morph_type: Frequency morph Stereo_pan: No
Result: Complex prime-number polyrhythm (7:11) with no acceleration, ideal for rhythm perception research. Long base duration allows clear separation of beats.
Tips & Best Practices
Musical Applications
- Odd vs. Even: Combine odd (3, 5, 7) with even (4, 6, 8) divisions for maximum rhythmic tension
- Prime Numbers: Use prime ratios (5:7, 7:11, 11:13) for complex, non-repeating patterns
- Frequency Selection: Use harmonic intervals (octaves, fifths) or dissonant intervals for different effects
Research Applications
- Perception Studies: Test rhythm discrimination thresholds by varying acceleration_factor
- Metric Complexity: Use Rhythm morph to study increasing metrical complexity
- Spatial Audition: Enable Stereo_pan to investigate spatial rhythm processing
Technical Considerations
- Keep total amplitude (sum of both patterns) below 0.6 to avoid clipping before final scaling
- Use shorter Tone_duration (0.05–0.08) for fast tempos to prevent overlap
- Higher Samplerate (96000) provides better precision for very fast patterns
- Exponential acceleration creates dramatic rushing effects; linear is more controlled