Euclidean rhythm · step sequencer · finger-drumming practice

What Do Steps, Hits, and Rotation Mean in a Euclidean Drum Pattern?

A Euclidean generator can turn two small numbers into a useful cyclic pattern, but the labels are easy to blur together. Build E(3,8) by hand, prove what rotation preserves, then combine it with a second voice and take the result from the screen to two pads.

Scope: this is a device-neutral programming and finger-practice lab. For the scored exercise, one cycle has eight equal eighth-note steps, x means an onset, and . means a rest. Product labels are not standardized: one tool may say Hits, another Fills, and another may use Density for a different operation. The exact eight-slot output is therefore the evidence, not the knob name. We use “rotate right by one” to mean moving every onset one slot later and wrapping step 8 to step 1; if a product uses the opposite sign, record the resulting string instead of copying the sign. The paper and product manuals cited below support the mathematical pattern and documented implementations. The verification gates, R0a/R1/R0b rotation return, two-voice collision card, no-screen drill, diagnostic codes, and stopping rule are the FingerDrum Editorial Team’s original synthesis. This grid does not teach the cultural practice, articulation, timbre, or feel of any named tradition.

Short answer: steps set the cycle, hits occupy it, rotation moves its start relationship

In E(k,n), n is the number of equal steps in the cycle and k is the number of onsets distributed across them as evenly as possible. E(3,8) can be written x..x..x.: hits on steps 1, 4, and 7, with cyclic inter-onset distances 3, 3, and 2. A one-step right rotation gives .x..x..x. It changes which onset meets the bar line, but it must not change eight steps, three hits, or the cyclic 3–3–2 spacing. Count those invariants before judging the groove by ear.

Steps, hits, rotation, division, and voice answer five different questions

Toussaint denotes a Euclidean rhythm as E(k,n), where k is the number of onsets and n is the length of the binary pulse sequence. The construction distributes the onsets as evenly as possible. That notation describes a cyclic onset skeleton. It does not specify a drum sound, hand assignment, velocity, tempo, swing, or genre.

ControlQuestion it answersE(3,8) valueWhat must stay separate
Steps / pulses nHow many equal slots close the cycle?8Step duration and bar display
Hits / fills / onsets kHow many slots contain an attack?3Velocity, probability, and repeated playback
Rotation rWhere does the same cyclic spacing sit relative to step 1?0 for the referenceChanging hit count or interval pattern
DivisionHow long is each step in clock time?1/8 note in this labThe mathematical identity E(3,8)
Voice / padWhich sound receives the pattern?One short sound firstThe onset locations themselves

The distinction matters when software labels diverge. Native Instruments documents Steps and Fills for Maschine 3.7, while Ableton’s current Euclidean MIDI Tool documents Steps, Division, per-voice Rotation, and its own Density behavior. Do not assume a control called Density always equals k. After every change, count the exported or visible onsets and write the actual x/. string.

Build E(3,8) as x..x..x. before opening a generator

Start with eight equal containers and three hits: x x x . . . . .. Give each hit one rest, leaving two rests: x. | x. | x. | ... Give one remaining rest to each of the first two groups: x.. | x.. | x.. Joined into one cycle, the result is x..x..x.. This is a transparent construction for this one example, not a replacement for the general Bjorklund or Euclidean algorithm.

E(3,8) on one bar of eighth-note steps.
Step12345678
Count1&2&3&4&
Patternx..x..x.
Actiontapcountcounttapcountcounttapcount

Now verify the cycle numerically. From step 1 to step 4 is three slots; step 4 to step 7 is three; step 7 through the wrap back to step 1 is two. The cyclic interval vector is therefore (3,3,2), and 3 + 3 + 2 = 8. Count the wrap interval every time. Reading only left to right and stopping at step 8 hides the final distance that closes the rhythm.

  1. Length gate: exactly eight equal steps exist; the loop does not silently use a 16-step bar.
  2. Onset gate: exactly three onsets exist, at steps 1, 4, and 7.
  3. Spacing gate: the three cyclic distances are 3, 3, and 2 in some rotation.
  4. Closure gate: after step 8, the next event belongs to a new step 1—not an extra ninth slot or a clipped last rest.

If your sequencer shows 16 sixteenth-note steps per 4/4 bar, the same eight-step string occupies two beats. Either set an eight-step loop for this lab or repeat the string twice across the bar as x..x..x.x..x..x.. Do not call the two displays identical until step duration and loop length are written down.

Prove rotation with an R0a → R1 → R0b return

