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