aubio 0.4.9
Loading...
Searching...
No Matches
Typedefs | Functions
source.h File Reference

Media source to read blocks of consecutive audio samples from file. More...

Go to the source code of this file.

Typedefs

typedef struct _aubio_source_t aubio_source_t
 media source object
 

Functions

aubio_source_tnew_aubio_source (const char_t *uri, uint_t samplerate, uint_t hop_size)
 create new aubio_source_t
 
void aubio_source_do (aubio_source_t *s, fvec_t *read_to, uint_t *read)
 read monophonic vector of length hop_size from source object
 
void aubio_source_do_multi (aubio_source_t *s, fmat_t *read_to, uint_t *read)
 read polyphonic vector of length hop_size from source object
 
uint_t aubio_source_get_samplerate (aubio_source_t *s)
 get samplerate of source object
 
uint_t aubio_source_get_channels (aubio_source_t *s)
 get channels of source object
 
uint_t aubio_source_seek (aubio_source_t *s, uint_t pos)
 seek source object
 
uint_t aubio_source_get_duration (aubio_source_t *s)
 get the duration of source object, in frames
 
uint_t aubio_source_close (aubio_source_t *s)
 close source object
 
void del_aubio_source (aubio_source_t *s)
 close source and cleanup memory
 

Detailed Description

Media source to read blocks of consecutive audio samples from file.

To write to file, use aubio_sink_t.

Depending on how aubio was compiled, the following sources will be available.

When creating a new source using new_aubio_source, the new function of each of the compiled-in sources will be used, in the following order, until one of them gets successfully created. If all sources returned NULL, new_aubio_source will return NULL.

source_avcodec : libav

aubio can be optionally compiled with libav, which can read from a very large number of audio and video formats, including over different network protocols such as HTTP.

source_apple_audio : ExtAudioFileRef

On Mac and iOS platforms, aubio should be compiled with CoreAudio [Extended Audio File Services] (https://developer.apple.com/library/mac/documentation/MusicAudio/Reference/ExtendedAudioFileServicesReference/Reference/reference.html). This provides access to most common audio file formats, including compressed ones.

source_sndfile : libsndfile

Also optional, aubio can be built against libsndfile, which can read most uncompressed formats.

source_wavread : native WAV reader

A simple source to read from 16-bits PCM RIFF encoded WAV files.

Definition in file source.h.

Typedef Documentation

◆ aubio_source_t

typedef struct _aubio_source_t aubio_source_t

media source object

Definition at line 70 of file source.h.

Function Documentation

◆ aubio_source_close()

uint_t aubio_source_close ( aubio_source_t s)

close source object

Parameters
ssource object, created with new_aubio_source
Returns
0 if sucessful, non-zero on failure
Examples
io/test-source.c.

◆ aubio_source_do()

void aubio_source_do ( aubio_source_t s,
fvec_t read_to,
uint_t read 
)

read monophonic vector of length hop_size from source object

Parameters
ssource object, created with new_aubio_source
read_tofvec_t of data to read to
readupon returns, equals to number of frames actually read

Upon returns, read contains the number of frames actually read from the source. hop_size if enough frames could be read, less otherwise.

Examples
io/test-sink.c, io/test-source.c, onset/test-onset.c, spectral/test-mfcc.c, synth/test-sampler.c, and tempo/test-tempo.c.

◆ aubio_source_do_multi()

void aubio_source_do_multi ( aubio_source_t s,
fmat_t read_to,
uint_t read 
)

read polyphonic vector of length hop_size from source object

Parameters
ssource object, created with new_aubio_source
read_tofmat_t of data to read to
[out]readupon returns, equals to number of frames actually read

Upon returns, read contains the number of frames actually read from the source. hop_size if enough frames could be read, less otherwise.

Examples
io/test-source.c.

◆ aubio_source_get_channels()

uint_t aubio_source_get_channels ( aubio_source_t s)

get channels of source object

Parameters
ssource object, created with new_aubio_source
Returns
channels
Examples
io/test-source.c.

◆ aubio_source_get_duration()

uint_t aubio_source_get_duration ( aubio_source_t s)

get the duration of source object, in frames

Parameters
ssource object, created with new_aubio_source
Returns
number of frames in file
Examples
io/test-source.c.

◆ aubio_source_get_samplerate()

uint_t aubio_source_get_samplerate ( aubio_source_t s)

get samplerate of source object

Parameters
ssource object, created with new_aubio_source
Returns
samplerate, in Hz
Examples
io/test-sink.c, io/test-source.c, onset/test-onset.c, spectral/test-mfcc.c, synth/test-sampler.c, and tempo/test-tempo.c.

◆ aubio_source_seek()

uint_t aubio_source_seek ( aubio_source_t s,
uint_t  pos 
)

seek source object

Parameters
ssource object, created with new_aubio_source
posposition to seek to, in frames
Returns
0 if sucessful, non-zero on failure
Examples
io/test-source.c.

◆ del_aubio_source()

void del_aubio_source ( aubio_source_t s)

close source and cleanup memory

Parameters
ssource object, created with new_aubio_source
Examples
io/test-sink.c, io/test-source.c, onset/test-onset.c, spectral/test-mfcc.c, synth/test-sampler.c, and tempo/test-tempo.c.

◆ new_aubio_source()

aubio_source_t * new_aubio_source ( const char_t uri,
uint_t  samplerate,
uint_t  hop_size 
)

create new aubio_source_t

Parameters
urithe file path or uri to read from
sampleratesampling rate to view the fie at
hop_sizethe size of the blocks to read from

Creates a new source object. If 0 is passed as samplerate, the sample rate of the original file is used.

The samplerate of newly created source can be obtained using aubio_source_get_samplerate.

Examples
io/test-sink.c, io/test-source.c, onset/test-onset.c, spectral/test-mfcc.c, synth/test-sampler.c, and tempo/test-tempo.c.