implement osc generator