Doing my own OSC code.

You could put one cycle of the waveform in a wavetable
and use phase accumulators. You can get by with less
than one cycle if you exploit symmetry.

My preference is to use one cycle. This makes it easier
to change waveforms.

My numerically controlled oscillator code is at
http://wiblocks.luciani.org/docs/app-notes/nb1a-nco.html

(* jcl*)