Module Oscillator

type waveform =
  1. | Sine
  2. | Square
  3. | Triangle
  4. | Sawtooth
val waveforms : waveform list
val name : waveform -> string
val wave : waveform -> float -> float
val polyblep : dt:float -> float -> float
val polyblamp : dt:float -> float -> float
val wave_band_limited : waveform -> dt:float -> float -> float
val pulse : width:float -> float -> float
val pulse_band_limited : width:float -> dt:float -> float -> float
type t = {
  1. waveform : waveform;
  2. frequency : float;
  3. phase : float;
}
val make : waveform -> float -> t
val next : ?band_limited:bool -> t -> float * t
val render : ?band_limited:bool -> waveform -> frequency:float -> float -> Signal.t