aubio 0.4.9
Loading...
Searching...
No Matches
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.