Round-robin explained: why repeated notes need alternates

Technical

When you map a single recording to a key and trigger that note rapidly, the sampler plays back the identical waveform every time. At slow tempos this is imperceptible. At faster tempos, especially for percussion and short attacks, the repetition becomes audible: every hit sounds exactly like the last, with no variation in timbre, transient shape, or room character. Musicians and engineers call this the machine-gun effect.

The problem isn’t level or timing. It’s identity. Two identical waveforms back to back produce the same attack, the same ring, the same everything. Real snare hits, even when played at the same velocity by the same drummer on the same drum, are never truly identical. Stick placement varies by fractions of a millimeter. The drum head resonates slightly differently each time. The room changes on every hit.

Round-robin solves this by providing several recordings of the same note and cycling through them on successive triggers. The sampler plays recording A on the first hit, recording B on the second, C on the third, then back to A. Each hit is still from the same source, but the minor variation between takes breaks the mechanical pattern.

How the cycling works

The term “round-robin” refers to the rotation: each recording gets a turn in sequence, then the cycle repeats. A three-sample round-robin across nine triggers looks like this:

Hit 1: Sample A
Hit 2: Sample B
Hit 3: Sample C
Hit 4: Sample A
Hit 5: Sample B
Hit 6: Sample C
...

This is distinct from random selection, where the sampler picks unpredictably on each trigger. Random selection also breaks the machine-gun effect, but can occasionally repeat the same sample twice in a row. That sounds better than perfect repetition and slightly less natural than true sequential round-robin. Some players offer both modes; SFZ supports both explicitly.

The number of recordings in the pool is a judgment call. Two alternates reduce the effect significantly for sounds with longer sustain. For short, sharp transients (rim shots, hi-hat hits, finger snaps), four to six gives more convincing variation. Beyond eight is rarely worth the recording time or storage cost for most instruments.

SFZ implementation

SFZ has explicit round-robin support through two opcodes: seq_length and seq_position.

seq_length declares how many alternatives exist in the pool. seq_position marks which recording is which. Every region that belongs to the same key zone gets a different seq_position value:

<region>
sample=samples/snare_rr1.wav
lokey=38 hikey=38 pitch_keycenter=38
seq_length=3 seq_position=1

<region>
sample=samples/snare_rr2.wav
lokey=38 hikey=38 pitch_keycenter=38
seq_length=3 seq_position=2

<region>
sample=samples/snare_rr3.wav
lokey=38 hikey=38 pitch_keycenter=38
seq_length=3 seq_position=3

The player tracks which position was last triggered and advances on the following note-on. The cycle resets to position 1 after the last sample plays.

SFZ also supports random alternation via lorand and hirand opcodes. Each region gets a probability range from 0.000 to 1.000. On each trigger the player generates a random number and plays the region whose range contains it:

<region>
sample=samples/snare_rr1.wav
lokey=38 hikey=38
lorand=0.000 hirand=0.333

<region>
sample=samples/snare_rr2.wav
lokey=38 hikey=38
lorand=0.333 hirand=0.667

<region>
sample=samples/snare_rr3.wav
lokey=38 hikey=38
lorand=0.667 hirand=1.000

The SFZ instruments guide covers the format in more detail, including compatible players and how SFZ regions combine with velocity layers.

Decent Sampler

Decent Sampler’s XML format supports round-robin through a seqMode attribute on group elements. Setting seqMode="round_robin" tells the plugin to cycle through samples in that group sequentially. seqMode="random" selects a sample from the group at random on each trigger. The samples within the group each get a seqPosition attribute that sets their place in the cycle.

The Decent Sampler plugin is free, and its instrument format is a hand-authored XML file alongside a folder of WAV samples, structurally close to SFZ. The two formats share the same conceptual model: regions or groups declare what sample plays at what key and velocity, and additional attributes like seqMode layer on the cycling behavior.

SoundFont 2

SoundFont 2 doesn’t include a round-robin mechanism. SF2 presets map samples to key and velocity ranges with no built-in way to cycle through alternatives on successive hits. A few SF2 players implement non-standard extensions that approximate random selection, but these aren’t part of the specification and aren’t consistently supported across players. If round-robin matters to your instrument, SFZ or Decent Sampler are the better choices.

