Module Audio.Mono.Analyze.FFT

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 -> Stdlib.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 -> Stdlib.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:(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