module FFT: sig .. end
Simple implementation of the FFT algorithm. For fastest implementations
optimized libraries such as fftw are recommended.
type t
Internal data for computing FFT.
val init : int -> t
Initialize FFT for an analysis of 2^n samples.
val duration : t -> int
Duration of the FFT buffer analysis in samples.
val complex_create : Audio.Mono.buffer -> int -> int -> Complex.t array
complex_create buf ofs len create a array of complex numbers of size
len by copying data from buf from ofset ofs (the imaginary part
is null).
val fft : t -> Complex.t array -> unit
Perform an FFT analysis.
val band_freq : int -> t -> int -> float
Frequency associated to the k-th coefficient of an FFT.
module Window: sig .. end
Windowing functions.
val notes : int ->
t ->
?window:(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