#include "osc.h" osc_t OSC_sin = { .name = "f_sin", .len = 20000, .start = 0, .end = 20000, }; float osc_sin(float offset) { return osc_interpolate(offset, sin(2 * M_PI * (int)offset / OSC_sin.len), sin(2 * M_PI * osc_next_index(&OSC_sin, offset) / OSC_sin.len)); } float osc_sin_next(float f, float offset) { return osc_next_offset(&OSC_sin, f, offset); }