Module Polyphony

type voice = {
  1. release : unit -> unit;
  2. fill : Signal.t -> unit;
  3. silent : unit -> bool;
}
type t
val create : ?voices:int -> unit -> t
val press : t -> int -> voice -> unit
val release : t -> int -> unit
val fill : t -> Signal.t -> unit
val voices : t -> int
val held : t -> int list
val sine : adsr:Envelope.t -> float -> float -> voice