Skip to content

Commit e08550c

Browse files
committed
SineWaveGenerator
1 parent 091de2c commit e08550c

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

src/AudioEffects/SoundGenerator.h

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -204,16 +204,18 @@ class SineWaveGenerator : public SoundGenerator<T>{
204204

205205
/// Provides a single sample
206206
virtual T readSample() override {
207-
float angle = double_Pi * m_frequency * m_time + m_phase;
207+
float angle = double_Pi * m_cycles + m_phase;
208208
T result = m_amplitude * sinf(angle);
209-
m_time += m_deltaTime;
210-
if (m_time > divisor) m_time -= divisor;
209+
m_cycles += m_frequency * m_deltaTime;
210+
if (m_cycles > 1.0) {
211+
m_cycles -= 1.0;
212+
}
211213
return result;
212214
}
213215

214216
protected:
215217
volatile float m_frequency = 0;
216-
float m_time = 0.0;
218+
float m_cycles = 0.0; // Varies between 0.0 and 1.0
217219
float m_amplitude = 1.0;
218220
float m_deltaTime = 0.0;
219221
float m_phase = 0.0;

0 commit comments

Comments
 (0)