Go to the source code of this file.
Data Structures | |
struct | _fluid_sfloader_t |
struct | _fluid_sfont_t |
struct | _fluid_preset_t |
struct | _fluid_sample_t |
Defines | |
#define | fluid_sfont_get_id(_sf) ((_sf)->id) |
#define | fluid_sample_refcount(_sample) ((_sample)->refcount) |
#define | FLUID_SAMPLETYPE_MONO 1 |
Sample types. | |
#define | FLUID_SAMPLETYPE_RIGHT 2 |
#define | FLUID_SAMPLETYPE_LEFT 4 |
#define | FLUID_SAMPLETYPE_LINKED 8 |
#define | FLUID_SAMPLETYPE_ROM 0x8000 |
Enumerations | |
enum | { FLUID_PRESET_SELECTED, FLUID_PRESET_UNSELECTED, FLUID_SAMPLE_DONE } |
SoundFont plugins. More... |
#define fluid_sample_refcount | ( | _sample | ) | ((_sample)->refcount) |
anonymous enum |
SoundFont plugins.
It is possible to add new SoundFont loaders to the synthesizer. The API uses a couple of "interfaces" (structures with callback functions): fluid_sfloader_t, fluid_sfont_t, and fluid_preset_t.
To add a new SoundFont loader to the synthesizer, call fluid_synth_add_sfloader() and pass a pointer to an fluid_sfloader_t structure. The important callback function in this structure is "load", which should try to load a file and returns a fluid_sfont_t structure, or NULL if it fails.
The fluid_sfont_t structure contains a callback to obtain the name of the soundfont. It contains two functions to iterate though the contained presets, and one function to obtain a preset corresponding to a bank and preset number. This function should return an fluid_preset_t structure.
The fluid_preset_t structure contains some functions to obtain information from the preset (name, bank, number). The most important callback is the noteon function. The noteon function should call fluid_synth_alloc_voice() for every sample that has to be played. fluid_synth_alloc_voice() expects a pointer to a fluid_sample_t structure and returns a pointer to the opaque fluid_voice_t structure. To set or increments the values of a generator, use fluid_voice_gen_{set,incr}. When you are finished initializing the voice call fluid_voice_start() to start playing the synthesis voice.