aubio  0.4.0
 All Data Structures Files Functions Variables Typedefs Macros
Typedefs | Functions
onset.h File Reference

Onset detection object. More...

Go to the source code of this file.

Typedefs

typedef struct _aubio_onset_t aubio_onset_t
 onset detection object
 

Functions

aubio_onset_tnew_aubio_onset (char_t *method, uint_t buf_size, uint_t hop_size, uint_t samplerate)
 create onset detection object More...
 
void aubio_onset_do (aubio_onset_t *o, fvec_t *input, fvec_t *onset)
 execute onset detection More...
 
uint_t aubio_onset_get_last (aubio_onset_t *o)
 get the time of the latest onset detected, in samples More...
 
smpl_t aubio_onset_get_last_s (aubio_onset_t *o)
 get the time of the latest onset detected, in seconds More...
 
smpl_t aubio_onset_get_last_ms (aubio_onset_t *o)
 get the time of the latest onset detected, in milliseconds More...
 
uint_t aubio_onset_set_silence (aubio_onset_t *o, smpl_t silence)
 set onset detection silence threshold More...
 
smpl_t aubio_onset_get_descriptor (aubio_onset_t *o)
 get onset detection function More...
 
smpl_t aubio_onset_get_thresholded_descriptor (aubio_onset_t *o)
 get thresholded onset detection function More...
 
uint_t aubio_onset_set_threshold (aubio_onset_t *o, smpl_t threshold)
 set onset detection peak picking threshold More...
 
uint_t aubio_onset_set_minioi (aubio_onset_t *o, uint_t minioi)
 set minimum inter onset interval in samples More...
 
uint_t aubio_onset_set_minioi_s (aubio_onset_t *o, smpl_t minioi)
 set minimum inter onset interval in seconds More...
 
uint_t aubio_onset_set_minioi_ms (aubio_onset_t *o, smpl_t minioi)
 set minimum inter onset interval in milliseconds More...
 
uint_t aubio_onset_set_delay (aubio_onset_t *o, uint_t delay)
 set minimum inter onset interval in samples More...
 
uint_t aubio_onset_set_delay_s (aubio_onset_t *o, smpl_t delay)
 set minimum inter onset interval in seconds More...
 
uint_t aubio_onset_set_delay_ms (aubio_onset_t *o, smpl_t delay)
 set minimum inter onset interval in milliseconds More...
 
uint_t aubio_onset_get_minioi (aubio_onset_t *o)
 get minimum inter onset interval in samples More...
 
smpl_t aubio_onset_get_minioi_s (aubio_onset_t *o)
 get minimum inter onset interval in seconds More...
 
smpl_t aubio_onset_get_minioi_ms (aubio_onset_t *o)
 get minimum inter onset interval in milliseconds More...
 
uint_t aubio_onset_get_delay (aubio_onset_t *o)
 get minimum inter onset interval in samples More...
 
smpl_t aubio_onset_get_delay_s (aubio_onset_t *o)
 get minimum inter onset interval in seconds More...
 
smpl_t aubio_onset_get_delay_ms (aubio_onset_t *o)
 get minimum inter onset interval in milliseconds More...
 
void del_aubio_onset (aubio_onset_t *o)
 delete onset detection object More...
 

Detailed Description

Onset detection object.

The following routines compute the onset detection function and detect peaks in these functions. When onsets are found above a given silence threshold, and after a minimum inter-onset interval, the output vector returned by aubio_onset_do() is filled with 1. Otherwise, the output vector remains 0.

The peak-picking threshold, the silence threshold, and the minimum inter-onset interval can be adjusted during the execution of the aubio_onset_do routine using the corresponding functions.

Definition in file onset.h.

Function Documentation

void aubio_onset_do ( aubio_onset_t o,
fvec_t input,
fvec_t onset 
)

execute onset detection

Parameters
oonset detection object as returned by new_aubio_onset()
inputnew audio vector of length hop_size
onsetoutput vector of length 1, containing 0 if no onset was found, and a value equal or greater than 1 otherwise

When no onset was detected, the first element of the output vector onset is set to 0.

When an onset is found, the first element of the output vector onset is set to offset = 1 + a where a is a number in the range[0, 1].

The final onset detection time, in samples, can be obtained with aubio_onset_get_last(). It can also be derived from offset as follows:

t = total_frames + offset * hop_size - delay

where total_frames is the total number of frames processed so far, and delay is the current delay of the onset object, as returned by aubio_onset_get_delay().

Examples:
examples/aubionotes.c, examples/aubioonset.c, and onset/test-onset.c.
uint_t aubio_onset_get_delay ( aubio_onset_t o)

get minimum inter onset interval in samples

Parameters
oonset detection object as returned by new_aubio_onset()
Returns
constant system delay to take back from detection time (in samples)
smpl_t aubio_onset_get_delay_ms ( aubio_onset_t o)

get minimum inter onset interval in milliseconds

Parameters
oonset detection object as returned by new_aubio_onset()
Returns
constant system delay to take back from detection time (in milliseconds)
smpl_t aubio_onset_get_delay_s ( aubio_onset_t o)