Rotation shifts every onset by the same number of slots around the cycle. It can change the phrase strongly against a fixed kick, bar line, or melody, but it cannot add a hit or rewrite the cyclic gap pattern. Because products disagree about positive direction and the location called zero, use the literal strings below as the contract.

StateExact patternHit stepsCyclic distancesPurpose
R0a / r0x..x..x.1, 4, 73, 3, 2Reference
R1 / right 1.x..x..x2, 5, 83, 3, 2Move the bar-line relationship
R2 / right 2x.x..x..1, 3, 62, 3, 3Same cyclic distances, different written start
R0b / r0x..x..x.1, 4, 73, 3, 2Return proof

Run R0a for four cycles, R1 for four, then restore R0b for four. Each cycle must contain three events and close after eight steps. R1 passes only when its onsets move to 2, 5, and 8 while its cyclic distances remain the same. R0b must reproduce R0a exactly. If returning the rotation control does not recover the reference string, another parameter, a randomizer, an Apply operation, or the loop boundary changed too.

Rotation is not “the same sound” in every arrangement. Against an unrotated second voice, its collisions and accents move. The invariant claim is narrower: the rotated voice keeps the same number of onsets and the same cyclic distance pattern. Musical usefulness is a separate listening decision.

Add E(2,8) as an anchor and predict every collision

Keep both voices on the same eight-step clock. Voice A uses the regular Euclidean pattern E(2,8) = x...x..., with hits on 1 and 5. Voice B uses the E(3,8) pattern you just verified. Map the two voices to two nearby pads with clearly different short sounds. Before playing them together, write the simultaneous-hit locations.

Step12345678
A · E(2,8)x...x...
B · E(3,8) r0x..x..x.
r0 collisionA+B———————
B · right 1.x..x..x
r1 collision————A+B———

At r0, both voices start on step 1. After rotating only B one step right, the single collision moves to step 5. The event total does not become four at a collision: A contributes two onsets per cycle and B contributes three, so the combined MIDI plan contains five voice-events even though only four step positions are occupied. Inspect voice identity as well as occupied slots.

Solo A for four cycles, solo B for four, then combine them. If both solos pass but one voice disappears only at the collision, the Euclidean counts are not the first failure. Check whether two intended MIDI events were captured, whether the receiver deliberately chokes one voice, whether the pad layout makes the simultaneous gesture unreliable, and whether the audio path clips. Keep those layers separate; a missed combined gesture does not change the written algorithm.

Use a six-stage pad drill, then remove the visual grid

  1. Speak all eight slots: count 1 & 2 & 3 & 4 & without tapping. The pulse must continue through every dot.
  2. Tap B alone: on one pad, tap steps 1, 4, and 7 while speaking all slots. Run four cycles and require three audible attacks in each.
  3. Verify the wrap: record four cycles. Check that the distance from the step-7 onset, through silent step 8, to the next step 1 is a two-step wrap interval.
  4. Add A: use a second finger or hand for steps 1 and 5. At r0, plan the two-pad gesture on step 1 before starting; do not discover it by collision.
  5. Rotate and return: play four cycles at r0, four at right 1, then four at r0 again. The combined hit positions change, but A remains fixed and B always has three hits.
  6. Hide the pattern: turn away from, dim, or close the step display and perform the same R0a/R1/R0b arc. Reopen it only after recording to compare intended and captured voice-events.
PassA events (expected / observed)B events (expected / observed)Collision (expected / observed)Next step 1 clean?First failure
R0a cycle 12 / ___3 / ___step 1 / ___yes / no___
R0a cycle 42 / ___3 / ___step 1 / ___yes / no___
R1 cycle 12 / ___3 / ___step 5 / ___yes / no___
R1 cycle 42 / ___3 / ___step 5 / ___yes / no___
R0b cycle 42 / ___3 / ___step 1 / ___yes / no___

Use a comfortable tempo; this test prescribes no universal BPM or timing tolerance. Speed is not a pass condition. A complete pass has the right voice-event counts, the planned collision, an intact wrap, and an R0b return that matches R0a. If the screen-free version fails, return only to the last passing stage instead of adding velocity changes, probability, swing, or a third voice.

Name the first invariant that fails

