Msynth.InstrumentInstruments.
type ('sample, 'event) note = {note : int;Note: A4 is 69.
*)stream : 'sample Stream.stream;event : 'event Stream.Event.t;mutable released : bool;alive : bool Stdlib.ref;is the note still playing?
*)}A note of an instrument.
val create_stereo :
event:[> `Note_off of int | `Note_on of int * float ] Stream.Event.t ->
?portamento:float Stream.t ->
(float * float, [> `Release ]) Note.t ->
(float * float) Stream.tval create :
event:[> `Note_off of int | `Note_on of int * float ] Stream.Event.t ->
?portamento:float Stream.t ->
(float, [> `Release ]) Note.t ->
float Stream.tval create_drum :
event:[> `Note_off of 'a | `Note_on of int * 'b ] Stream.Event.t ->
(on_die:(unit -> unit) -> float -> 'b -> float Stream.t) ->
float Stream.tCreate a drum instrument.
val play :
?portamento:float Stream.t ->
(float, [> `Release ]) Note.t ->
[> `Note_off of int | `Note_on of int * float ] list Stream.t ->
float Stream.tPlay a stream of lists events.
val play_drums :
?kick:(on_die:(unit -> unit) -> float -> float -> float Stream.t) ->
?snare:(on_die:(unit -> unit) -> float -> float -> float Stream.t) ->
?closed_hat:(on_die:(unit -> unit) -> float -> float -> float Stream.t) ->
[< `Closed_hat of float | `Kick of float | `Nop | `Snare of float ] list
Stream.t ->
float Stream.tval kick : float -> float Stream.tGenerate a recurrent kick at given tempo.