diff --git a/osc.c b/osc.c index 218cac9..92ca612 100644 --- a/osc.c +++ b/osc.c @@ -28,5 +28,8 @@ void osc_setfreq(struct osc_t *osc, double freq) { osc->freq = freq; osc->step = freq / _sample_rate * LOOKUP_SAMPLES; + + /* Ensure step does not go out of bound */ + while (osc->step > LOOKUP_SAMPLES) osc->step -= LOOKUP_SAMPLES; }