CodeEvidenceNext single checkDo not conclude
COUNTThe target voice has other than k onsets in one n-step cycleCheck the actual hit/fill control, missed triggers, probability, repeats, and generated outputThat rotation changed the rhythm correctly
GAPB has three hits, but its cyclic distances are not 3, 3, and 2Write the eight-slot string and recalculate every wrap distanceThat any three hits in eight steps are E(3,8)
STARTCount and gaps pass, but the expected bar-line relationship is wrongCheck rotation direction, start marker, and clip offsetThat density or timing resolution is wrong
WRAPOne cycle passes, but the next step 1 is early, late, doubled, or missingCheck loop length, time selection, step division, and wrapped notesThat the seven visible steps were enough
COLLISIONEach solo passes; a voice-event disappears or distorts only when A and B coincideCompare intended events, captured MIDI, receiver choke/polyphony, gesture, and audio path in that orderThat the Euclidean generator deleted a step
RETURNR0b does not reproduce R0a after restoring rotationCompare every parameter and any destructive Apply/randomize operationThat Voice B alone caused the difference
LABELA product control behaves differently from the generic name you assumedUse the exact product manual and count its rendered onsetsThat “Density” has one industry-wide definition

Only change the variable named by the first failing row. For example, a correct event count with a wrong starting relationship is a START problem, not permission to change Hits. A clean written grid with a failed simultaneous gesture is a COLLISION investigation, not permission to redraw the cyclic gaps.

Translate the invariant card, not the menu names

Ableton’s Live 12 manual documents a Euclidean MIDI Tool that can generate up to four voices, assign a pitch or drum pad to each voice, rotate voices separately, and set Steps and Division. Its current documentation also describes how shorter patterns may repeat or wrap inside the selected time range. Define the time selection before applying the result—or while previewing if Auto Apply is active—then count the actual note positions. Do not assume the clip boundary from the graphic alone.

Native Instruments’ Maschine 3.7 support page, checked on October 18, 2026, says the update is available now and documents a Euclidean Sequencer with Steps, Fills, Rotate, and Division. That is a specific Maschine implementation. It does not prove that another sequencer uses the same rotation sign, calls hits Fills, or writes identical MIDI at the selection boundary.

The underlying academic source provides the narrower common language: a length-n cyclic sequence with k onsets, written as x and ., whose onsets are distributed as evenly as possible. Toussaint explicitly cautions that the algorithm is not a model of the conscious process by which musicians in any culture created their timelines. Use E(3,8) here as a verifiable coordination skeleton. To learn a named musical tradition, study its musicians, recordings, phrasing, sound, movement, and social context rather than treating an eight-character string as the style.

Euclidean rhythm FAQ

Is E(3,8) the same thing as a 3:2 polyrhythm?

No. E(3,8) distributes three onsets across eight equal steps in one cyclic voice. A 3:2 polyrhythm coordinates two concurrent pulse streams—three evenly spaced events against two over a shared cycle. They answer different counting questions even when both contain the numbers 3 and 2.

Does x..x..x. automatically teach tresillo, reggaeton, or another style?

No. The paper identifies the same onset skeleton in named musical timelines, including a tresillo representation, but the binary grid does not carry culture, instrumentation, articulation, microtiming, accent, or ensemble interaction. This article deliberately tests only the onset skeleton and manual coordination.

Does rotation create a new rhythm?

It preserves the cyclic distance pattern but changes its phase against step 1 and every unrotated voice. Mathematically it belongs to the same rotational family; musically it can function differently in an arrangement. State which meaning you are using.

Why did my Density control change repetitions instead of the number of hits?

Because parameter names are product-specific. Read that version’s manual, then count the visible or exported onsets. In this article, k always means the measured number of onsets per n-step cycle, regardless of the UI label.

Can I add probability, velocity accents, or swing now?

After the deterministic R0a/R1/R0b test passes. Add one of those as a new version while preserving the verified grid. Probability can alter the realized event count, velocity changes dynamics or timbre, and swing changes timing; none is part of the basic E(k,n) identity used here.

Stopping rule

Stop when A and B each produce their exact event count, B’s cyclic gaps remain 3–3–2 through rotation, the declared collision moves from step 1 to step 5, every eight-step loop returns cleanly, and the screen-free R0b reproduces R0a. If any gate fails, keep the last passing recording and its literal x/. strings. Do not add randomness, a third voice, or faster tempo until the first failed invariant has one named cause and one reversible correction.

Sources and access date

The research paper supports the E(k,n) notation, binary onset/rest representation, even distribution, E(3,8), cyclic interval vector, and cultural-process caution. Ableton and Native Instruments support the current product-specific examples. They do not prescribe this article’s invariant gates, R0a/R1/R0b arc, two-voice collision card, diagnostic codes, or stopping rule.

  1. Godfried Toussaint — The Euclidean Algorithm Generates Traditional Musical Rhythms (accessed 2026-10-18)
  2. Ableton — Live 12 Manual: MIDI Tools, Euclidean (accessed 2026-10-18)
  3. Native Instruments — What’s New in Maschine 3.7? (accessed 2026-10-18)