each oscillator can now have its own waveform function