get minimum inter onset interval in seconds

Parameters
oonset detection object as returned by new_aubio_onset()
Returns
constant system delay to take back from detection time (in seconds)
smpl_t aubio_onset_get_descriptor ( aubio_onset_t o)

get onset detection function

Parameters
oonset detection object as returned by new_aubio_onset()
Returns
the current value of the descriptor
uint_t aubio_onset_get_last ( aubio_onset_t o)

get the time of the latest onset detected, in samples

Parameters
oonset detection object as returned by new_aubio_onset()
Returns
onset detection timestamps (in samples)
Examples:
onset/test-onset.c.
smpl_t aubio_onset_get_last_ms ( aubio_onset_t o)

get the time of the latest onset detected, in milliseconds

Parameters
oonset detection object as returned by new_aubio_onset()
Returns
onset detection timestamps (in milliseconds)
Examples:
onset/test-onset.c.
smpl_t aubio_onset_get_last_s ( aubio_onset_t o)

get the time of the latest onset detected, in seconds

Parameters
oonset detection object as returned by new_aubio_onset()
Returns
onset detection timestamps (in seconds)
Examples:
examples/aubioonset.c, and onset/test-onset.c.
uint_t aubio_onset_get_minioi ( aubio_onset_t o)

get minimum inter onset interval in samples

Parameters
oonset detection object as returned by new_aubio_onset()
Returns
minimum interval between two consecutive onsets (in samples)
smpl_t aubio_onset_get_minioi_ms ( aubio_onset_t o)

get minimum inter onset interval in milliseconds

Parameters
oonset detection object as returned by new_aubio_onset()
Returns
minimum interval between two consecutive onsets (in milliseconds)
smpl_t aubio_onset_get_minioi_s ( aubio_onset_t o)

get minimum inter onset interval in seconds

Parameters
oonset detection object as returned by new_aubio_onset()
Returns
minimum interval between two consecutive onsets (in seconds)
smpl_t aubio_onset_get_thresholded_descriptor ( aubio_onset_t o)

get thresholded onset detection function

Parameters
oonset detection object as returned by new_aubio_onset()
Returns
the value of the thresholded descriptor
uint_t aubio_onset_set_delay ( aubio_onset_t o,
uint_t  delay 
)

set minimum inter onset interval in samples

Parameters
oonset detection object as returned by new_aubio_onset()
delayconstant system delay to take back from detection time (in samples)
uint_t aubio_onset_set_delay_ms ( aubio_onset_t o,
smpl_t  delay 
)

set minimum inter onset interval in milliseconds

Parameters
oonset detection object as returned by new_aubio_onset()
delayconstant system delay to take back from detection time (in milliseconds)
uint_t aubio_onset_set_delay_s ( aubio_onset_t o,
smpl_t  delay 
)

set minimum inter onset interval in seconds

Parameters
oonset detection object as returned by new_aubio_onset()
delayconstant system delay to take back from detection time (in seconds)
uint_t aubio_onset_set_minioi ( aubio_onset_t o,
uint_t  minioi 
)

set minimum inter onset interval in samples

Parameters
oonset detection object as returned by new_aubio_onset()
minioiminimum interval between two consecutive onsets (in samples)
uint_t aubio_onset_set_minioi_ms ( aubio_onset_t o,
smpl_t  minioi 
)

set minimum inter onset interval in milliseconds

Parameters
oonset detection object as returned by new_aubio_onset()
minioiminimum interval between two consecutive onsets (in milliseconds)
uint_t aubio_onset_set_minioi_s ( aubio_onset_t o,
smpl_t  minioi 
)

set minimum inter onset interval in seconds

Parameters
oonset detection object as returned by new_aubio_onset()
minioiminimum interval between two consecutive onsets (in seconds)
uint_t aubio_onset_set_silence ( aubio_onset_t o,
smpl_t  silence 
)

set onset detection silence threshold

Parameters
oonset detection object as returned by new_aubio_onset()
silencenew silence detection threshold
Examples:
examples/aubioonset.c.
uint_t aubio_onset_set_threshold ( aubio_onset_t o,
smpl_t  threshold 
)

set onset detection peak picking threshold

Parameters
oonset detection object as returned by new_aubio_onset()
thresholdnew peak-picking threshold
Examples:
examples/aubionotes.c, and examples/aubioonset.c.
void del_aubio_onset ( aubio_onset_t o)

delete onset detection object

Parameters
oonset detection object to delete
Examples:
examples/aubioonset.c, and onset/test-onset.c.
aubio_onset_t* new_aubio_onset ( char_t method,
uint_t  buf_size,
uint_t  hop_size,
uint_t  samplerate 
)

create onset detection object

Parameters
methodonset detection type as specified in specdesc.h
buf_sizebuffer size for phase vocoder
hop_sizehop size for phase vocoder
sampleratesampling rate of the input signal
Returns
newly created aubio_onset_t
Examples:
examples/aubionotes.c, examples/aubioonset.c, and onset/test-onset.c.