Hardware module support

Most hardware trigger players and Eurorack samplers don’t support round-robin at the format level. A gate signal tells the module to fire a sample; it doesn’t carry a hit counter the module can use to advance a cycling state.

The Rample from Squarp Instruments is a direct exception. It supports up to 12 sample layers per voice and cycles through them in round-robin, random, or velocity-based modes, managed internally by the module. Organizing files with the Rample’s layer naming convention (multiple files starting with the same voice number in the same kit folder) is enough for the module to handle the cycling automatically. The Rample Turbo uses the same kit structure with a redesigned analog path.

For drum sample players without that capability, like the Erica Sample Drum, each channel plays one sample at a time. You can still load different recordings across multiple channels and trigger them selectively in a performance, but the module won’t cycle through them automatically on repeated triggers.

Round-robin and velocity layers together

These two techniques address different problems and can coexist in the same instrument.

Velocity layers give an instrument dynamic range: soft and hard recordings of the same note play depending on trigger velocity. Round-robin gives each velocity layer variation: instead of one recording per layer, several alternates cycle on successive hits.

A thorough instrument might have five velocity layers, each with four round-robin alternates. That’s twenty recordings per key zone. The cost is recording time and file size; the result is a drum or percussion instrument that holds up under close listening and rapid repetition.

SampleStack’s multisample workflow handles key zone mapping, velocity layer assignment, and envelope settings for the formats it exports. Round-robin alternates sit outside that export, at the SFZ or Decent Sampler authoring stage: after exporting the instrument file, add seq_position/seq_length (SFZ) or seqMode/seqPosition (Decent Sampler) declarations to the regions that share a key zone. The file structure is already in place; the cycling behavior is a few extra attributes per region.

Recording round-robin alternates

The goal is subtle variation, not different performances. Record the same note, at the same dynamic level, multiple times in a row. Mic position, instrument setup, and technique should stay constant between takes.

Percussion responds well to this. Several takes of the same snare hit at the same velocity, where minor variation in stick placement, drum resonance, and room reflection creates natural inconsistency. The takes don’t need to sound different when you audition them side by side. They just need to not be identical waveforms.

A common mistake is recording the alternates at slightly different volumes. If one take is 3 dB hotter than the others, the volume difference surfaces every few triggers and becomes its own rhythmic artifact. Normalize each alternate to the same peak level, or set a consistent signal target for the session and hold it throughout.

Name the files to reflect their position in the pool: snare_rr1.wav, snare_rr2.wav, and so on. This makes the SFZ or Decent Sampler authoring step easier and keeps the session folder readable when you come back to it.

Frequently asked questions

What is the machine-gun effect in sampling?

The machine-gun effect is the audible repetition that occurs when a sampler plays the identical recording on every trigger. At fast tempos, especially on percussion, the repeated waveforms create a mechanical, artificial sound. Round-robin prevents it by cycling through several recordings of the same note.

How many round-robin samples do I need?

Two significantly reduces the effect for most material. Four to six is practical for short, sharp transients like drums or plucked instruments. Beyond six or eight, the improvement is rarely noticeable.

Can I combine round-robin with velocity layers?

Yes. Each velocity layer can have its own set of round-robin alternates. A soft velocity layer cycles through its soft recordings; a hard velocity layer cycles through its hard recordings. The two mechanisms operate independently and coexist in the same SFZ or Decent Sampler instrument.

Does SampleStack export round-robin?

SampleStack’s multisample export covers key zone mapping, velocity layers, and envelopes. Round-robin alternates are added to the SFZ or Decent Sampler text file separately, after export, by adding seq_position and seq_length (SFZ) or seqMode and seqPosition (Decent Sampler) to the relevant regions.

Which formats support round-robin?

SFZ and Decent Sampler both have explicit round-robin support. SoundFont 2 doesn’t include it in the specification. For hardware modules, support depends on the module; the Rample from Squarp Instruments handles it internally, cycling up to 12 layers per voice.