Pads, strings, organs, and choir samples all share a problem: they need to sustain indefinitely, but the recording has a fixed length. Attack the key and hold it for four bars. The sample might last three seconds.
The fix is a loop: the player repeats a portion of the sustain while the note is held, then plays out the release when the key is released. Done well, this is inaudible. Done badly, you get a click, a pitch flutter, or a rhythmic artifact that repeats every loop cycle.
This guide covers how to find a loop region that works, how zero crossings help (and when they’re not enough), how crossfade looping solves the harder cases, and how loop points carry into the formats you’ll actually use.
Why sustain loops are necessary
A natural piano note sustains for several seconds before fading. A held organ note can last indefinitely. A synthesizer pad might take thirty seconds to finish decaying. Recording the full sustain of every note at every velocity is impractical for most instruments: the sample set becomes enormous, and the tail of a very long note is rarely interesting.
The standard solution divides the sample into three sections: attack, sustain loop, and release. The player sounds the attack once, loops through the sustain section while the note is held, and plays the release when the key is lifted. This structure is explicit in SF2 (which has sustain loop start and end positions in its sample header) and straightforward in SFZ and Decent Sampler, which let you define loop start and end points separately from the sample boundaries.
Choosing a good loop region
The goal is a segment of the sustain that sounds consistent from one cycle to the next, has no audible rhythm or movement that repeats at the loop rate, and starts and ends at compatible phase and amplitude.
Long loops hide the repeat better than short ones. A one-second loop of a held pad will cycle twelve times in twelve seconds. If anything in that window has audible shape (a slow filter sweep, a vibrato lull, a slight tremolo), you’ll hear it repeating. A three-second loop cycles only four times in the same span and is far less likely to sound mechanical.
For instruments with natural vibrato, find a region where the vibrato is stable: consistent rate, consistent depth, no acceleration. The settling tail of the attack vibrato is the wrong place to loop; look for the steady middle portion of the sustain.
For organs and other instruments with stable sustain, this is easier because the timbre genuinely doesn’t change during a held note. Pick any reasonably long segment from the middle of the sustain and you’ll usually have a workable starting point.
Zero crossings
A zero crossing is a point in the waveform where the amplitude passes through zero: the signal going from positive to negative or vice versa. Starting and ending a loop at zero crossings eliminates amplitude discontinuities at the join. When the signal is at rest at both ends of the loop, there’s nothing for the listener to hear as a click.
Most sample editors can snap loop points to zero crossings automatically. Enable this option before placing points.
Zero crossings aren’t enough on their own for complex tones. An organ or pad contains many simultaneous harmonics. Even if the fundamental is at zero, other harmonics may be mid-cycle. The composite waveform at the loop start and loop end can look similar at a zoomed-out view while actually having different phase relationships between harmonics at that exact sample.
This mismatch shows up as a click, a pitch flutter, or a subtle timbral shift every loop cycle. Zooming in on the waveform at the loop boundary and looking for a close visual match between the shape just before the end point and the shape just after the start point is more reliable than checking for zero amplitude alone.
Crossfade looping
When you can’t find a loop point that avoids all discontinuity, crossfade looping solves it. Instead of a hard cut at the loop boundary, the player blends the end of the loop back into its start over a short overlap. The end of the loop fades out as the beginning fades in, masking any mismatch at the join.
Crossfade lengths vary by instrument. 10 to 50 milliseconds covers most cases. Simple tones (flutes, sine-based pads) often work with shorter fades of 5 to 15 ms. Complex sustained sounds with significant harmonic movement may need 30 to 50 ms before the join sounds clean.
The approach has a small cost: the very end of the loop region blends slightly into the beginning, which can affect the apparent texture of the loop. For instruments with vibrato, this sometimes alters the phase of the vibrato cycle at the repeat point. Testing several crossfade lengths is faster than calculating the right value.
Some sample editors apply crossfade looping non-destructively, storing the crossfade as a parameter applied in memory rather than baking it into the audio file. For archival purposes, keep the unmodified original and store the crossfade parameters separately.
Common problems
Clicks at the loop point. Almost always a discontinuity in amplitude or phase at the loop boundary. Try crossfade looping, or move the loop point earlier or later by a few milliseconds to find a better match between the waveform shapes at both ends.
Pitch flutter at the loop boundary. The fundamental frequency isn’t phase-consistent across the join. The loop starts at one point in the pitch cycle and ends at a slightly different point, so the composite waveform shifts by a fraction of a cycle at each repeat. Try lengthening the loop until the number of complete cycles fits more naturally, or use crossfade looping to mask the shift.
Amplitude drift. The level at the start of the loop is slightly different from the level at the end. Over many cycles, the repeated loop creates a slow pulse at the loop rate as the volume nudges up or down with each repeat. Fix it by finding a loop region with consistent average level throughout, or by applying a small gain match at the boundaries.
Audible rhythm in the loop. The loop region contains movement (tremolo, a filter sweep, the tail of an envelope) that repeats at the loop rate. Find a longer, flatter region of the sustain.
How loop points carry into multisample formats
The WAV format includes a chunk called smpl that stores loop data: a start sample position, an end sample position, and a loop type (forward, ping-pong). When you set loop points in a sample editor and export, the smpl chunk travels with the file.
SF2. The SF2 sample header has fields for sustain loop start and end positions. Building an SF2 from WAV sources, tools like PolyPhone read the smpl chunk and transfer the loop points automatically. The SF2 sample mode generator controls when looping happens: sustain only (release plays through to the end of the sample), or continuous (loops even through the release phase).
SFZ. SFZ supports loop points through loop_start, loop_end, and loop_mode opcodes. Set loop_mode=loop_continuous for a standard sustain loop that runs as long as the note is held. Some SFZ players also read the smpl chunk directly, honoring whatever loop points are embedded in the WAV, but declaring them explicitly in the SFZ text is more reliable across players. The multisample workflow in SampleStack handles key zone mapping and envelope settings; loop points and loop mode are then added to the SFZ text by hand.
Decent Sampler. Decent Sampler reads WAV smpl chunk loop data natively. Embed the loop points in the WAV file and the plugin picks them up without extra configuration in the instrument XML.
Disting EX and Disting NT. These modules read loop data from the WAV file itself. The module looks for both smpl chunks and cue chunks: if the file has an smpl chunk with loop data, the first embedded loop is used (any additional loops are ignored); if the file uses WAV cue points instead, those are read as loop start and end positions. Standard smpl loop points set by most sample editors will work on the Disting EX and Disting NT without any extra configuration. The playlist.txt file controls file ordering and can enable or disable looping per file, but the loop start and end positions come from the WAV metadata itself. The NT’s Poly Multisample algorithm also supports crossfade looping since firmware v1.11.
For hardware sample-player modules that don’t support loop markers at all (the majority of Eurorack sample players), looping is either controlled on the device itself or not available. In those cases, the WAV loop data in the file is ignored.
Recording and editing tips
For a pad or string multi, record more sustain than you think you’ll need. Twenty seconds of a sustained chord gives you options: you can find the flattest, most consistent portion and fit a loop there. Three seconds limits where the loop can go.
Label source files by instrument and velocity layer, but hold off on setting loop points until all the recordings are done. Loop-pointing is a post-session task. During the session, focus on consistent mic position, consistent playing technique, and consistent sustain amplitude.
If you’re working from synth recordings, render long notes at the synth’s own sustain stage rather than capturing a shorter note and hoping the sustain is long enough. A synth held in sustain is genuinely stable. A decaying synth pad is not.
If you’d rather not set loop points by hand in a sample editor, SampleStack includes a loop editor that shows the waveform, lets you place and audition loop points, applies crossfade options, and exports the result with the smpl chunk intact for SF2, SFZ, and Decent Sampler instruments.
Frequently asked questions
What is a zero crossing in audio?
A zero crossing is a point in the audio waveform where the amplitude passes through zero. Starting and ending a loop at zero crossings reduces the chance of a click at the loop point because the signal is at rest rather than mid-cycle at the transition.
Why does my loop click even though I’ve placed it at zero crossings?
Zero crossings prevent amplitude discontinuities, but a loop can still click if the phase or pitch of the waveform at the start and end points doesn’t match. This is common in complex tones like strings or pads where multiple harmonics beat against each other. Crossfade looping solves this by blending the end of the loop back into its start over a short fade.
How long should a crossfade loop be?
10 to 50 milliseconds is a practical starting range for most sustained instruments. Short crossfades of 5 to 15 ms work well for simpler tones. Complex pads or instruments with significant harmonic movement may need 30 to 50 ms to smooth the join cleanly.
Do hardware samplers read WAV loop markers?
It depends on the module. The Disting EX and Disting NT both read loop data from the WAV file: they look for smpl chunks (using the first embedded loop) and WAV cue points (which are used as loop start and end). Many other Eurorack sample-player modules ignore WAV loop markers entirely and require looping to be set on the device itself.
Which software formats carry loop points from a WAV file?
SF2 stores loop points in the sample header directly. SFZ players can read smpl chunk loop data from the WAV file, or you can set loop_start, loop_end, and loop_mode explicitly in the SFZ text. Decent Sampler reads WAV loop markers natively.