use numpy array for waveform
separate time interval generator