[][src]Type Definition fluidlite_sys::_bindgen_ty_1

type _bindgen_ty_1 = u32;

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.