sig
type buffer = float array
val create : int -> Audio.Mono.buffer
val blit :
Audio.Mono.buffer -> int -> Audio.Mono.buffer -> int -> int -> unit
val copy : Audio.Mono.buffer -> Audio.Mono.buffer
val duration : Audio.Mono.buffer -> int
val append : Audio.Mono.buffer -> Audio.Mono.buffer -> Audio.Mono.buffer
val clear : Audio.Mono.buffer -> int -> int -> unit
val amplify : float -> Audio.Mono.buffer -> int -> int -> unit
val resample :
?mode:[ `Linear | `Nearest ] ->
float -> Audio.Mono.buffer -> int -> int -> Audio.Mono.buffer
val clip : Audio.Mono.buffer -> int -> int -> unit
val add :
Audio.Mono.buffer -> int -> Audio.Mono.buffer -> int -> int -> unit
val mult :
Audio.Mono.buffer -> int -> Audio.Mono.buffer -> int -> int -> unit
module Ringbuffer_ext :
sig
type elt = float
type buffer = elt array
type t
val create : int -> t
val read_space : t -> int
val write_space : t -> int
val read_advance : t -> int -> unit
val write_advance : t -> int -> unit
val read : t -> buffer -> int -> int -> unit
val peek : t -> buffer -> int -> int -> unit
val write : t -> buffer -> int -> int -> unit
val transmit : t -> (buffer -> int -> int -> int) -> int
end
module Ringbuffer :
sig
type elt = float
type buffer = elt array
type t
val create : int -> t
val read_space : t -> int
val write_space : t -> int
val read_advance : t -> int -> unit
val write_advance : t -> int -> unit
val read : t -> buffer -> int -> int -> unit
val peek : t -> buffer -> int -> int -> unit
val write : t -> buffer -> int -> int -> unit
val transmit : t -> (buffer -> int -> int -> int) -> int
end
module Buffer_ext :
sig
type t
val create : int -> Audio.Mono.Buffer_ext.t
val duration : Audio.Mono.Buffer_ext.t -> int
val prepare : Audio.Mono.Buffer_ext.t -> int -> Audio.Mono.buffer
end
module Analyze :
sig
val rms : Audio.Mono.buffer -> int -> int -> float
module FFT :
sig
type t
val init : int -> Audio.Mono.Analyze.FFT.t
val duration : Audio.Mono.Analyze.FFT.t -> int
val complex_create :
Audio.Mono.buffer -> int -> int -> Stdlib.Complex.t array
val fft :
Audio.Mono.Analyze.FFT.t -> Stdlib.Complex.t array -> unit
val band_freq : int -> Audio.Mono.Analyze.FFT.t -> int -> float
module Window :
sig
val cosine : Stdlib.Complex.t array -> unit
val hann : Stdlib.Complex.t array -> unit
val hamming : Stdlib.Complex.t array -> unit
val lanczos : Stdlib.Complex.t array -> unit
val triangular : Stdlib.Complex.t array -> unit
val bartlett_hann : Stdlib.Complex.t array -> unit
val blackman :
?alpha:float ->
Audio.Mono.Analyze.FFT.t -> Stdlib.Complex.t array -> unit
val nuttall :
Audio.Mono.Analyze.FFT.t -> Stdlib.Complex.t array -> unit
val blackman_harris :
Audio.Mono.Analyze.FFT.t -> Stdlib.Complex.t array -> unit
val blackman_nuttall :
Audio.Mono.Analyze.FFT.t -> Stdlib.Complex.t array -> unit
end
val notes :
int ->
Audio.Mono.Analyze.FFT.t ->
?window:(Stdlib.Complex.t array -> unit) ->
?note_min:int ->
?note_max:int ->
?volume_min:float ->
?filter_harmonics:bool ->
float array -> int -> int -> (Audio.Note.t * float) list
val loudest_note :
(Audio.Note.t * float) list -> (Audio.Note.t * float) option
end
end
module Effect :
sig
val compand_mu_law : float -> Audio.Mono.buffer -> int -> int -> unit
class type t =
object method process : Audio.Mono.buffer -> int -> int -> unit end
class amplify : float -> t
class clip : float -> t
class biquad_filter :
int ->
[ `All_pass
| `Band_pass
| `High_pass
| `High_shelf
| `Low_pass
| `Low_shelf
| `Notch
| `Peaking ] -> ?gain:float -> float -> float -> t
module ADSR :
sig
type t
val make :
int -> float * float * float * float -> Audio.Mono.Effect.ADSR.t
type state
val init : unit -> Audio.Mono.Effect.ADSR.state
val release :
Audio.Mono.Effect.ADSR.state -> Audio.Mono.Effect.ADSR.state
val dead : Audio.Mono.Effect.ADSR.state -> bool
val process :
Audio.Mono.Effect.ADSR.t ->
Audio.Mono.Effect.ADSR.state ->
Audio.Mono.buffer -> int -> int -> Audio.Mono.Effect.ADSR.state
end
end
module Generator :
sig
class type t =
object
method dead : bool
method fill : Audio.Mono.buffer -> int -> int -> unit
method fill_add : Audio.Mono.buffer -> int -> int -> unit
method release : unit
method set_frequency : float -> unit
method set_volume : float -> unit
end
class sine : int -> ?volume:float -> ?phase:float -> float -> t
class square : int -> ?volume:float -> ?phase:float -> float -> t
class saw : int -> ?volume:float -> ?phase:float -> float -> t
class triangle : int -> ?volume:float -> ?phase:float -> float -> t
class white_noise : ?volume:float -> int -> t
class chain : Audio.Mono.Generator.t -> Audio.Mono.Effect.t -> t
class add : Audio.Mono.Generator.t -> Audio.Mono.Generator.t -> t
class mult : Audio.Mono.Generator.t -> Audio.Mono.Generator.t -> t
class adsr : Audio.Mono.Effect.ADSR.t -> Audio.Mono.Generator.t -> t
end
end