Skip to content
🚧 Under active construction — content being developed and verified.

14. Synthesis: Combining Traditions

The preceding chapters each followed a single thread — one tradition, one rhythmic logic, one cultural context. But the most interesting grooves in Poly often emerge when you pull threads from several traditions at once. A Cuban clave anchoring an electronic density curve. Balkan aksak metres wearing funk ghost notes. Gamelan interlocking filtered through a techno kick grid. These combinations are not arbitrary fusion — they work because the underlying Euclidean distributions are mathematically compatible, even when the cultures that produced them are separated by continents and centuries.

This chapter is about the craft of cross-pollination: how to combine techniques from multiple traditions into original patches, and how to use Poly’s scene morphing and envelope systems to shape those combinations into evolving musical structures.

Combining traditions is not a neutral act, and the scholarship on when it works and on whose terms is worth reading before the craft (Born & Hesmondhalgh 2000). The Euclidean model reveals something that genre boundaries obscure: many of the world’s rhythmic traditions share the same distributional DNA. The tresillo E(3,8) appears in Cuban son, New Orleans second line, West African bell patterns, and electronic house music. E(7,12) is the Ewe gankogui bell and also the rhythmic skeleton of certain Afrobeat horn arrangements. When you layer patterns from different traditions, the shared mathematical basis means they interlock naturally — the distributions complement each other because they were generated by the same algorithm 1.

The practical lesson is this: when combining traditions, start with patterns whose step counts share a low common multiple. A 12-step West African bell and an 8-step Cuban tresillo share lcm(12, 8) = 24 — the combined groove repeats every 24 steps, long enough to be interesting but short enough to feel coherent. Add a 7-step Balkan aksak lane and the cycle extends to lcm(24, 7) = 168 — a deep polymetric structure that evolves over many bars without ever sounding random.

The most immediate cross-pollination in contemporary music is between African rhythmic traditions and electronic production. Afro-house, Afrobeats, and amapiano all perform this synthesis, but they tend to flatten the polymetric complexity into a 4/4 grid. With Poly, you can preserve the cycle independence of the African source material while adding the timbral density and relentless drive of electronic music.

E(3,8)

The tresillo E(3,8) serves as the clave backbone — the matrix that organises every other lane. Against it, a straight four-on-the-floor kick at E(4,4) provides the electronic anchor, and a gamelan-inspired kotekan pair fills the upper register with interlocking shimmer.

Afro-Electronic FusionCustom: Cross-tradition
Lane Role Steps Hits Rotation Subdivision Note Velocity Ghost Kotekan Swing
1 Cuban clave 8 3 0 1/8 75 100 0 off 0.20
2 Techno kick 4 4 0 1/4 36 110 0 off 0
3 Kotekan polos 12 7 0 1/8 62 70 45 off 0.10
4 Kotekan sangsih 12 5 2 1/8 64 65 40 L1 0.10
5 Ghost shaker 16 9 3 1/16 70 50 30 off 0.15
Afro-Electronic FusionCuban clave meets techno kick and gamelan-inspired kotekan shimmer

Lane 4 uses Kotekan L1, which generates a complementary pattern interlocking with its paired lane. The result is a metallic shimmer reminiscent of Balinese gamelan but rhythmically framed by the Cuban clave and grounded by the four-on-the-floor kick. The ghost shaker at E(9,16) fills the subdivisions with a texture dense enough for electronic music but distributed with enough asymmetry to avoid the mechanical quality of a straight sixteenth-note hat.

Funk ghost notes and micro-timing offsets (Chapter 11) can transform aksak metres from folk dance into something that feels contemporary without losing the additive asymmetry. The key insight is that funk’s vocabulary — ghost notes, timing offsets, velocity layering — operates independently of time signature. A 7-step rachenitsa groove can pocket just as hard as a 16-step funk beat when you apply the same humanization principles.

E(3,7)

The rachenitsa’s E(3,7) provides the 2+2+3 backbone. Against it, a denser funk-inflected snare pattern fills the spaces with ghost notes, and a hi-hat line applies the micro-timing offsets that give funk its characteristic push-and-pull.

