Module SynthSource

Sourcetype source =
  1. | Wave of Oscillator.waveform
  2. | Naive of Oscillator.waveform
  3. | Fm of {
    1. ratio : float;
    2. index : float;
    }
  4. | Noise
  5. | Pluck
Sourcetype voice = {
  1. source : source;
  2. frequency : float;
  3. slide : float option;
  4. seconds : float;
  5. volume : float;
  6. fade : bool;
  7. effects : Pitch_effect.t list;
  8. envelope : Envelope.t option;
}
Sourcetype t =
  1. | Voice of voice
  2. | Together of t list
  3. | After of t list
  4. | Samples of Signal.t
  5. | Filtered of filter * t
  6. | Echo of echo * t
  7. | Reverb of float * t
  8. | Panned of float * t
  9. | Processed of processed * t
Sourceand echo = {
  1. delay : float;
  2. feedback : float;
}
Sourceand filter = {
  1. kind : Filter.kind;
  2. cutoff : float;
  3. cutoff_to : float;
  4. q : float;
}
Sourceand processed = {
  1. make : unit -> Signal.stereo -> unit;
  2. tail : float;
}
Sourceval band_limited : bool ref
Sourceval voice : source -> float -> t
Sourceval lasting : float -> t -> t
Sourceval fading : t -> t
Sourceval louder : float -> t -> t
Sourceval sliding : float -> t -> t
Sourceval naive : t -> t
Sourceval with_effect : Pitch_effect.t -> t -> t
Sourceval faster : float -> t -> t
Sourceval pitched : float -> t -> t
Sourceval duration : t -> float
Sourceval render : t -> Signal.t
Sourceval render_stereo : t -> Signal.stereo
Sourceval tail : delay:float -> feedback:float -> float
Sourceval echo : delay:float -> feedback:float -> Signal.t -> Signal.t
Sourceval reverb : seconds:float -> ?mix:float -> Signal.t -> Signal.t
Sourcetype running
Sourceval start : unit -> running
Sourceval continue : running -> voice -> int -> Signal.t * running
Sourceval release : running -> voice -> int -> Signal.t