Synthstrom Deluge: hold long-decay silent-sustain amplitude envelopes at the zone level#173
Merged
git-moss merged 2 commits intoJul 8, 2026
Conversation
…e zone level SoundFonts (and similar formats) often fake a slow, sustaining pad with a near-silent sustain plus a very long amplitude decay - e.g. a pad whose amplitude decays over tens of seconds - relying on that long decay to keep the note audible. The Deluge's decay/release rate table only reaches about 5.9 seconds, so such an envelope collapsed to near-silence within a couple of seconds and the converted sound played far too quietly. When the amplitude sustain is (near) silent but the decay is longer than the Deluge can represent, write the sustain as a hold at the level implied by the zone's own attenuation instead, so the note sustains at the source's level rather than dropping out.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Several source formats fake a slow, sustaining pad with a near-silent amplitude sustain plus a very long decay — e.g. a SoundFont 2 pad whose amplitude decays over tens of seconds — relying on that long decay to keep the note audible while the key is held.
The Deluge's decay/release rate table only reaches about 5.9 seconds, so when the converted envelope keeps the silent sustain but clamps the decay to what the Deluge can represent, the note collapses to near-silence within a couple of seconds. Converted pads then play far too quietly compared to the source.
Concretely: an E-mu Orbit patch such as
JUNO PHASEorHIWEED(sustain ≈ -100 dB, decay ≈ 44 s) plays at full level in the original and in TX16Wx, but was almost inaudible after conversion to the Deluge.Fix
In
DelugeCreator, when the amplitude sustain is (near) silent and the decay is longer than the Deluge can represent, write the sustain as a hold at the level implied by the zone's own attenuation (10^(gain/20)) instead of the silent sustain. The note then sustains at the source's intended level rather than dropping out. Envelopes that already sustain at an audible level, or whose decay fits within the Deluge's range, are unchanged.This is intentionally narrow — it only rewrites the sustain value for the silent-sustain + over-long-decay case; normal envelopes take the existing
envelopeSustainpath untouched.Notes
JUNO PHASE/HIWEEDpads now play at the correct volume on the Deluge.