Balkan FunkCustom: 7/8 Funk
Lane Role Steps Hits Rotation Subdivision Note Velocity Ghost Spread Swing
1 Aksak kick 7 3 0 1/8 36 105 0 0 0
2 Funk snare 7 5 1 1/8 38 85 60 35 0
3 Ghost hat 14 9 0 1/16 42 55 40 20 0.15
4 Rim accent 7 2 3 1/8 37 90 0 0 0
Balkan Funk7/8 aksak with funk ghost notes and micro-timing on the hi-hat

Notice that Swing is zero on the kick and rim lanes — the aksak asymmetry provides the rhythmic interest, and swing would fight it. But the ghost hat at E(9,14) applies a subtle 0.15 swing to create the micro-timing looseness that makes funk grooves breathe. The snare’s Ghost parameter at 60 means that hits falling on weaker positions in the Euclidean distribution are played at reduced velocity, producing the whispered ghost notes that define funk drumming.

Scene morphing is Poly’s mechanism for evolving a patch over time without manually automating every parameter. You configure two scenes — Scene A and Scene B — each with its own set of macro values. The Scene Morph parameter (0 to 1.0) blends between them. At 0, you are fully in Scene A. At 1.0, fully in Scene B. Anywhere between, Poly interpolates the macro values linearly.

The compositional power is immediate. Set Scene A to a sparse, skeletal groove — low Density, low Complexity, moderate Humanize — and Scene B to a dense, ornamental peak — high Density, high Complexity, elevated Syncopation. Then automate Scene Morph over 8 or 16 bars. The patch evolves from a bare pulse to a teeming polymetric ensemble, with every intermediate state musically valid because the interpolation is continuous.

This is not a preset-switching mechanism. It is a morph. At Scene Morph 0.3, you hear a groove that is 30% of the way from sparse to dense — lanes that were silent in Scene A begin to emerge, ghost notes that were absent start to whisper, the rhythmic texture thickens gradually. The transition feels organic because it follows the same continuous-variation principle that makes a drummer’s crescendo feel natural.

Scene morphing gives you a continuous crossfade between two grooves. Scene chaining gives you a sequence. Where morphing is a gradient, chaining is architecture — verse, chorus, bridge, each at a defined bar boundary, advancing automatically.

A scene chain is a list of up to 16 entries. Each entry specifies a scene (A, B, or Morph) and a bar count. Enable the chain and press play — Poly advances through the sequence at bar boundaries, switching scenes automatically. No automation curves to draw, no manual switching.

Three modes control what happens when the chain reaches its end:

  • OneShot plays through the sequence once and holds the last entry — suitable for one-pass structures where you want a defined ending.
  • Loop wraps back to the first entry and repeats indefinitely — suitable for cyclic forms like A→B→A→B.
  • PingPong reverses direction at each boundary, walking the chain forward and backward — an A→B→C chain becomes A→B→C→B→A→B→C→… This produces palindromic structures that feel natural for gradual builds and retreats.
Scene Chain: Three-Section ArcCustom: Chain Demo
Setting Value
Chain Enable On
Chain Mode PingPong
Chain Length 3
Entry 1 Scene A, 8 bars
Entry 2 Scene B, 4 bars
Entry 3 Scene A, 8 bars

This chain creates a 20-bar arc: 8 bars of Scene A (sparse verse), 4 bars of Scene B (dense chorus), 8 bars back to Scene A. In PingPong mode, it then reverses — back through B and into A again — creating an endless breathing structure. In OneShot mode, it would play the 20 bars once and hold Scene A.

Chaining and morphing are complementary. A chain entry set to Scene Morph uses the current morph position, so you can automate Scene Morph within a chain entry to create smooth transitions between structural sections. The chain provides the macro form; the morph provides the micro-transitions within each section.

Where scene morphing operates at the section level — verse to chorus, intro to climax — envelopes operate at the phrase level. An envelope is a repeating shape that modulates a target parameter over time. Each envelope has a shape (how it moves) and a target (what it controls).

The available shapes each serve a different musical purpose. Ramp is a one-directional sweep — velocity building from soft to loud over a phrase, density increasing from sparse to full. Use it for builds and crescendos. Sine produces a smooth cyclic swell, rising and falling symmetrically. It creates breathing dynamics, like an ensemble that naturally ebbs and flows. Triangle is similar to Sine but with linear segments, producing a more angular modulation. Curve offers exponential or logarithmic shapes for accelerating or decelerating change. StepList allows you to define a custom modulation sequence — useful for creating specific dynamic patterns that repeat.

