aubio: io/source.h File Reference

aubio 0.4.9

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 More...

## Functions
aubio_source_t * | new_aubio_source (const char_t *uri, uint_t samplerate, uint_t hop_size)
| create new aubio_source_t More...
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 More...
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 More...
uint_t | aubio_source_get_samplerate (aubio_source_t *s)
| get samplerate of source object More...
uint_t | aubio_source_get_channels (aubio_source_t *s)
| get channels of source object More...
uint_t | aubio_source_seek (aubio_source_t *s, uint_t pos)
| seek source object More...
uint_t | aubio_source_get_duration (aubio_source_t *s)
| get the duration of source object, in frames More...
uint_t | aubio_source_close (aubio_source_t *s)
| close source object More...
void | del_aubio_source (aubio_source_t *s)
| close source and cleanup memory More...

## 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

  s | source 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

  s | source object, created with new_aubio_source
  read_to | fvec_t of data to read to
  read | upon 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

  | s | source object, created with new_aubio_source
  | read_to | fmat_t of data to read to
  [out] | read | upon 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

  s | source 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

  s | source 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

  s | source 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

  s | source object, created with new_aubio_source
  pos | position 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

  s | source 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

  uri | the file path or uri to read from
  samplerate | sampling rate to view the fie at
  hop_size | the 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.