aubio: io/sink.h File Reference

aubio 0.4.9

Loading...
Searching...
No Matches
Typedefs | Functions
sink.h File Reference

Media sink to write blocks of consecutive audio samples to file. More...

Go to the source code of this file.

## Typedefs
typedef struct _aubio_sink_t | aubio_sink_t
| media sink object

## Functions
aubio_sink_t * | new_aubio_sink (const char_t *uri, uint_t samplerate)
| create new aubio_sink_t
uint_t | aubio_sink_preset_samplerate (aubio_sink_t *s, uint_t samplerate)
| preset sink samplerate
uint_t | aubio_sink_preset_channels (aubio_sink_t *s, uint_t channels)
| preset sink channels
uint_t | aubio_sink_get_samplerate (const aubio_sink_t *s)
| get samplerate of sink object
uint_t | aubio_sink_get_channels (const aubio_sink_t *s)
| get channels of sink object
void | aubio_sink_do (aubio_sink_t *s, fvec_t *write_data, uint_t write)
| write monophonic vector of length hop_size to sink
void | aubio_sink_do_multi (aubio_sink_t *s, fmat_t *write_data, uint_t write)
| write polyphonic vector of length hop_size to sink
uint_t | aubio_sink_close (aubio_sink_t *s)
| close sink
void | del_aubio_sink (aubio_sink_t *s)
| close sink and cleanup memory

## Detailed Description

Media sink to write blocks of consecutive audio samples to file.

To read from file, use aubio_source_t.

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

When creating a new sink using new_aubio_sink, the new function of each of the compiled-in sinks will be attempted, in the following order, until one of them gets successfully created. If all sinks returned NULL, new_aubio_sink will return NULL.

`sink_apple_audio` : ExtAudioFileRef

This sink uses CoreAudio [Extended Audio File Services] (https://developer.apple.com/library/mac/documentation/MusicAudio/Reference/ExtendedAudioFileServicesReference/Reference/reference.html) to write 16-bits encoded WAV files.

`sink_sndfile` : libsndfile

This sink uses libsndfile to write 16-bits encoded WAV files.

`sink_wavwrite` : native WAV write

A simple sink to write 16-bits PCM RIFF encoded WAV files.

Definition in file sink.h.

## Typedef Documentation

## ◆ aubio_sink_t

typedef struct _aubio_sink_t aubio_sink_t

media sink object

Definition at line 61 of file sink.h.

## Function Documentation

## ◆ aubio_sink_close()

uint_t aubio_sink_close | ( | aubio_sink_t * | s | ) |

close sink

Parameters

  s | sink object, created with new_aubio_sink

Returns
  0 on success, non-zero on failure

Examples
  io/test-sink.c.

## ◆ aubio_sink_do()

void aubio_sink_do | ( | aubio_sink_t * | s,
|  | fvec_t * | write_data,
|  | uint_t | write
| ) |  |

write monophonic vector of length hop_size to sink

Parameters

  s | sink, created with new_aubio_sink
  write_data | fvec_t samples to write to sink
  write | number of frames to write

Examples
  io/test-sink.c, synth/test-sampler.c, and synth/test-wavetable.c.

## ◆ aubio_sink_do_multi()

void aubio_sink_do_multi | ( | aubio_sink_t * | s,
|  | fmat_t * | write_data,
|  | uint_t | write
| ) |  |

write polyphonic vector of length hop_size to sink

Parameters

  s | sink, created with new_aubio_sink
  write_data | fmat_t samples to write to sink
  write | number of frames to write

Examples
  io/test-sink.c.

## ◆ aubio_sink_get_channels()

uint_t aubio_sink_get_channels | ( | const aubio_sink_t * | s | ) |

get channels of sink object

Parameters

  s | sink object, created with new_aubio_sink

Returns
  number of channels

Examples
  io/test-sink.c.

## ◆ aubio_sink_get_samplerate()

uint_t aubio_sink_get_samplerate | ( | const aubio_sink_t * | s | ) |

get samplerate of sink object

Parameters

  s | sink object, created with new_aubio_sink

Returns
  samplerate, in Hz

Examples
  io/test-sink.c.

## ◆ aubio_sink_preset_channels()

uint_t aubio_sink_preset_channels | ( | aubio_sink_t * | s,
|  | uint_t | channels
| ) |  |

preset sink channels

Parameters

  s | sink, created with new_aubio_sink
  channels | number of channels to preset the sink to

Returns
  0 on success, 1 on error

Preset the samplerate of the sink. The file should have been created using a samplerate of 0.

The file will be opened only when both samplerate and channels have been set.

Examples
  io/test-sink.c.

## ◆ aubio_sink_preset_samplerate()

uint_t aubio_sink_preset_samplerate | ( | aubio_sink_t * | s,
|  | uint_t | samplerate
| ) |  |

preset sink samplerate

Parameters

  s | sink, created with new_aubio_sink
  samplerate | samplerate to preset the sink to, in Hz

Returns
  0 on success, 1 on error

Preset the samplerate of the sink. The file should have been created using a samplerate of 0.

The file will be opened only when both samplerate and channels have been set.

Examples
  io/test-sink.c.

## ◆ del_aubio_sink()

void del_aubio_sink | ( | aubio_sink_t * | s | ) |

close sink and cleanup memory

Parameters

  s | sink object, created with new_aubio_sink

Examples
  io/test-sink.c, synth/test-sampler.c, and synth/test-wavetable.c.

## ◆ new_aubio_sink()

aubio_sink_t * new_aubio_sink | ( | const char_t * | uri,
|  | uint_t | samplerate
| ) |  |

create new aubio_sink_t

Parameters

  uri | the file path or uri to write to
  samplerate | sample rate to write the file at

Returns
  newly created aubio_sink_t

Creates a new sink object.

If samplerate is set to 0, the creation of the file will be delayed until both aubio_sink_preset_samplerate and aubio_sink_preset_channels have been called.

Examples
  io/test-sink.c, synth/test-sampler.c, and synth/test-wavetable.c.