aubio lib document-Main page

翻译 ALLEN ⋅ 于 2019-08-02 22:48:51 ⋅ 21 阅读

这是一篇协同翻译


概要

Aubio 是一个从音频信号中提取注释的库:它提供了一组以音频信号作为输入,以音调估计、attack 次数(起音)、节拍位置估计和其他注释信息为输出的函数。

基本用法

Aubio 中的所有对象结构都具有与函数相同的前缀和后缀:

  • new_aubio_foo 创建对象 foo
  • aubio_foo_do 执行对象 foo
  • del_aubio_foo 销毁对象 foo

所有的内存分配和释放都发生在以 new_ 和 del_ 为前缀的函数中。或者,可以用多个以 _do 为后缀的函数。可使用以下方法来调整和观察额外参数:
aubio_foo_get_param,getter 函数,获取一个参数的值
aubio_foo_set_param,setter 函数,更改参数值
除非在文档中有特殊说明,否则在 getter 函数中不会有内存操作发生。然而,内存大小调整可以发生在 setter 函数中。


向量

在 aubio 库中有两个基本的结构体在使用: fvec_t 和 cvec_t。fvec_t 结构体用于存储浮点指针的向量。 cvec_t 用于存储复数, 它们是作为范数和相位元素的两个向量。

另外,lvec_t 结构体用于存储双精度的浮点数。它们主要是用于存储滤波系数,来避免不稳定性。

可用的对象

以下是 aubio 库最常用的对象列表:

// fast Fourier transform (FFT)
aubio_fft_t *fft = new_aubio_fft (winsize);
// phase vocoder
aubio_pvoc_t *pv = new_aubio_pvoc (winsize, stepsize);
// onset detection
aubio_onset_t *onset = new_aubio_onset (method, winsize, stepsize, samplerate);
// pitch detection
aubio_pitch_t *pitch = new_aubio_pitch (method, winsize, stepsize, samplerate);
// beat tracking
aubio_tempo_t *tempo = new_aubio_tempo (method, winsize, stepsize, samplerate);

见 typedefs 完整对象列表。


Example

Here is a simple example that creates an A-Weighting filter and applies it to a vector.

// set window size, and sampling rate
uint_t winsize = 1024, sr = 44100;
// create a vector
fvec_t *this_buffer = new_fvec (winsize);
// create the a-weighting filter
aubio_filter_t *this_filter = new_aubio_filter_a_weighting (sr);
while (running) {
  // here some code to put some data in this_buffer
  // ...
  // apply the filter, in place
  aubio_filter_do (this_filter, this_buffer);
  // here some code to get some data from this_buffer
  // ...
}
// and free the structures
del_aubio_filter (this_filter);
del_fvec (this_buffer);

Several examples of C programs are available in the examples/ and tests/src directories of the source tree.

Some examples:

spectral/test-fft.c
spectral/test-phasevoc.c
onset/test-onset.c
pitch/test-pitch.c
tempo/test-tempo.c
test-fvec.c
test-cvec.c


Unstable API

Several more functions are available and used within aubio, but not documented here, either because they are not considered useful to the user, or because they may need to be changed in the future. However, they can still be used by defining AUBIO_UNSTABLE to 1 before including the aubio header:

#define AUBIO_UNSTABLE 1
#include <aubio/aubio.h>

Future versions of aubio could break API compatibility with these functions without warning. If you choose to use functions in AUBIO_UNSTABLE, you are on your own.

Download

Latest versions, further documentation, examples, wiki, and mailing lists can be found at https://aubio.org/ .

附言 0  ·  2019-08-03 10:19:12

这是一篇 aubio 库的基本介绍

回复数量: 0
    暂无评论~~
    • 请注意单词拼写,以及中英文排版,参考此页
    • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
    • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
    • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
    • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
      请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
    Ctrl+Enter