diff --git a/synth_sin_cos_f32.cpp b/synth_sin_cos_f32.cpp index 631130f..effa255 100644 --- a/synth_sin_cos_f32.cpp +++ b/synth_sin_cos_f32.cpp @@ -31,6 +31,8 @@ * SOFTWARE. */ +// Rev 10 March 2021 - Corrected interpolation formula Bob L + #include "synth_sin_cos_f32.h" // 513 values of the sine wave in a float array: @@ -80,7 +82,7 @@ void AudioSynthSineCosine_F32::update(void) { /* Read two nearest values of input value from the sin table */ a = sinTable512_f32[index]; b = sinTable512_f32[index+1]; - blockS->data[i] = amplitude_pk * (a + 0.001953125*(b-a)*deltaPhase); /* Linear interpolation process */ + blockS->data[i] = amplitude_pk * (a + (b-a)*deltaPhase); /* Linear interpolation process */ /* Shift forward phaseS_C and get cos. First, the calculation of index of the table */ phaseC = phaseS + phaseS_C; @@ -90,7 +92,7 @@ void AudioSynthSineCosine_F32::update(void) { /* Read two nearest values of input value from the sin table */ a = sinTable512_f32[index]; b = sinTable512_f32[index+1]; - blockC->data[i] = amplitude_pk * (a + 0.001953125*(b-a)*deltaPhase); /* Linear interpolation process */ + blockC->data[i] = amplitude_pk * (a + (b-a)*deltaPhase); /* Linear interpolation process */ } } AudioStream_F32::transmit(blockS, 0); diff --git a/synth_sin_cos_f32.h b/synth_sin_cos_f32.h index 77b50aa..19ba124 100644 --- a/synth_sin_cos_f32.h +++ b/synth_sin_cos_f32.h @@ -2,6 +2,7 @@ * AudioSynthSineCosine_F32 * * Status: Checked for function and accuracy. 19 April 2020 + * 10 March 2021 Corrected Interpolation equations. Bob L * * Created: Bob Larkin 15 April 2020 *