95 |
ri.VCFType = ::gig::vcf_type_lowpass; // TODO: |
ri.VCFType = ::gig::vcf_type_lowpass; // TODO: |
96 |
ri.VCFResonance = 0; // TODO: |
ri.VCFResonance = 0; // TODO: |
97 |
|
|
98 |
ri.ReleaseTriggerDecay = 0; |
// rt_decay is in dB. Precalculate a suitable value for exp in |
99 |
|
// GetReleaseTriggerAttenuation: -ln(10) / 20 * rt_decay |
100 |
|
ri.ReleaseTriggerDecay = -0.115129254649702 * pRegion->rt_decay; |
101 |
|
|
102 |
return ri; |
return ri; |
103 |
} |
} |
494 |
return 0; |
return 0; |
495 |
} |
} |
496 |
|
|
497 |
|
float Voice::GetReleaseTriggerAttenuation(float noteLength) { |
498 |
|
// pow(10, -rt_decay * noteLength / 20): |
499 |
|
return expf(RgnInfo.ReleaseTriggerDecay * noteLength); |
500 |
|
} |
501 |
|
|
502 |
}} // namespace LinuxSampler::sfz |
}} // namespace LinuxSampler::sfz |