Browse Source

Fix bugs, wasn't re-initing newptr/delptr, amplitude scaling missing from Modulated

dds
user 4 years ago
parent
commit
0e3fe8f17d
1 changed files with 6 additions and 2 deletions
  1. +6
    -2
      synth_waveform.cpp

+ 6
- 2
synth_waveform.cpp View File

for (i = 0 ; i < AUDIO_BLOCK_SAMPLES ; i++) for (i = 0 ; i < AUDIO_BLOCK_SAMPLES ; i++)
{ {
int32_t val = band_limit_waveform.generate_square (phasedata[i], i) ; int32_t val = band_limit_waveform.generate_square (phasedata[i], i) ;
*bp++ = val ; /// (int16_t) ((val * magnitude) >> 16) ;
*bp++ = (int16_t) ((val * magnitude) >> 16) ;
} }
break; break;


for (i = 0 ; i < AUDIO_BLOCK_SAMPLES ; i++) for (i = 0 ; i < AUDIO_BLOCK_SAMPLES ; i++)
{ {
int16_t val = band_limit_waveform.generate_sawtooth (phasedata[i], i) ; int16_t val = band_limit_waveform.generate_sawtooth (phasedata[i], i) ;
///val = (int16_t) ((val * magnitude) >> 16) ;
val = (int16_t) ((val * magnitude) >> 16) ;
*bp++ = tone_type == WAVEFORM_BANDLIMIT_SAWTOOTH_REVERSE ? (int16_t) -val : (int16_t) +val ; *bp++ = tone_type == WAVEFORM_BANDLIMIT_SAWTOOTH_REVERSE ? (int16_t) -val : (int16_t) +val ;
} }
break; break;
void BandLimitedWaveform::init_sawtooth (uint32_t freq_word) void BandLimitedWaveform::init_sawtooth (uint32_t freq_word)
{ {
phase_word = 0 ; phase_word = 0 ;
newptr = 0 ;
delptr = 0 ;
for (int i = 0 ; i < 2*SUPPORT ; i++) for (int i = 0 ; i < 2*SUPPORT ; i++)
phase_word -= freq_word ; phase_word -= freq_word ;
dc_offset = phase_word < DEG180 ? BASE_AMPLITUDE : -BASE_AMPLITUDE ; dc_offset = phase_word < DEG180 ? BASE_AMPLITUDE : -BASE_AMPLITUDE ;
void BandLimitedWaveform::init_square (uint32_t freq_word) void BandLimitedWaveform::init_square (uint32_t freq_word)
{ {
phase_word = 0 ; phase_word = 0 ;
newptr = 0 ;
delptr = 0 ;
for (int i = 0 ; i < 2*SUPPORT ; i++) for (int i = 0 ; i < 2*SUPPORT ; i++)
phase_word -= freq_word ; phase_word -= freq_word ;
dc_offset = phase_word < DEG180 ? -BASE_AMPLITUDE : BASE_AMPLITUDE ; dc_offset = phase_word < DEG180 ? -BASE_AMPLITUDE : BASE_AMPLITUDE ;

Loading…
Cancel
Save