Sustain
β Back to Index Β· β Foundation
Definition
Sustain describes how the kick decays after impact β how long it resonates, how quickly it dies, and what character that decay gives to the room.
It answers:
βAfter the kick hits, what happens next?β
Sustain is a categorical property β it is not a continuous value like Weight or Presence. Instead, it is classified into one of three states that describe the decay character of the kick.
The Three States
DRY ββ tight, punchy, immediate
MID ββ some room, natural decay
WET ββ long tail, spacious, reverberant
DRY
The kick hits and stops. There is no tail, no room sound, no resonance. The silence between kicks is as much a part of the sound as the kick itself.
Kick: ββ
ββββ almost no tail
ββββ sharp transient
Time: X . . . X . . . X . . . X . . .
ββ ββ ββ ββ
Feel: Mechanical. Clinical. Industrial.
Think: Surgeon, Ansome, SHDW & Obscure Shape
Early Birmingham techno
Factory floor at 4 AM
DRY sustain makes each kick a discrete event. There is space between the hits. Visually, this suggests sharp, staccato, high-contrast responses β flashes rather than flows.
MID
The kick hits and decays naturally. There is body after the transient β a brief resonance that fills the space between beats without flooding it. This is the default state for most techno.
Kick: βββββ
β βββ moderate tail, natural room
βββββ transient with body
Time: X . . . X . . . X . . . X . . .
βββββ βββββ βββββ βββββ
Feel: Driving. Natural. Grounded.
Think: Most Drumcode releases
Standard driving techno
The baseline groove state
MID sustain is the center of the spectrum. It is unremarkable by design β the kick has presence and body but doesnβt call attention to its decay. Visually, this is the βnormalβ state that other states deviate from.
WET
The kick hits and the tail extends well beyond the transient. Reverb, delay, or room resonance stretches the kickβs energy across the space between beats. The kicks bleed into each other.
Kick: ββββββββββββββββ
β βββββββ long reverberant tail
βββββββββ transient lost in the wash
Time: X . . . X . . . X . . . X . . .
ββββββββββββββββββββββββββββββ
(tails overlap β continuous low-frequency presence)
Feel: Hypnotic. Spacious. Trance-like.
Think: Rrose, Function, Vril
Atmospheric techno sections
3 AM eyes-closed moments
WET sustain blurs the boundary between individual kicks. The room becomes a continuous wash of low-frequency energy. Visually, this suggests flowing, blended, soft-edged, atmospheric responses.
Why Categorical, Not Continuous
Sustain could theoretically be measured as a continuous value β decay time in milliseconds. But the model treats it as categorical for two reasons.
First, the perceptual difference between sustain states is not linear. The difference between a 50ms decay and a 100ms decay is barely noticeable. The difference between a 100ms decay and a 500ms decay is transformative. What matters is not the exact number but which category of decay character is active.
Second, sustain changes are story-level events. When a DJ cuts from a wet reverb tail to a bone-dry kick, the character of the entire performance shifts. This is not a subtle, frame-to-frame variation β it is a discrete change in the feel of the room. Treating it as categorical means the model can use sustain shifts as Story transition triggers, just like Presence gate events.
Sustain as continuous (what you'd get from raw measurement):
decay_ms: 80 85 90 82 78 340 360 380 400 420
Sustain as categorical (what the model produces):
state: DRY DRY DRY DRY DRY WET WET WET WET WET
β
State shift.
Confirmed after M bars.
Potential story transition.
Sustain Shifts as Story Transitions
A shift in Sustain category signals a change in the character of the performance. It doesnβt change what Story youβre in by itself β but it changes the flavor of that Story.
Example: "Groove" story, Sustain shifts
ββββββββββββ DRY βββββββββββββββββββββββββ WET ββββββββββββ
β
Sustain shift
(confirmed after 2 bars)
Before: groove_heavy_dry (heavy, tight, mechanical)
After: groove_heavy_wet (heavy, spacious, trance-like)
The base story stays "groove", but the full story ID changes.
The matrix cell is the same; the Sustain modifier colors
the expression.
See Story Matrix for how Sustain modifies story names.
Sustain shifts are confirmed via Temporal Thresholds β the new category must persist for M bars (suggested default: 2 bars) before the model registers the change. This prevents brief reverb sends or momentary FX from triggering false shifts.
How Sustain Is Detected
From an engineering perspective, Sustain classification requires measuring the energy envelope of the kick after the transient. The system knows when the kick hits (from the beat grid via Pro DJ Link). Starting from that point, it measures how quickly energy in the kickβs frequency range decays.
Measurement window (conceptual):
Kick hits at beat position
β
βΌ
βββββββββββββββββββββ β measure energy decay from here
β β β
β βββ body βββ tail (how far does energy extend?)
ββββ transient
DRY: energy drops below threshold within ~50-100ms
MID: energy drops below threshold within ~100-300ms
WET: energy persists beyond ~300ms (or tail overlaps next beat)
The exact thresholds depend on tempo (at faster BPMs, the window between beats is shorter, so βWETβ means less absolute time) and should be calibrated through testing. The important thing is that the classification produces consistent results: the same kick with the same decay should always classify as the same state.
Edge Cases
What about reverb that builds gradually? If a send effect gradually increases reverb on the kick over several bars, the decay time grows slowly. The categorical classification might not shift until the decay crosses the threshold between MID and WET. This is correct behavior β the Sustain state remains stable until the change is dramatic enough to be categorically different.
What about sidechain compression pumping? Heavy sidechain compression on pads or basslines creates a βpumpingβ effect that might look like kick decay in the sub-bass range. The system should measure sustain in the kickβs specific frequency range (anchored by the known beat grid position), not across the entire low-frequency spectrum, to avoid confusing sidechain artifacts with kick decay.
What about DJ transitions where two kicks overlap? During a mix, two kicks from different tracks might overlap, creating a temporarily different decay profile. The Temporal Thresholds mechanism handles this β the overlapping decay must persist for 2 bars before the model registers a sustain shift. Brief overlaps during transitions are filtered out.
Related Pages
- Foundation β the parent concept
- Weight β how heavy the kick feels
- Presence β how clearly the kick is perceived
- Story Matrix β how Sustain modifies story character
- Temporal Thresholds β how shifts are confirmed