The targets determine what the envelope controls. Velocity modulates how hard hits are struck, creating dynamic swells and accents across the phrase. Density modulates how many hits sound, thinning and thickening the pattern over time. Probability affects which hits actually fire, introducing controlled randomness that varies across the phrase. AccentBias shifts which beats receive emphasis. NoteLength changes how long each hit sustains. TimingLooseness varies the micro-timing precision, making the feel tighter or looser at different points in the phrase. ActivationWeight controls lane presence in the mix, effectively fading lanes in and out. FillLikelihood varies the chance of fill events, creating sections that are more or less ornamental.

float evaluateShape(Shape shape, float phase) {
    switch (shape) {
    case Shape::Sine:
        return 0.5f * (1.0f + std::sin(static_cast<float>(kTwoPi) * phase));
    case Shape::Ramp:
        return phase;
    case Shape::Triangle:
        return 1.0f - std::abs(2.0f * phase - 1.0f);
    case Shape::Curve:
        return phase;
    case Shape::StepList:
        return 0.5f;
    }
    return 0.5f;
}

float evaluateShapeFull(const Envelope& env, float phase) {
    switch (env.shape) {
    case Shape::Curve: {
        float c = env.curvature;
        if (c > 0.01f) {
            return (std::exp(c * phase) - 1.0f) / (std::exp(c) - 1.0f);
        }
        if (c < -0.01f) {
            return 1.0f - (std::exp(-c * (1.0f - phase)) - 1.0f) / (std::exp(-c) - 1.0f);
        }
        return phase;
    }
    case Shape::StepList: {
        if (env.stepCount <= 0)
            return 0.5f;
        int idx = static_cast<int>(phase * env.stepCount);
        if (idx >= env.stepCount)
            idx = env.stepCount - 1;
        return env.stepValues[static_cast<size_t>(idx)];
    }
    default:
        return evaluateShape(env.shape, phase);
    }
}

double computeEnvelopePhase(double ppqPosition, float periodBars, float phaseOffset, double ppqPerBar) {
    if (periodBars <= 0.0f)
        return 0.0;
    if (ppqPerBar <= 0.0)
        ppqPerBar = 4.0;
    double periodPpq = static_cast<double>(periodBars) * ppqPerBar;
    double raw = std::fmod(ppqPosition / periodPpq + static_cast<double>(phaseOffset), 1.0);
    if (raw < 0.0)
        raw += 1.0;
    return raw;
}
Envelope modulation — shape evaluation and target application

A Sine envelope targeting Velocity over 8 bars creates an ensemble that breathes — swelling to fortissimo at the midpoint and receding to pianissimo at the phrase boundary. Layer a Ramp envelope targeting Density on a different lane and the two modulations interact: one voice breathes while another builds. The composite effect is a patch that evolves in multiple dimensions simultaneously.

The most expressive Poly patches use both systems together. Scene morphing provides the large-scale arc — the journey from verse to chorus, from introduction to peak. Envelopes provide the smaller-scale dynamics within each section — the breathing, the swelling, the tension and release that keep individual moments interesting.

Set up Scene A as a sparse verse with a Sine envelope on Velocity — the pattern breathes gently. Scene B as a dense chorus with a Ramp envelope on Density — the pattern builds relentlessly. As Scene Morph moves from A to B over the course of a song section, the character of the dynamics shifts from cyclic breathing to linear building. The listener feels both the macro-level transition and the micro-level modulation, creating a groove that is always evolving at multiple timescales.

The deeper lesson of cross-pollination is that traditions are not closed systems. The Euclidean model shows that rhythmic ideas are portable — a distributional logic that works in one cultural context works in another because the mathematics is universal. What changes is the instrumentation, the tempo, the micro-timing, the social function. Poly gives you the tools to separate the structural logic from the cultural specifics and recombine them freely.

This does not mean that all combinations work equally well. A clave-anchored groove needs a lane that respects the clave matrix, regardless of what other traditions are layered on top. Aksak metres resist swing because their asymmetry is structural, not timbral. Kotekan interlocking requires complementary patterns, not arbitrary layering. The constraints of each tradition still apply — they are design principles, not arbitrary rules, and understanding them is what makes cross-pollination musical rather than random.

Preview audio uses CC0 and CC-BY drum samples. Every sample is credited on theCredits & Licenses page.