audio.h File Reference

Functions for audio driver output. More...

Typedefs

typedef int(* fluid_audio_func_t )(void *data, int len, int nin, float **in, int nout, float **out)
 Callback function type used with new_fluid_audio_driver2() to allow for custom user audio processing before the audio is sent to the driver.

Functions

FLUIDSYNTH_API
fluid_audio_driver_t
new_fluid_audio_driver (fluid_settings_t *settings, fluid_synth_t *synth)
 Create a new audio driver.
FLUIDSYNTH_API
fluid_audio_driver_t
new_fluid_audio_driver2 (fluid_settings_t *settings, fluid_audio_func_t func, void *data)
 Create a new audio driver.
FLUIDSYNTH_API void delete_fluid_audio_driver (fluid_audio_driver_t *driver)
 Deletes an audio driver instance.
FLUIDSYNTH_API
fluid_file_renderer_t
new_fluid_file_renderer (fluid_synth_t *synth)
 Create a new file renderer and open the file.
FLUIDSYNTH_API int fluid_file_renderer_process_block (fluid_file_renderer_t *dev)
 Write period_size samples to file.
FLUIDSYNTH_API void delete_fluid_file_renderer (fluid_file_renderer_t *dev)
 Close file and destroy a file renderer object.

Detailed Description

Functions for audio driver output.


Typedef Documentation

typedef int(* fluid_audio_func_t)(void *data, int len, int nin, float **in, int nout, float **out)

Callback function type used with new_fluid_audio_driver2() to allow for custom user audio processing before the audio is sent to the driver.

This function is responsible for rendering the audio to the buffers.

Parameters:
data The user data parameter as passed to new_fluid_audio_driver2().
len Length of the audio in frames.
nin Count of buffers in 'in'
in Not used currently
nout Count of arrays in 'out' (i.e., channel count)
out Output buffers, one for each channel
Returns:
Should return 0 on success, non-zero if an error occured.

Function Documentation

FLUIDSYNTH_API fluid_audio_driver_t* new_fluid_audio_driver ( fluid_settings_t settings,
fluid_synth_t synth 
)

Create a new audio driver.

Parameters:
settings Configuration settings used to select and create the audio driver.
synth Synthesizer instance for which the audio driver is created for.
Returns:
The new audio driver instance.

Creates a new audio driver for a given 'synth' instance with a defined set of configuration 'settings'.

Examples:
example.c, fluidsynth_arpeggio.c, fluidsynth_metronome.c, and fluidsynth_simple.c.

References FLUID_DBG, FLUID_ERR, fluid_settings_dupstr(), fluid_settings_option_concat(), fluid_settings_str_equal(), and new_fluid_audio_driver().

Referenced by new_fluid_audio_driver().

FLUIDSYNTH_API fluid_audio_driver_t* new_fluid_audio_driver2 ( fluid_settings_t settings,
fluid_audio_func_t  func,
void *  data 
)

Create a new audio driver.

Parameters:
settings Configuration settings used to select and create the audio driver.
func Function called to fill audio buffers for audio playback
data User defined data pointer to pass to 'func'
Returns:
The new audio driver instance.

Like new_fluid_audio_driver() but allows for custom audio processing before audio is sent to audio driver. It is the responsibility of the callback 'func' to render the audio into the buffers.

NOTE: Not as efficient as new_fluid_audio_driver().

Examples:
fluidsynth_fx.c.

References FLUID_DBG, FLUID_ERR, fluid_settings_dupstr(), fluid_settings_str_equal(), and new_fluid_audio_driver2().

Referenced by new_fluid_audio_driver2().

FLUIDSYNTH_API void delete_fluid_audio_driver ( fluid_audio_driver_t driver  ) 

Deletes an audio driver instance.

Parameters:
driver Audio driver instance to delete

Shuts down an audio driver and deletes its instance.

Examples:
example.c, fluidsynth_arpeggio.c, fluidsynth_fx.c, fluidsynth_metronome.c, and fluidsynth_simple.c.

References delete_fluid_audio_driver().

Referenced by delete_fluid_audio_driver().

FLUIDSYNTH_API fluid_file_renderer_t* new_fluid_file_renderer ( fluid_synth_t synth  ) 

Create a new file renderer and open the file.

Parameters:
synth The synth that creates audio data.
Returns:
the new object, or NULL on failure
Since:
1.1.0

NOTE: Available file types and formats depends on if libfluidsynth was built with libsndfile support or not. If not then only RAW 16 bit output is supported.

Uses the following settings from the synth object:

  • audio.file.name: Output filename
  • audio.file.type: File type, "auto" tries to determine type from filename extension with fallback to "wav".
  • audio.file.format: Audio format
  • audio.file.endian: Endian byte order, "auto" for file type's default byte order
  • audio.period-size: Size of audio blocks to process
  • synth.sample-rate: Sample rate to use

References delete_fluid_file_renderer(), FLUID_ERR, fluid_settings_dupstr(), fluid_settings_getint(), fluid_settings_getnum(), and new_fluid_file_renderer().

Referenced by new_fluid_file_renderer().

FLUIDSYNTH_API int fluid_file_renderer_process_block ( fluid_file_renderer_t dev  ) 

Write period_size samples to file.

Parameters:
dev File renderer instance
Returns:
FLUID_OK or FLUID_FAILED if an error occurred
Since:
1.1.0

References FLUID_ERR, FLUID_FAILED, fluid_file_renderer_process_block(), FLUID_OK, fluid_synth_write_float(), and fluid_synth_write_s16().

Referenced by fluid_file_renderer_process_block().

FLUIDSYNTH_API void delete_fluid_file_renderer ( fluid_file_renderer_t dev  ) 

Close file and destroy a file renderer object.

Parameters:
dev File renderer object.
Since:
1.1.0

References delete_fluid_file_renderer(), and FLUID_WARN.

Referenced by delete_fluid_file_renderer(), and new_fluid_file_renderer().

Generated on Mon Sep 6 12:29:27 2010 for libfluidsynth by  doxygen 1.6.3