--- linuxsampler/trunk/src/engines/sfz/Voice.cpp 2010/02/20 00:31:08 2060 +++ linuxsampler/trunk/src/engines/sfz/Voice.cpp 2010/02/23 18:32:31 2061 @@ -95,7 +95,9 @@ ri.VCFType = ::gig::vcf_type_lowpass; // TODO: ri.VCFResonance = 0; // TODO: - ri.ReleaseTriggerDecay = 0; + // rt_decay is in dB. Precalculate a suitable value for exp in + // GetReleaseTriggerAttenuation: -ln(10) / 20 * rt_decay + ri.ReleaseTriggerDecay = -0.115129254649702 * pRegion->rt_decay; return ri; } @@ -492,4 +494,9 @@ return 0; } + float Voice::GetReleaseTriggerAttenuation(float noteLength) { + // pow(10, -rt_decay * noteLength / 20): + return expf(RgnInfo.ReleaseTriggerDecay * noteLength); + } + }} // namespace LinuxSampler::sfz