- increased to version 0.5.8

- improved limiter
- VCO: Waveform "Impulse" hase now amplitude of 100 

git-svn-id: http://moon:8086/svn/software/trunk/projects/JaySynth@715 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
2020-07-23 15:42:35 +00:00
parent 22cb0987ff
commit eecd6c5005
5 changed files with 19 additions and 13 deletions
+11 -6
View File
@@ -550,17 +550,21 @@ void JaySynthAudioProcessor::processBlock (AudioSampleBuffer& buffer, MidiBuffer
buf[1][i] = (synth_float_t)buf2[i] * synth_gain;
// Limiter
limiter_ar = 1.0/(SYNTH_LIMITER_RISE_TIME*m_fs);
limiter_ar = 5.0/(SYNTH_LIMITER_RISE_TIME*m_fs);
limiter_af = 5.0/(SYNTH_LIMITER_FALL_TIME*m_fs);
limiter_threshold = pow((synth_float_t)10.0, (synth_float_t)SYNTH_LIMITER_THRESHOLD/20);
for (i=0; i <numSamples; i++)
{
x = max(fabs(buf[0][i]), fabs(buf[1][i]));
if (m_limiter_env < x)
m_limiter_env += limiter_ar*(x - m_limiter_env);
if (x > m_limiter_env)
{
m_limiter_env = (1.0-limiter_ar)*m_limiter_env + limiter_ar*x;
}
else
m_limiter_env += limiter_af*(x - m_limiter_env);
{
m_limiter_env = (1.0-limiter_af)*m_limiter_env;
}
limiter_env[i] = m_limiter_env;
}
@@ -568,10 +572,11 @@ void JaySynthAudioProcessor::processBlock (AudioSampleBuffer& buffer, MidiBuffer
m_limiter_active = 0;
for (i=0; i <numSamples; i++)
{
limiter_gain[i] = (float)(limiter_threshold/max(limiter_threshold, limiter_env[i]));
limiter_gain[i] = min(1.0, 1.0/(limiter_env[i] + 1.0e-6));
if (limiter_gain[i] < 1.0)
{
m_limiter_active = 1;
}
}
for (i=0; i <numSamples; i++)