aubio 0.4.9
|
various functions useful in audio signal processing More...
Go to the source code of this file.
Functions | |
fvec_t * | new_aubio_window (char_t *window_type, uint_t size) |
create window | |
uint_t | fvec_set_window (fvec_t *window, char_t *window_type) |
set elements of a vector to window coefficients | |
smpl_t | aubio_unwrap2pi (smpl_t phase) |
compute the principal argument | |
smpl_t | aubio_bintomidi (smpl_t bin, smpl_t samplerate, smpl_t fftsize) |
convert frequency bin to midi value | |
smpl_t | aubio_miditobin (smpl_t midi, smpl_t samplerate, smpl_t fftsize) |
convert midi value to frequency bin | |
smpl_t | aubio_bintofreq (smpl_t bin, smpl_t samplerate, smpl_t fftsize) |
convert frequency bin to frequency (Hz) | |
smpl_t | aubio_freqtobin (smpl_t freq, smpl_t samplerate, smpl_t fftsize) |
convert frequency (Hz) to frequency bin | |
smpl_t | aubio_hztomel (smpl_t freq) |
convert frequency (Hz) to mel | |
smpl_t | aubio_meltohz (smpl_t mel) |
convert mel to frequency (Hz) | |
smpl_t | aubio_hztomel_htk (smpl_t freq) |
convert frequency (Hz) to mel | |
smpl_t | aubio_meltohz_htk (smpl_t mel) |
convert mel to frequency (Hz) | |
smpl_t | aubio_freqtomidi (smpl_t freq) |
convert frequency (Hz) to midi value (0-128) | |
smpl_t | aubio_miditofreq (smpl_t midi) |
convert midi value (0-128) to frequency (Hz) | |
void | aubio_cleanup (void) |
clean up cached memory at the end of program | |
smpl_t | aubio_zero_crossing_rate (fvec_t *v) |
zero-crossing rate (ZCR) | |
smpl_t | aubio_level_lin (const fvec_t *v) |
compute sound level on a linear scale | |
smpl_t | aubio_db_spl (const fvec_t *v) |
compute sound pressure level (SPL) in dB | |
uint_t | aubio_silence_detection (const fvec_t *v, smpl_t threshold) |
check if buffer level in dB SPL is under a given threshold | |
smpl_t | aubio_level_detection (const fvec_t *v, smpl_t threshold) |
get buffer level if level >= threshold, 1. | |
void | fvec_clamp (fvec_t *in, smpl_t absmax) |
clamp the values of a vector within the range [-abs(max), abs(max)] | |
various functions useful in audio signal processing
Definition in file musicutils.h.
void aubio_cleanup | ( | void | ) |
clean up cached memory at the end of program
This function should be used at the end of programs to purge all cached memory. So far it is only useful to clean FFTW's cache.
compute sound pressure level (SPL) in dB
This quantity is often wrongly called 'loudness'.
This gives ten times the log10 of the average of the square amplitudes.
v | vector to compute dB SPL from |
convert frequency (Hz) to mel
freq | input frequency, in Hz |
Converts a scalar from the frequency domain to the mel scale using Slaney Auditory Toolbox's implementation:
If \( f < 1000 \), \( m = 3 f / 200 \).
If \( f >= 1000 \), \( m = 1000 + 27 \frac{{ln}(f) - ln(1000))} {{ln}(6400) - ln(1000)} \)
convert frequency (Hz) to mel
freq | input frequency, in Hz |
Converts a scalar from the frequency domain to the mel scale, using the equation defined by O'Shaughnessy, as implemented in the HTK speech recognition toolkit:
\( m = 1127 + ln(1 + \frac{f}{700}) \)
aubio_meltohz_htk(), aubio_hztomel().
Douglas O'Shaughnessy (1987). Speech communication: human and machine. Addison-Wesley. p. 150. ISBN 978-0-201-16520-3.
HTK Speech Recognition Toolkit: http://htk.eng.cam.ac.uk/
get buffer level if level >= threshold, 1.
otherwise
v | vector to get level from |
threshold | threshold in dB SPL |
compute sound level on a linear scale
This gives the average of the square amplitudes.
v | vector to compute level from |
convert mel to frequency (Hz)
mel | input mel |
Converts a scalar from the mel scale to the frequency domain using Slaney Auditory Toolbox's implementation:
If \( f < 1000 \), \( f = 200 m/3 \).
If \( f \geq 1000 \), \( f = 1000 + \left(\frac{6400}{1000}\right) ^{\frac{m - 1000}{27}} \)
aubio_hztomel(), aubio_meltohz_htk().
Malcolm Slaney, Auditory Toolbox Version 2, Technical Report #1998-010 https://engineering.purdue.edu/~malcolm/interval/1998-010/
convert mel to frequency (Hz)
mel | input mel |
Converts a scalar from the mel scale to the frequency domain, using the equation defined by O'Shaughnessy, as implemented in the HTK speech recognition toolkit:
\( f = 700 * {e}^\left(\frac{f}{1127} - 1\right) \)
check if buffer level in dB SPL is under a given threshold
v | vector to get level from |
threshold | threshold in dB SPL |
compute the principal argument
This function maps the input phase to its corresponding value wrapped in the range \( [-\pi, \pi] \).
phase | unwrapped phase to map to the unit circle |
zero-crossing rate (ZCR)
The zero-crossing rate is the number of times a signal changes sign, divided by the length of this signal.
v | vector to compute ZCR from |
clamp the values of a vector within the range [-abs(max), abs(max)]
in | vector to clamp |
absmax | maximum value over which input vector elements should be clamped |
set elements of a vector to window coefficients
window | exsting fvec_t to use |
window_type | type of the window to create |
List of available window types: "rectangle", "hamming", "hanning", "hanningz", "blackman", "blackman_harris", "gaussian", "welch", "parzen", "default".
"default" is equivalent to "hanningz".
References:
create window
window_type | type of the window to create |
size | length of the window to create (see fvec_set_window()) |