소스 검색

Fix WAVEFORM_TRIANGLE_VARIABLE at less than 1.0 amplitude

dds
PaulStoffregen 6 년 전
부모
커밋
fd2947410a
1개의 변경된 파일4개의 추가작업 그리고 4개의 파일을 삭제
  1. +4
    -4
      synth_waveform.cpp

+ 4
- 4
synth_waveform.cpp 파일 보기

@@ -138,10 +138,10 @@ void AudioSynthWaveform::update(void)
*bp++ = ((n >> 16) * magnitude) >> 16;
} else if (ph < 0xFFFFFFFF - pulse_width/2) {
uint32_t n = 0x7FFFFFFF - (((ph - pulse_width/2) >> 16) * fall);
*bp++ = ((n >> 16) * magnitude) >> 16;
*bp++ = (((int32_t)n >> 16) * magnitude) >> 16;
} else {
uint32_t n = ((ph + pulse_width/2) >> 16) * rise + 0x80000000;
*bp++ = ((n >> 16) * magnitude) >> 16;
*bp++ = (((int32_t)n >> 16) * magnitude) >> 16;
}
ph += inc;
}
@@ -356,10 +356,10 @@ void AudioSynthWaveformModulated::update(void)
*bp++ = ((n >> 16) * magnitude) >> 16;
} else if (ph < 0xFFFFFFFF - halfwidth) {
n = 0x7FFFFFFF - (((ph - halfwidth) >> 16) * fall);
*bp++ = ((n >> 16) * magnitude) >> 16;
*bp++ = (((int32_t)n >> 16) * magnitude) >> 16;
} else {
n = ((ph + halfwidth) >> 16) * rise + 0x80000000;
*bp++ = ((n >> 16) * magnitude) >> 16;
*bp++ = (((int32_t)n >> 16) * magnitude) >> 16;
}
ph += inc;
}

Loading…
취소
저장