libfluidsynth
1.1.11
|
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. More... | |
Functions | |
FLUIDSYNTH_API fluid_audio_driver_t * | new_fluid_audio_driver (fluid_settings_t *settings, fluid_synth_t *synth) |
Create a new audio driver. More... | |
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. More... | |
FLUIDSYNTH_API void | delete_fluid_audio_driver (fluid_audio_driver_t *driver) |
Deletes an audio driver instance. More... | |
FLUIDSYNTH_API fluid_file_renderer_t * | new_fluid_file_renderer (fluid_synth_t *synth) |
Create a new file renderer and open the file. More... | |
FLUIDSYNTH_API int | fluid_file_renderer_process_block (fluid_file_renderer_t *dev) |
Write period_size samples to file. More... | |
FLUIDSYNTH_API void | delete_fluid_file_renderer (fluid_file_renderer_t *dev) |
Close file and destroy a file renderer object. More... | |
FLUIDSYNTH_API int | fluid_file_set_encoding_quality (fluid_file_renderer_t *dev, double q) |
Set vbr encoding quality (only available with libsndfile support) More... | |
FLUIDSYNTH_API int | fluid_audio_driver_register (const char **adrivers) |
Registers audio drivers to use. More... | |
Functions for audio driver output.
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.
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 |
FLUIDSYNTH_API fluid_audio_driver_t* new_fluid_audio_driver | ( | fluid_settings_t * | settings, |
fluid_synth_t * | synth | ||
) |
Create a new audio driver.
settings | Configuration settings used to select and create the audio driver. |
synth | Synthesizer instance for which the audio driver is created for. |
Creates a new audio driver for a given 'synth' instance with a defined set of configuration 'settings'.
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.
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' |
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().
References FLUID_DBG.
FLUIDSYNTH_API void delete_fluid_audio_driver | ( | fluid_audio_driver_t * | driver | ) |
Deletes an audio driver instance.
driver | Audio driver instance to delete |
Shuts down an audio driver and deletes its instance.
FLUIDSYNTH_API fluid_file_renderer_t* new_fluid_file_renderer | ( | fluid_synth_t * | synth | ) |
Create a new file renderer and open the file.
synth | The synth that creates audio data. |
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:
References delete_fluid_file_renderer(), FLUID_ERR, fluid_settings_dupstr(), fluid_settings_getint(), and fluid_settings_getnum().
FLUIDSYNTH_API int fluid_file_renderer_process_block | ( | fluid_file_renderer_t * | dev | ) |
Write period_size samples to file.
dev | File renderer instance |
References FLUID_ERR, FLUID_FAILED, FLUID_OK, fluid_synth_write_float(), fluid_synth_write_s16(), and FLUID_WARN.
FLUIDSYNTH_API void delete_fluid_file_renderer | ( | fluid_file_renderer_t * | dev | ) |
Close file and destroy a file renderer object.
dev | File renderer object. |
References FLUID_WARN.
Referenced by new_fluid_file_renderer().
FLUIDSYNTH_API int fluid_file_set_encoding_quality | ( | fluid_file_renderer_t * | r, |
double | q | ||
) |
Set vbr encoding quality (only available with libsndfile support)
dev | File renderer object. |
References FLUID_FAILED, and FLUID_OK.
FLUIDSYNTH_API int fluid_audio_driver_register | ( | const char ** | adrivers | ) |
Registers audio drivers to use.
When creating a settings instance with new_fluid_settings(), all audio drivers are initialized once. In the past this has caused segfaults and application crashes due to buggy soundcard drivers.
This function enables the user to only initialize specific audio drivers when settings instances are created. Therefore pass a NULL-terminated array of C-strings containing the names
of audio drivers to register for the usage with fluidsynth. The names
are the same as being used for the audio.driver
setting.
By default all audio drivers fluidsynth has been compiled with are registered, so calling this function is optional.
adrivers | NULL-terminated array of audio drivers to register. Pass NULL to register all available drivers. |
References FLUID_FAILED, and FLUID_OK.