Embeddable SoundFont synthesizer. More...
Data Structures | |
struct | _fluid_synth_channel_info_t |
Channel information structure for fluid_synth_get_channel_info(). More... | |
Defines | |
#define | FLUID_SYNTH_CHANNEL_INFO_NAME_SIZE 32 |
Length of channel info name field (including zero terminator). | |
#define | FLUID_REVERB_DEFAULT_ROOMSIZE 0.2f |
Default reverb room size. | |
#define | FLUID_REVERB_DEFAULT_DAMP 0.0f |
Default reverb damping. | |
#define | FLUID_REVERB_DEFAULT_WIDTH 0.5f |
Default reverb width. | |
#define | FLUID_REVERB_DEFAULT_LEVEL 0.9f |
Default reverb level. | |
#define | FLUID_CHORUS_DEFAULT_N 3 |
Default chorus voice count. | |
#define | FLUID_CHORUS_DEFAULT_LEVEL 2.0f |
Default chorus level. | |
#define | FLUID_CHORUS_DEFAULT_SPEED 0.3f |
Default chorus speed. | |
#define | FLUID_CHORUS_DEFAULT_DEPTH 8.0f |
Default chorus depth. | |
#define | FLUID_CHORUS_DEFAULT_TYPE FLUID_CHORUS_MOD_SINE |
Default chorus waveform type. | |
#define | FLUID_INTERP_DEFAULT FLUID_INTERP_4THORDER |
Default interpolation method from fluid_interp. | |
#define | FLUID_INTERP_HIGHEST FLUID_INTERP_7THORDER |
Highest interpolation method from fluid_interp. | |
Typedefs | |
typedef int(* | fluid_audio_callback_t )(fluid_synth_t *synth, int len, void *out1, int loff, int lincr, void *out2, int roff, int rincr) |
Type definition of the synthesizer's audio callback function. | |
Enumerations | |
enum | fluid_chorus_mod { FLUID_CHORUS_MOD_SINE = 0, FLUID_CHORUS_MOD_TRIANGLE = 1 } |
Chorus modulation waveform type. More... | |
enum | fluid_interp { FLUID_INTERP_NONE = 0, FLUID_INTERP_LINEAR = 1, FLUID_INTERP_4THORDER = 4, FLUID_INTERP_7THORDER = 7 } |
Synthesis interpolation method. More... | |
Functions | |
FLUIDSYNTH_API fluid_synth_t * | new_fluid_synth (fluid_settings_t *settings) |
Create new FluidSynth instance. | |
FLUIDSYNTH_API int | delete_fluid_synth (fluid_synth_t *synth) |
Delete a FluidSynth instance. | |
FLUIDSYNTH_API fluid_settings_t * | fluid_synth_get_settings (fluid_synth_t *synth) |
Get settings assigned to a synth. | |
FLUIDSYNTH_API int | fluid_synth_noteon (fluid_synth_t *synth, int chan, int key, int vel) |
Send a note-on event to a FluidSynth object. | |
FLUIDSYNTH_API int | fluid_synth_noteoff (fluid_synth_t *synth, int chan, int key) |
Send a note-off event to a FluidSynth object. | |
FLUIDSYNTH_API int | fluid_synth_cc (fluid_synth_t *synth, int chan, int ctrl, int val) |
Send a MIDI controller event on a MIDI channel. | |
FLUIDSYNTH_API int | fluid_synth_get_cc (fluid_synth_t *synth, int chan, int ctrl, int *pval) |
Get current MIDI controller value on a MIDI channel. | |
FLUIDSYNTH_API int | fluid_synth_sysex (fluid_synth_t *synth, const char *data, int len, char *response, int *response_len, int *handled, int dryrun) |
Process a MIDI SYSEX (system exclusive) message. | |
FLUIDSYNTH_API int | fluid_synth_pitch_bend (fluid_synth_t *synth, int chan, int val) |
Set the MIDI pitch bend controller value on a MIDI channel. | |
FLUIDSYNTH_API int | fluid_synth_get_pitch_bend (fluid_synth_t *synth, int chan, int *ppitch_bend) |
Get the MIDI pitch bend controller value on a MIDI channel. | |
FLUIDSYNTH_API int | fluid_synth_pitch_wheel_sens (fluid_synth_t *synth, int chan, int val) |
Set MIDI pitch wheel sensitivity on a MIDI channel. | |
FLUIDSYNTH_API int | fluid_synth_get_pitch_wheel_sens (fluid_synth_t *synth, int chan, int *pval) |
Get MIDI pitch wheel sensitivity on a MIDI channel. | |
FLUIDSYNTH_API int | fluid_synth_program_change (fluid_synth_t *synth, int chan, int program) |
Send a program change event on a MIDI channel. | |
FLUIDSYNTH_API int | fluid_synth_channel_pressure (fluid_synth_t *synth, int chan, int val) |
Set the MIDI channel pressure controller value. | |
FLUIDSYNTH_API int | fluid_synth_bank_select (fluid_synth_t *synth, int chan, unsigned int bank) |
Set instrument bank number on a MIDI channel. | |
FLUIDSYNTH_API int | fluid_synth_sfont_select (fluid_synth_t *synth, int chan, unsigned int sfont_id) |
Set SoundFont ID on a MIDI channel. | |
FLUIDSYNTH_API int | fluid_synth_program_select (fluid_synth_t *synth, int chan, unsigned int sfont_id, unsigned int bank_num, unsigned int preset_num) |
Select an instrument on a MIDI channel by SoundFont ID, bank and program numbers. | |
FLUIDSYNTH_API int | fluid_synth_program_select_by_sfont_name (fluid_synth_t *synth, int chan, const char *sfont_name, unsigned int bank_num, unsigned int preset_num) |
Select an instrument on a MIDI channel by SoundFont name, bank and program numbers. | |
FLUIDSYNTH_API int | fluid_synth_get_program (fluid_synth_t *synth, int chan, unsigned int *sfont_id, unsigned int *bank_num, unsigned int *preset_num) |
Get current SoundFont ID, bank number and program number for a MIDI channel. | |
FLUIDSYNTH_API int | fluid_synth_unset_program (fluid_synth_t *synth, int chan) |
Set the preset of a MIDI channel to an unassigned state. | |
FLUIDSYNTH_API int | fluid_synth_get_channel_info (fluid_synth_t *synth, int chan, fluid_synth_channel_info_t *info) |
Get information on the currently selected preset on a MIDI channel. | |
FLUIDSYNTH_API int | fluid_synth_program_reset (fluid_synth_t *synth) |
Resend a bank select and a program change for every channel. | |
FLUIDSYNTH_API int | fluid_synth_system_reset (fluid_synth_t *synth) |
Send MIDI system reset command (big red 'panic' button), turns off notes and resets controllers. | |
FLUIDSYNTH_API fluid_preset_t * | fluid_synth_get_channel_preset (fluid_synth_t *synth, int chan) |
Get active preset on a MIDI channel. | |
FLUIDSYNTH_API int | fluid_synth_start (fluid_synth_t *synth, unsigned int id, fluid_preset_t *preset, int audio_chan, int midi_chan, int key, int vel) |
Create and start voices using a preset and a MIDI note on event. | |
FLUIDSYNTH_API int | fluid_synth_stop (fluid_synth_t *synth, unsigned int id) |
Stop notes for a given note event voice ID. | |
FLUIDSYNTH_API int | fluid_synth_sfload (fluid_synth_t *synth, const char *filename, int reset_presets) |
Load a SoundFont file (filename is interpreted by SoundFont loaders). | |
FLUIDSYNTH_API int | fluid_synth_sfreload (fluid_synth_t *synth, unsigned int id) |
Reload a SoundFont. | |
FLUIDSYNTH_API int | fluid_synth_sfunload (fluid_synth_t *synth, unsigned int id, int reset_presets) |
Unload a SoundFont. | |
FLUIDSYNTH_API int | fluid_synth_add_sfont (fluid_synth_t *synth, fluid_sfont_t *sfont) |
Add a SoundFont. | |
FLUIDSYNTH_API void | fluid_synth_remove_sfont (fluid_synth_t *synth, fluid_sfont_t *sfont) |
Remove a SoundFont from the SoundFont stack without deleting it. | |
FLUIDSYNTH_API int | fluid_synth_sfcount (fluid_synth_t *synth) |
Count number of loaded SoundFont files. | |
FLUIDSYNTH_API fluid_sfont_t * | fluid_synth_get_sfont (fluid_synth_t *synth, unsigned int num) |
Get SoundFont by index. | |
FLUIDSYNTH_API fluid_sfont_t * | fluid_synth_get_sfont_by_id (fluid_synth_t *synth, unsigned int id) |
Get SoundFont by ID. | |
FLUIDSYNTH_API fluid_sfont_t * | fluid_synth_get_sfont_by_name (fluid_synth_t *synth, const char *name) |
Get SoundFont by name. | |
FLUIDSYNTH_API int | fluid_synth_set_bank_offset (fluid_synth_t *synth, int sfont_id, int offset) |
Offset the bank numbers of a loaded SoundFont. | |
FLUIDSYNTH_API int | fluid_synth_get_bank_offset (fluid_synth_t *synth, int sfont_id) |
Get bank offset of a loaded SoundFont. | |
FLUIDSYNTH_API void | fluid_synth_set_reverb (fluid_synth_t *synth, double roomsize, double damping, double width, double level) |
Set reverb parameters. | |
FLUIDSYNTH_API void | fluid_synth_set_reverb_on (fluid_synth_t *synth, int on) |
Enable or disable reverb effect. | |
FLUIDSYNTH_API double | fluid_synth_get_reverb_roomsize (fluid_synth_t *synth) |
Get reverb room size. | |
FLUIDSYNTH_API double | fluid_synth_get_reverb_damp (fluid_synth_t *synth) |
Get reverb damping. | |
FLUIDSYNTH_API double | fluid_synth_get_reverb_level (fluid_synth_t *synth) |
Get reverb level. | |
FLUIDSYNTH_API double | fluid_synth_get_reverb_width (fluid_synth_t *synth) |
Get reverb width. | |
FLUIDSYNTH_API void | fluid_synth_set_chorus (fluid_synth_t *synth, int nr, double level, double speed, double depth_ms, int type) |
Set chorus parameters. | |
FLUIDSYNTH_API void | fluid_synth_set_chorus_on (fluid_synth_t *synth, int on) |
Enable or disable chorus effect. | |
FLUIDSYNTH_API int | fluid_synth_get_chorus_nr (fluid_synth_t *synth) |
Get chorus voice number (delay line count) value. | |
FLUIDSYNTH_API double | fluid_synth_get_chorus_level (fluid_synth_t *synth) |
Get chorus level. | |
FLUIDSYNTH_API double | fluid_synth_get_chorus_speed_Hz (fluid_synth_t *synth) |
Get chorus speed in Hz. | |
FLUIDSYNTH_API double | fluid_synth_get_chorus_depth_ms (fluid_synth_t *synth) |
Get chorus depth. | |
FLUIDSYNTH_API int | fluid_synth_get_chorus_type (fluid_synth_t *synth) |
Get chorus waveform type. | |
FLUIDSYNTH_API int | fluid_synth_count_midi_channels (fluid_synth_t *synth) |
Get the total count of MIDI channels. | |
FLUIDSYNTH_API int | fluid_synth_count_audio_channels (fluid_synth_t *synth) |
Get the total count of audio channels. | |
FLUIDSYNTH_API int | fluid_synth_count_audio_groups (fluid_synth_t *synth) |
Get the total number of allocated audio channels. | |
FLUIDSYNTH_API int | fluid_synth_count_effects_channels (fluid_synth_t *synth) |
Get the total number of allocated effects channels. | |
FLUIDSYNTH_API void | fluid_synth_set_sample_rate (fluid_synth_t *synth, float sample_rate) |
Set sample rate of the synth. | |
FLUIDSYNTH_API void | fluid_synth_set_gain (fluid_synth_t *synth, float gain) |
Set synth output gain value. | |
FLUIDSYNTH_API float | fluid_synth_get_gain (fluid_synth_t *synth) |
Get synth output gain value. | |
FLUIDSYNTH_API int | fluid_synth_set_polyphony (fluid_synth_t *synth, int polyphony) |
Set synthesizer polyphony (max number of voices). | |
FLUIDSYNTH_API int | fluid_synth_get_polyphony (fluid_synth_t *synth) |
Get current synthesizer polyphony (max number of voices). | |
FLUIDSYNTH_API int | fluid_synth_get_active_voice_count (fluid_synth_t *synth) |
Get current number of active voices. | |
FLUIDSYNTH_API int | fluid_synth_get_internal_bufsize (fluid_synth_t *synth) |
Get the internal synthesis buffer size value. | |
FLUIDSYNTH_API int | fluid_synth_set_interp_method (fluid_synth_t *synth, int chan, int interp_method) |
Set synthesis interpolation method on one or all MIDI channels. | |
FLUIDSYNTH_API int | fluid_synth_set_gen (fluid_synth_t *synth, int chan, int param, float value) |
Set a SoundFont generator (effect) value on a MIDI channel in real-time. | |
FLUIDSYNTH_API int | fluid_synth_set_gen2 (fluid_synth_t *synth, int chan, int param, float value, int absolute, int normalized) |
Set a SoundFont generator (effect) value on a MIDI channel in real-time. | |
FLUIDSYNTH_API float | fluid_synth_get_gen (fluid_synth_t *synth, int chan, int param) |
Get generator value assigned to a MIDI channel. | |
FLUIDSYNTH_API int | fluid_synth_create_key_tuning (fluid_synth_t *synth, int bank, int prog, const char *name, const double *pitch) |
Set the tuning of the entire MIDI note scale. | |
FLUIDSYNTH_API int | fluid_synth_activate_key_tuning (fluid_synth_t *synth, int bank, int prog, const char *name, const double *pitch, int apply) |
Set the tuning of the entire MIDI note scale. | |
FLUIDSYNTH_API int | fluid_synth_create_octave_tuning (fluid_synth_t *synth, int bank, int prog, const char *name, const double *pitch) |
Apply an octave tuning to every octave in the MIDI note scale. | |
FLUIDSYNTH_API int | fluid_synth_activate_octave_tuning (fluid_synth_t *synth, int bank, int prog, const char *name, const double *pitch, int apply) |
Activate an octave tuning on every octave in the MIDI note scale. | |
FLUIDSYNTH_API int | fluid_synth_tune_notes (fluid_synth_t *synth, int bank, int prog, int len, const int *keys, const double *pitch, int apply) |
Set tuning values for one or more MIDI notes for an existing tuning. | |
FLUIDSYNTH_API int | fluid_synth_select_tuning (fluid_synth_t *synth, int chan, int bank, int prog) |
Select a tuning scale on a MIDI channel. | |
FLUIDSYNTH_API int | fluid_synth_activate_tuning (fluid_synth_t *synth, int chan, int bank, int prog, int apply) |
Activate a tuning scale on a MIDI channel. | |
FLUIDSYNTH_API int | fluid_synth_reset_tuning (fluid_synth_t *synth, int chan) |
Clear tuning scale on a MIDI channel (set it to the default well-tempered scale). | |
FLUIDSYNTH_API int | fluid_synth_deactivate_tuning (fluid_synth_t *synth, int chan, int apply) |
Clear tuning scale on a MIDI channel (use default equal tempered scale). | |
FLUIDSYNTH_API void | fluid_synth_tuning_iteration_start (fluid_synth_t *synth) |
Start tuning iteration. | |
FLUIDSYNTH_API int | fluid_synth_tuning_iteration_next (fluid_synth_t *synth, int *bank, int *prog) |
Advance to next tuning. | |
FLUIDSYNTH_API int | fluid_synth_tuning_dump (fluid_synth_t *synth, int bank, int prog, char *name, int len, double *pitch) |
Get the entire note tuning for a given MIDI bank and program. | |
FLUIDSYNTH_API double | fluid_synth_get_cpu_load (fluid_synth_t *synth) |
Get the synth CPU load value. | |
FLUIDSYNTH_API char * | fluid_synth_error (fluid_synth_t *synth) |
Get a textual representation of the last error. | |
FLUIDSYNTH_API int | fluid_synth_write_s16 (fluid_synth_t *synth, int len, void *lout, int loff, int lincr, void *rout, int roff, int rincr) |
Synthesize a block of 16 bit audio samples to audio buffers. | |
FLUIDSYNTH_API int | fluid_synth_write_float (fluid_synth_t *synth, int len, void *lout, int loff, int lincr, void *rout, int roff, int rincr) |
Synthesize a block of floating point audio samples to audio buffers. | |
FLUIDSYNTH_API int | fluid_synth_nwrite_float (fluid_synth_t *synth, int len, float **left, float **right, float **fx_left, float **fx_right) |
Synthesize a block of floating point audio to audio buffers. | |
FLUIDSYNTH_API int | fluid_synth_process (fluid_synth_t *synth, int len, int nin, float **in, int nout, float **out) |
Synthesize floating point audio to audio buffers. | |
FLUIDSYNTH_API void | fluid_synth_add_sfloader (fluid_synth_t *synth, fluid_sfloader_t *loader) |
Add a SoundFont loader interface. | |
FLUIDSYNTH_API fluid_voice_t * | fluid_synth_alloc_voice (fluid_synth_t *synth, fluid_sample_t *sample, int channum, int key, int vel) |
Allocate a synthesis voice. | |
FLUIDSYNTH_API void | fluid_synth_start_voice (fluid_synth_t *synth, fluid_voice_t *voice) |
Activate a voice previously allocated with fluid_synth_alloc_voice(). | |
FLUIDSYNTH_API void | fluid_synth_get_voicelist (fluid_synth_t *synth, fluid_voice_t *buf[], int bufsize, int ID) |
Get list of voices. | |
FLUIDSYNTH_API int | fluid_synth_handle_midi_event (void *data, fluid_midi_event_t *event) |
Handle MIDI event from MIDI router, used as a callback function. | |
FLUIDSYNTH_API void | fluid_synth_set_midi_router (fluid_synth_t *synth, fluid_midi_router_t *router) |
Assign a MIDI router to a synth. |
Embeddable SoundFont synthesizer.
You create a new synthesizer with new_fluid_synth() and you destroy if with delete_fluid_synth(). Use the settings structure to specify the synthesizer characteristics.
You have to load a SoundFont in order to hear any sound. For that you use the fluid_synth_sfload() function.
You can use the audio driver functions described below to open the audio device and create a background audio thread.
The API for sending MIDI events is probably what you expect: fluid_synth_noteon(), fluid_synth_noteoff(), ...
#define FLUID_INTERP_DEFAULT FLUID_INTERP_4THORDER |
Default interpolation method from fluid_interp.
#define FLUID_INTERP_HIGHEST FLUID_INTERP_7THORDER |
Highest interpolation method from fluid_interp.
typedef int(* fluid_audio_callback_t)(fluid_synth_t *synth, int len, void *out1, int loff, int lincr, void *out2, int roff, int rincr) |
Type definition of the synthesizer's audio callback function.
synth | FluidSynth instance | |
len | Count of audio frames to synthesize | |
out1 | Array to store left channel of audio to | |
loff | Offset index in 'out1' for first sample | |
lincr | Increment between samples stored to 'out1' | |
out2 | Array to store right channel of audio to | |
roff | Offset index in 'out2' for first sample | |
rincr | Increment between samples stored to 'out2' |
enum fluid_chorus_mod |
enum fluid_interp |
Synthesis interpolation method.
FLUIDSYNTH_API fluid_synth_t* new_fluid_synth | ( | fluid_settings_t * | settings | ) |
Create new FluidSynth instance.
settings | Configuration parameters to use (used directly). |
NOTE: The settings parameter is used directly and should not be modified or freed independently.
References delete_fluid_synth(), FLUID_ERR, FLUID_REVERB_DEFAULT_DAMP, FLUID_REVERB_DEFAULT_LEVEL, FLUID_REVERB_DEFAULT_ROOMSIZE, FLUID_REVERB_DEFAULT_WIDTH, fluid_settings_getint(), fluid_settings_getnum(), fluid_settings_setint(), fluid_settings_str_equal(), fluid_synth_add_sfloader(), fluid_synth_set_chorus_on(), fluid_synth_set_reverb_on(), fluid_synth_set_sample_rate(), FLUID_WARN, and new_fluid_synth().
Referenced by new_fluid_synth().
FLUIDSYNTH_API int delete_fluid_synth | ( | fluid_synth_t * | synth | ) |
Delete a FluidSynth instance.
synth | FluidSynth instance to delete |
NOTE: Other users of a synthesizer instance, such as audio and MIDI drivers, should be deleted prior to freeing the FluidSynth instance.
References delete_fluid_synth(), FLUID_OK, fluid_voice_is_playing(), and _fluid_sfont_info_t::sfont.
Referenced by delete_fluid_synth(), and new_fluid_synth().
FLUIDSYNTH_API fluid_settings_t* fluid_synth_get_settings | ( | fluid_synth_t * | synth | ) |
Get settings assigned to a synth.
synth | FluidSynth instance |
References fluid_synth_get_settings().
Referenced by fluid_synth_get_settings().
FLUIDSYNTH_API int fluid_synth_noteon | ( | fluid_synth_t * | synth, | |
int | chan, | |||
int | key, | |||
int | vel | |||
) |
Send a note-on event to a FluidSynth object.
synth | FluidSynth instance | |
chan | MIDI channel number (0 to MIDI channel count - 1) | |
key | MIDI note number (0-127) | |
vel | MIDI velocity (0-127, 0=noteoff) |
References FLUID_FAILED, and fluid_synth_noteon().
Referenced by fluid_synth_handle_midi_event(), and fluid_synth_noteon().
FLUIDSYNTH_API int fluid_synth_noteoff | ( | fluid_synth_t * | synth, | |
int | chan, | |||
int | key | |||
) |
Send a note-off event to a FluidSynth object.
synth | FluidSynth instance | |
chan | MIDI channel number (0 to MIDI channel count - 1) | |
key | MIDI note number (0-127) |
References FLUID_FAILED, and fluid_synth_noteoff().
Referenced by fluid_synth_handle_midi_event(), and fluid_synth_noteoff().
FLUIDSYNTH_API int fluid_synth_cc | ( | fluid_synth_t * | synth, | |
int | chan, | |||
int | num, | |||
int | val | |||
) |
Send a MIDI controller event on a MIDI channel.
synth | FluidSynth instance | |
chan | MIDI channel number (0 to MIDI channel count - 1) | |
num | MIDI controller number (0-127) | |
val | MIDI controller value (0-127) |
References FLUID_FAILED, FLUID_INFO, and fluid_synth_cc().
Referenced by fluid_synth_cc(), and fluid_synth_handle_midi_event().
FLUIDSYNTH_API int fluid_synth_get_cc | ( | fluid_synth_t * | synth, | |
int | chan, | |||
int | num, | |||
int * | pval | |||
) |
Get current MIDI controller value on a MIDI channel.
synth | FluidSynth instance | |
chan | MIDI channel number (0 to MIDI channel count - 1) | |
num | MIDI controller number (0-127) | |
pval | Location to store MIDI controller value (0-127) |
References FLUID_FAILED, FLUID_OK, and fluid_synth_get_cc().
Referenced by fluid_synth_get_cc().
FLUIDSYNTH_API int fluid_synth_sysex | ( | fluid_synth_t * | synth, | |
const char * | data, | |||
int | len, | |||
char * | response, | |||
int * | response_len, | |||
int * | handled, | |||
int | dryrun | |||
) |
Process a MIDI SYSEX (system exclusive) message.
synth | FluidSynth instance | |
data | Buffer containing SYSEX data (not including 0xF0 and 0xF7) | |
len | Length of data in buffer | |
response | Buffer to store response to or NULL to ignore | |
response_len | IN/OUT parameter, in: size of response buffer, out: amount of data written to response buffer (if FLUID_FAILED is returned and this value is non-zero, it indicates the response buffer is too small) | |
handled | Optional location to store boolean value if message was recognized and handled or not (set to TRUE if it was handled) | |
dryrun | TRUE to just do a dry run but not actually execute the SYSEX command (useful for checking if a SYSEX message would be handled) |
References FLUID_FAILED, FLUID_OK, and fluid_synth_sysex().
Referenced by fluid_synth_handle_midi_event(), and fluid_synth_sysex().
FLUIDSYNTH_API int fluid_synth_pitch_bend | ( | fluid_synth_t * | synth, | |
int | chan, | |||
int | val | |||
) |
Set the MIDI pitch bend controller value on a MIDI channel.
synth | FluidSynth instance | |
chan | MIDI channel number (0 to MIDI channel count - 1) | |
val | MIDI pitch bend value (0-16383 with 8192 being center) |
References FLUID_FAILED, FLUID_INFO, and fluid_synth_pitch_bend().
Referenced by fluid_synth_handle_midi_event(), and fluid_synth_pitch_bend().
FLUIDSYNTH_API int fluid_synth_get_pitch_bend | ( | fluid_synth_t * | synth, | |
int | chan, | |||
int * | ppitch_bend | |||
) |
Get the MIDI pitch bend controller value on a MIDI channel.
synth | FluidSynth instance | |
chan | MIDI channel number (0 to MIDI channel count - 1) | |
ppitch_bend | Location to store MIDI pitch bend value (0-16383 with 8192 being center) |
References FLUID_FAILED, FLUID_OK, and fluid_synth_get_pitch_bend().
Referenced by fluid_synth_get_pitch_bend().
FLUIDSYNTH_API int fluid_synth_pitch_wheel_sens | ( | fluid_synth_t * | synth, | |
int | chan, | |||
int | val | |||
) |
Set MIDI pitch wheel sensitivity on a MIDI channel.
synth | FluidSynth instance | |
chan | MIDI channel number (0 to MIDI channel count - 1) | |
val | Pitch wheel sensitivity value in semitones |
References FLUID_FAILED, FLUID_INFO, and fluid_synth_pitch_wheel_sens().
Referenced by fluid_synth_pitch_wheel_sens().
FLUIDSYNTH_API int fluid_synth_get_pitch_wheel_sens | ( | fluid_synth_t * | synth, | |
int | chan, | |||
int * | pval | |||
) |
Get MIDI pitch wheel sensitivity on a MIDI channel.
synth | FluidSynth instance | |
chan | MIDI channel number (0 to MIDI channel count - 1) | |
pval | Location to store pitch wheel sensitivity value in semitones |
References FLUID_FAILED, FLUID_OK, and fluid_synth_get_pitch_wheel_sens().
Referenced by fluid_synth_get_pitch_wheel_sens().
FLUIDSYNTH_API int fluid_synth_program_change | ( | fluid_synth_t * | synth, | |
int | chan, | |||
int | prognum | |||
) |
Send a program change event on a MIDI channel.
synth | FluidSynth instance | |
chan | MIDI channel number (0 to MIDI channel count - 1) | |
prognum | MIDI program number (0-127) |
References FLUID_FAILED, FLUID_INFO, fluid_synth_program_change(), FLUID_WARN, and _fluid_preset_t::sfont.
Referenced by fluid_synth_handle_midi_event(), fluid_synth_program_change(), fluid_synth_program_reset(), and fluid_synth_unset_program().
FLUIDSYNTH_API int fluid_synth_channel_pressure | ( | fluid_synth_t * | synth, | |
int | chan, | |||
int | val | |||
) |
Set the MIDI channel pressure controller value.
synth | FluidSynth instance | |
chan | MIDI channel number (0 to MIDI channel count - 1) | |
val | MIDI channel pressure value (0-127) |
References FLUID_FAILED, FLUID_INFO, and fluid_synth_channel_pressure().
Referenced by fluid_synth_channel_pressure(), and fluid_synth_handle_midi_event().
FLUIDSYNTH_API int fluid_synth_bank_select | ( | fluid_synth_t * | synth, | |
int | chan, | |||
unsigned int | bank | |||
) |
Set instrument bank number on a MIDI channel.
synth | FluidSynth instance | |
chan | MIDI channel number (0 to MIDI channel count - 1) | |
bank | MIDI bank number |
References FLUID_FAILED, FLUID_OK, and fluid_synth_bank_select().
Referenced by fluid_synth_bank_select().
FLUIDSYNTH_API int fluid_synth_sfont_select | ( | fluid_synth_t * | synth, | |
int | chan, | |||
unsigned int | sfont_id | |||
) |
Set SoundFont ID on a MIDI channel.
synth | FluidSynth instance | |
chan | MIDI channel number (0 to MIDI channel count - 1) | |
sfont_id | ID of a loaded SoundFont |
References FLUID_FAILED, FLUID_OK, and fluid_synth_sfont_select().
Referenced by fluid_synth_sfont_select().
FLUIDSYNTH_API int fluid_synth_program_select | ( | fluid_synth_t * | synth, | |
int | chan, | |||
unsigned int | sfont_id, | |||
unsigned int | bank_num, | |||
unsigned int | preset_num | |||
) |
Select an instrument on a MIDI channel by SoundFont ID, bank and program numbers.
synth | FluidSynth instance | |
chan | MIDI channel number (0 to MIDI channel count - 1) | |
sfont_id | ID of a loaded SoundFont | |
bank_num | MIDI bank number | |
preset_num | MIDI program number |
References FLUID_ERR, FLUID_FAILED, and fluid_synth_program_select().
Referenced by fluid_synth_program_select().
FLUIDSYNTH_API int fluid_synth_program_select_by_sfont_name | ( | fluid_synth_t * | synth, | |
int | chan, | |||
const char * | sfont_name, | |||
unsigned int | bank_num, | |||
unsigned int | preset_num | |||
) |
Select an instrument on a MIDI channel by SoundFont name, bank and program numbers.
synth | FluidSynth instance | |
chan | MIDI channel number (0 to MIDI channel count - 1) | |
sfont_name | Name of a loaded SoundFont | |
bank_num | MIDI bank number | |
preset_num | MIDI program number |
References FLUID_ERR, FLUID_FAILED, fluid_synth_program_select_by_sfont_name(), and _fluid_preset_t::sfont.
Referenced by fluid_synth_program_select_by_sfont_name().
FLUIDSYNTH_API int fluid_synth_get_program | ( | fluid_synth_t * | synth, | |
int | chan, | |||
unsigned int * | sfont_id, | |||
unsigned int * | bank_num, | |||
unsigned int * | preset_num | |||
) |
Get current SoundFont ID, bank number and program number for a MIDI channel.
synth | FluidSynth instance | |
chan | MIDI channel number (0 to MIDI channel count - 1) | |
sfont_id | Location to store SoundFont ID | |
bank_num | Location to store MIDI bank number | |
preset_num | Location to store MIDI program number |
References FLUID_FAILED, FLUID_OK, and fluid_synth_get_program().
Referenced by fluid_synth_get_program().
FLUIDSYNTH_API int fluid_synth_unset_program | ( | fluid_synth_t * | synth, | |
int | chan | |||
) |
Set the preset of a MIDI channel to an unassigned state.
synth | FluidSynth instance | |
chan | MIDI channel number (0 to MIDI channel count - 1) |
Note: Channel retains its SoundFont ID and bank numbers, while the program number is set to an "unset" state. MIDI program changes may re-assign a preset if one matches.
References FLUID_FAILED, fluid_synth_program_change(), and fluid_synth_unset_program().
Referenced by fluid_synth_unset_program().
FLUIDSYNTH_API int fluid_synth_get_channel_info | ( | fluid_synth_t * | synth, | |
int | chan, | |||
fluid_synth_channel_info_t * | info | |||
) |
Get information on the currently selected preset on a MIDI channel.
synth | FluidSynth instance | |
chan | MIDI channel number (0 to MIDI channel count - 1) | |
info | Caller supplied structure to fill with preset information |
References _fluid_synth_channel_info_t::assigned, _fluid_synth_channel_info_t::bank, FLUID_FAILED, FLUID_OK, FLUID_SYNTH_CHANNEL_INFO_NAME_SIZE, fluid_synth_get_channel_info(), _fluid_sfont_t::id, _fluid_synth_channel_info_t::name, _fluid_synth_channel_info_t::program, _fluid_preset_t::sfont, and _fluid_synth_channel_info_t::sfont_id.
Referenced by fluid_synth_get_channel_info().
FLUIDSYNTH_API int fluid_synth_program_reset | ( | fluid_synth_t * | synth | ) |
Resend a bank select and a program change for every channel.
synth | FluidSynth instance |
This function is called mainly after a SoundFont has been loaded, unloaded or reloaded.
References FLUID_OK, fluid_synth_program_change(), and fluid_synth_program_reset().
Referenced by fluid_synth_add_sfont(), fluid_synth_program_reset(), fluid_synth_remove_sfont(), fluid_synth_sfload(), and fluid_synth_sfunload().
FLUIDSYNTH_API int fluid_synth_system_reset | ( | fluid_synth_t * | synth | ) |
Send MIDI system reset command (big red 'panic' button), turns off notes and resets controllers.
synth | FluidSynth instance |
References FLUID_FAILED, and fluid_synth_system_reset().
Referenced by fluid_synth_handle_midi_event(), and fluid_synth_system_reset().
FLUIDSYNTH_API fluid_preset_t* fluid_synth_get_channel_preset | ( | fluid_synth_t * | synth, | |
int | chan | |||
) |
Get active preset on a MIDI channel.
synth | FluidSynth instance | |
chan | MIDI channel number (0 to MIDI channel count - 1) |
NOTE: Should only be called from within synthesis thread, which includes SoundFont loader preset noteon methods. Not thread safe otherwise.
References fluid_synth_get_channel_preset().
Referenced by fluid_synth_get_channel_preset().
FLUIDSYNTH_API int fluid_synth_start | ( | fluid_synth_t * | synth, | |
unsigned int | id, | |||
fluid_preset_t * | preset, | |||
int | audio_chan, | |||
int | chan, | |||
int | key, | |||
int | vel | |||
) |
Create and start voices using a preset and a MIDI note on event.
synth | FluidSynth instance | |
id | Voice group ID to use (can be used with fluid_synth_stop()). | |
preset | Preset to synthesize | |
audio_chan | Unused currently, set to 0 | |
chan | MIDI channel number (0 to MIDI channel count - 1) | |
key | MIDI note number (0-127) | |
vel | MIDI velocity number (1-127) |
NOTE: Should only be called from within synthesis thread, which includes SoundFont loader preset noteon method.
References FLUID_FAILED, and fluid_synth_start().
Referenced by fluid_synth_start().
FLUIDSYNTH_API int fluid_synth_stop | ( | fluid_synth_t * | synth, | |
unsigned int | id | |||
) |
Stop notes for a given note event voice ID.
synth | FluidSynth instance | |
id | Voice note event ID |
NOTE: In FluidSynth versions prior to 1.1.0 FLUID_FAILED would be returned if no matching voice note event ID was found. Versions after 1.1.0 only return FLUID_FAILED if an error occurs.
References FLUID_FAILED, FLUID_OK, and fluid_synth_stop().
Referenced by fluid_synth_stop().
FLUIDSYNTH_API int fluid_synth_sfload | ( | fluid_synth_t * | synth, | |
const char * | filename, | |||
int | reset_presets | |||
) |
Load a SoundFont file (filename is interpreted by SoundFont loaders).
The newly loaded SoundFont will be put on top of the SoundFont stack. Presets are searched starting from the SoundFont on the top of the stack, working the way down the stack until a preset is found.
synth | SoundFont instance | |
filename | File to load | |
reset_presets | TRUE to re-assign presets for all MIDI channels |
References FLUID_ERR, FLUID_FAILED, fluid_synth_program_reset(), fluid_synth_sfload(), _fluid_sfont_t::id, and _fluid_sfont_info_t::sfont.
Referenced by fluid_synth_sfload().
FLUIDSYNTH_API int fluid_synth_sfreload | ( | fluid_synth_t * | synth, | |
unsigned int | id | |||
) |
Reload a SoundFont.
The SoundFont retains its ID and index on the SoundFont stack.
synth | SoundFont instance | |
id | ID of SoundFont to reload |
References FLUID_ERR, FLUID_FAILED, FLUID_OK, fluid_synth_sfreload(), fluid_synth_sfunload(), _fluid_sfont_t::id, and _fluid_sfont_info_t::sfont.
Referenced by fluid_synth_sfreload().
FLUIDSYNTH_API int fluid_synth_sfunload | ( | fluid_synth_t * | synth, | |
unsigned int | id, | |||
int | reset_presets | |||
) |
Unload a SoundFont.
synth | SoundFont instance | |
id | ID of SoundFont to unload | |
reset_presets | TRUE to re-assign presets for all MIDI channels |
References FLUID_ERR, FLUID_FAILED, FLUID_OK, fluid_synth_program_reset(), fluid_synth_sfunload(), and _fluid_sfont_info_t::sfont.
Referenced by fluid_synth_sfreload(), and fluid_synth_sfunload().
FLUIDSYNTH_API int fluid_synth_add_sfont | ( | fluid_synth_t * | synth, | |
fluid_sfont_t * | sfont | |||
) |
Add a SoundFont.
The SoundFont will be added to the top of the SoundFont stack.
synth | FluidSynth instance | |
sfont | SoundFont to add |
References FLUID_FAILED, fluid_synth_add_sfont(), fluid_synth_program_reset(), and _fluid_sfont_t::id.
Referenced by fluid_synth_add_sfont().
FLUIDSYNTH_API void fluid_synth_remove_sfont | ( | fluid_synth_t * | synth, | |
fluid_sfont_t * | sfont | |||
) |
Remove a SoundFont from the SoundFont stack without deleting it.
synth | FluidSynth instance | |
sfont | SoundFont to remove |
SoundFont is not freed and is left as the responsibility of the caller.
NOTE: The SoundFont should only be freed after there are no presets referencing it. This can only be ensured by the SoundFont loader and therefore this function should not normally be used.
References fluid_synth_program_reset(), fluid_synth_remove_sfont(), and _fluid_sfont_info_t::sfont.
Referenced by fluid_synth_remove_sfont().
FLUIDSYNTH_API int fluid_synth_sfcount | ( | fluid_synth_t * | synth | ) |
Count number of loaded SoundFont files.
synth | FluidSynth instance |
References fluid_synth_sfcount().
Referenced by fluid_synth_sfcount().
FLUIDSYNTH_API fluid_sfont_t* fluid_synth_get_sfont | ( | fluid_synth_t * | synth, | |
unsigned int | num | |||
) |
Get SoundFont by index.
synth | FluidSynth instance | |
num | SoundFont index on the stack (starting from 0 for top of stack). |
NOTE: Caller should be certain that SoundFont is not deleted (unloaded) for the duration of use of the returned pointer.
References fluid_synth_get_sfont().
Referenced by fluid_synth_get_sfont().
FLUIDSYNTH_API fluid_sfont_t* fluid_synth_get_sfont_by_id | ( | fluid_synth_t * | synth, | |
unsigned int | id | |||
) |
Get SoundFont by ID.
synth | FluidSynth instance | |
id | SoundFont ID |
NOTE: Caller should be certain that SoundFont is not deleted (unloaded) for the duration of use of the returned pointer.
References fluid_synth_get_sfont_by_id().
Referenced by fluid_synth_get_sfont_by_id().
FLUIDSYNTH_API fluid_sfont_t* fluid_synth_get_sfont_by_name | ( | fluid_synth_t * | synth, | |
const char * | name | |||
) |
Get SoundFont by name.
synth | FluidSynth instance | |
name | Name of SoundFont |
NOTE: Caller should be certain that SoundFont is not deleted (unloaded) for the duration of use of the returned pointer.
References fluid_synth_get_sfont_by_name().
Referenced by fluid_synth_get_sfont_by_name().
FLUIDSYNTH_API int fluid_synth_set_bank_offset | ( | fluid_synth_t * | synth, | |
int | sfont_id, | |||
int | offset | |||
) |
Offset the bank numbers of a loaded SoundFont.
synth | FluidSynth instance | |
sfont_id | ID of a loaded SoundFont | |
offset | Bank offset value to apply to all instruments |
References _fluid_sfont_info_t::bankofs, FLUID_ERR, FLUID_FAILED, FLUID_OK, fluid_synth_set_bank_offset(), and _fluid_sfont_info_t::sfont.
Referenced by fluid_synth_set_bank_offset().
FLUIDSYNTH_API int fluid_synth_get_bank_offset | ( | fluid_synth_t * | synth, | |
int | sfont_id | |||
) |
Get bank offset of a loaded SoundFont.
synth | FluidSynth instance | |
sfont_id | ID of a loaded SoundFont |
References _fluid_sfont_info_t::bankofs, FLUID_ERR, fluid_synth_get_bank_offset(), and _fluid_sfont_info_t::sfont.
Referenced by fluid_synth_get_bank_offset().
FLUIDSYNTH_API void fluid_synth_set_reverb | ( | fluid_synth_t * | synth, | |
double | roomsize, | |||
double | damping, | |||
double | width, | |||
double | level | |||
) |
Set reverb parameters.
synth | FluidSynth instance | |
roomsize | Reverb room size value (0.0-1.2) | |
damping | Reverb damping value (0.0-1.0) | |
width | Reverb width value (0.0-100.0) | |
level | Reverb level value (0.0-1.0) |
NOTE: Not realtime safe and therefore should not be called from synthesis context at the risk of stalling audio output.
References fluid_synth_set_reverb().
Referenced by fluid_synth_set_reverb().
FLUIDSYNTH_API void fluid_synth_set_reverb_on | ( | fluid_synth_t * | synth, | |
int | on | |||
) |
Enable or disable reverb effect.
synth | FluidSynth instance | |
on | TRUE to enable reverb, FALSE to disable |
References fluid_synth_set_reverb_on().
Referenced by fluid_synth_set_reverb_on(), and new_fluid_synth().
FLUIDSYNTH_API double fluid_synth_get_reverb_roomsize | ( | fluid_synth_t * | synth | ) |
Get reverb room size.
synth | FluidSynth instance |
References fluid_synth_get_reverb_roomsize().
Referenced by fluid_synth_get_reverb_roomsize().
FLUIDSYNTH_API double fluid_synth_get_reverb_damp | ( | fluid_synth_t * | synth | ) |
Get reverb damping.
synth | FluidSynth instance |
References fluid_synth_get_reverb_damp().
Referenced by fluid_synth_get_reverb_damp().
FLUIDSYNTH_API double fluid_synth_get_reverb_level | ( | fluid_synth_t * | synth | ) |
Get reverb level.
synth | FluidSynth instance |
References fluid_synth_get_reverb_level().
Referenced by fluid_synth_get_reverb_level().
FLUIDSYNTH_API double fluid_synth_get_reverb_width | ( | fluid_synth_t * | synth | ) |
Get reverb width.
synth | FluidSynth instance |
References fluid_synth_get_reverb_width().
Referenced by fluid_synth_get_reverb_width().
FLUIDSYNTH_API void fluid_synth_set_chorus | ( | fluid_synth_t * | synth, | |
int | nr, | |||
double | level, | |||
double | speed, | |||
double | depth_ms, | |||
int | type | |||
) |
Set chorus parameters.
synth | FluidSynth instance | |
nr | Chorus voice count (0-99, CPU time consumption proportional to this value) | |
level | Chorus level (0.0-1.0) | |
speed | Chorus speed in Hz (0.29-5.0) | |
depth_ms | Chorus depth (max value depends on synth sample rate, 0.0-21.0 is safe for sample rate values up to 96KHz) | |
type | Chorus waveform type (fluid_chorus_mod) |
NOTE: Not realtime safe and therefore should not be called from synthesis context at the risk of stalling audio output.
References fluid_synth_set_chorus().
Referenced by fluid_synth_set_chorus().
FLUIDSYNTH_API void fluid_synth_set_chorus_on | ( | fluid_synth_t * | synth, | |
int | on | |||
) |
Enable or disable chorus effect.
synth | FluidSynth instance | |
on | TRUE to enable chorus, FALSE to disable |
References fluid_synth_set_chorus_on().
Referenced by fluid_synth_set_chorus_on(), and new_fluid_synth().
FLUIDSYNTH_API int fluid_synth_get_chorus_nr | ( | fluid_synth_t * | synth | ) |
Get chorus voice number (delay line count) value.
synth | FluidSynth instance |
References fluid_synth_get_chorus_nr().
Referenced by fluid_synth_get_chorus_nr().
FLUIDSYNTH_API double fluid_synth_get_chorus_level | ( | fluid_synth_t * | synth | ) |
Get chorus level.
synth | FluidSynth instance |
References fluid_synth_get_chorus_level().
Referenced by fluid_synth_get_chorus_level().
FLUIDSYNTH_API double fluid_synth_get_chorus_speed_Hz | ( | fluid_synth_t * | synth | ) |
Get chorus speed in Hz.
synth | FluidSynth instance |
References fluid_synth_get_chorus_speed_Hz().
Referenced by fluid_synth_get_chorus_speed_Hz().
FLUIDSYNTH_API double fluid_synth_get_chorus_depth_ms | ( | fluid_synth_t * | synth | ) |
Get chorus depth.
synth | FluidSynth instance |
References fluid_synth_get_chorus_depth_ms().
Referenced by fluid_synth_get_chorus_depth_ms().
FLUIDSYNTH_API int fluid_synth_get_chorus_type | ( | fluid_synth_t * | synth | ) |
Get chorus waveform type.
synth | FluidSynth instance |
References fluid_synth_get_chorus_type().
Referenced by fluid_synth_get_chorus_type().
FLUIDSYNTH_API int fluid_synth_count_midi_channels | ( | fluid_synth_t * | synth | ) |
Get the total count of MIDI channels.
synth | FluidSynth instance |
References fluid_synth_count_midi_channels().
Referenced by fluid_synth_count_midi_channels().
FLUIDSYNTH_API int fluid_synth_count_audio_channels | ( | fluid_synth_t * | synth | ) |
Get the total count of audio channels.
synth | FluidSynth instance |
References fluid_synth_count_audio_channels().
Referenced by fluid_synth_count_audio_channels().
FLUIDSYNTH_API int fluid_synth_count_audio_groups | ( | fluid_synth_t * | synth | ) |
Get the total number of allocated audio channels.
Usually identical to the number of audio channels. Can be employed by LADSPA effects subsystem.
synth | FluidSynth instance |
References fluid_synth_count_audio_groups().
Referenced by fluid_synth_count_audio_groups().
FLUIDSYNTH_API int fluid_synth_count_effects_channels | ( | fluid_synth_t * | synth | ) |
Get the total number of allocated effects channels.
synth | FluidSynth instance |
References fluid_synth_count_effects_channels().
Referenced by fluid_synth_count_effects_channels().
FLUIDSYNTH_API void fluid_synth_set_sample_rate | ( | fluid_synth_t * | synth, | |
float | sample_rate | |||
) |
Set sample rate of the synth.
NOTE: This function is currently experimental and should only be used when no voices or notes are active, and before any rendering calls.
synth | FluidSynth instance | |
sample_rate | New sample rate (Hz) |
References fluid_settings_getint(), and fluid_synth_set_sample_rate().
Referenced by fluid_synth_set_sample_rate(), and new_fluid_synth().
FLUIDSYNTH_API void fluid_synth_set_gain | ( | fluid_synth_t * | synth, | |
float | gain | |||
) |
Set synth output gain value.
synth | FluidSynth instance | |
gain | Gain value (function clamps value to the range 0.0 to 10.0) |
References fluid_synth_set_gain().
Referenced by fluid_synth_set_gain().
FLUIDSYNTH_API float fluid_synth_get_gain | ( | fluid_synth_t * | synth | ) |
Get synth output gain value.
synth | FluidSynth instance |
References fluid_synth_get_gain().
Referenced by fluid_synth_get_gain().
FLUIDSYNTH_API int fluid_synth_set_polyphony | ( | fluid_synth_t * | synth, | |
int | polyphony | |||
) |
Set synthesizer polyphony (max number of voices).
synth | FluidSynth instance | |
polyphony | Polyphony to assign |
References FLUID_FAILED, and fluid_synth_set_polyphony().
Referenced by fluid_synth_set_polyphony().
FLUIDSYNTH_API int fluid_synth_get_polyphony | ( | fluid_synth_t * | synth | ) |
Get current synthesizer polyphony (max number of voices).
synth | FluidSynth instance |
References FLUID_FAILED, and fluid_synth_get_polyphony().
Referenced by fluid_synth_get_polyphony().
FLUIDSYNTH_API int fluid_synth_get_active_voice_count | ( | fluid_synth_t * | synth | ) |
Get current number of active voices.
synth | FluidSynth instance |
Note: To generate accurate continuous statistics of the voice count, caller should ensure this function is called synchronously with the audio synthesis process. This can be done in the new_fluid_audio_driver2() audio callback function for example.
References FLUID_FAILED, and fluid_synth_get_active_voice_count().
Referenced by fluid_synth_get_active_voice_count().
FLUIDSYNTH_API int fluid_synth_get_internal_bufsize | ( | fluid_synth_t * | synth | ) |
Get the internal synthesis buffer size value.
synth | FluidSynth instance |
Audio is synthesized this number of frames at a time. Defaults to 64 frames.
References fluid_synth_get_internal_bufsize().
Referenced by fluid_synth_get_internal_bufsize().
FLUIDSYNTH_API int fluid_synth_set_interp_method | ( | fluid_synth_t * | synth, | |
int | chan, | |||
int | interp_method | |||
) |
Set synthesis interpolation method on one or all MIDI channels.
synth | FluidSynth instance | |
chan | MIDI channel to set interpolation method on or -1 for all channels | |
interp_method | Interpolation method (fluid_interp) |
References FLUID_ERR, FLUID_FAILED, FLUID_OK, and fluid_synth_set_interp_method().
Referenced by fluid_synth_set_interp_method().
FLUIDSYNTH_API int fluid_synth_set_gen | ( | fluid_synth_t * | synth, | |
int | chan, | |||
int | param, | |||
float | value | |||
) |
Set a SoundFont generator (effect) value on a MIDI channel in real-time.
synth | FluidSynth instance | |
chan | MIDI channel number (0 to MIDI channel count - 1) | |
param | SoundFont generator ID (fluid_gen_type) | |
value | Offset generator value to assign to the MIDI channel |
Parameter numbers and ranges are described in the SoundFont 2.01 specification PDF, paragraph 8.1.3, page 48. See fluid_gen_type.
References FLUID_FAILED, FLUID_OK, fluid_synth_set_gen(), and GEN_LAST.
Referenced by fluid_synth_set_gen().
FLUIDSYNTH_API int fluid_synth_set_gen2 | ( | fluid_synth_t * | synth, | |
int | chan, | |||
int | param, | |||
float | value, | |||
int | absolute, | |||
int | normalized | |||
) |
Set a SoundFont generator (effect) value on a MIDI channel in real-time.
synth | FluidSynth instance | |
chan | MIDI channel number (0 to MIDI channel count - 1) | |
param | SoundFont generator ID (fluid_gen_type) | |
value | Offset or absolute generator value to assign to the MIDI channel | |
absolute | 0 to assign a relative value, non-zero to assign an absolute value | |
normalized | 0 if value is specified in the native units of the generator, non-zero to take the value as a 0.0-1.0 range and apply it to the valid generator effect range (scaled and shifted as necessary). |
This function allows for setting all effect parameters in real time on a MIDI channel. Setting absolute to non-zero will cause the value to override any generator values set in the instruments played on the MIDI channel. See SoundFont 2.01 spec, paragraph 8.1.3, page 48 for details on SoundFont generator parameters and valid ranges.
References FLUID_FAILED, FLUID_OK, fluid_synth_set_gen2(), and GEN_LAST.
Referenced by fluid_synth_set_gen2().
FLUIDSYNTH_API float fluid_synth_get_gen | ( | fluid_synth_t * | synth, | |
int | chan, | |||
int | param | |||
) |
Get generator value assigned to a MIDI channel.
synth | FluidSynth instance | |
chan | MIDI channel number (0 to MIDI channel count - 1) | |
param | SoundFont generator ID (fluid_gen_type) |
References FLUID_FAILED, fluid_synth_get_gen(), and GEN_LAST.
Referenced by fluid_synth_get_gen().
FLUIDSYNTH_API int fluid_synth_create_key_tuning | ( | fluid_synth_t * | synth, | |
int | bank, | |||
int | prog, | |||
const char * | name, | |||
const double * | pitch | |||
) |
Set the tuning of the entire MIDI note scale.
synth | FluidSynth instance | |
bank | Tuning bank number (0-127), not related to MIDI instrument bank | |
prog | Tuning preset number (0-127), not related to MIDI instrument program | |
name | Label name for this tuning | |
pitch | Array of pitch values (length of 128, each value is number of cents, for example normally note 0 is 0.0, 1 is 100.0, 60 is 6000.0, etc). Pass NULL to create a well-tempered (normal) scale. |
NOTE: Tuning is not applied in realtime to existing notes of the replaced tuning (if any), use fluid_synth_activate_key_tuning() instead to specify this behavior.
References fluid_synth_activate_key_tuning(), and fluid_synth_create_key_tuning().
Referenced by fluid_synth_create_key_tuning().
FLUIDSYNTH_API int fluid_synth_activate_key_tuning | ( | fluid_synth_t * | synth, | |
int | bank, | |||
int | prog, | |||
const char * | name, | |||
const double * | pitch, | |||
int | apply | |||
) |
Set the tuning of the entire MIDI note scale.
synth | FluidSynth instance | |
bank | Tuning bank number (0-127), not related to MIDI instrument bank | |
prog | Tuning preset number (0-127), not related to MIDI instrument program | |
name | Label name for this tuning | |
pitch | Array of pitch values (length of 128, each value is number of cents, for example normally note 0 is 0.0, 1 is 100.0, 60 is 6000.0, etc). Pass NULL to create a well-tempered (normal) scale. | |
apply | TRUE to apply new tuning in realtime to existing notes which are using the replaced tuning (if any), FALSE otherwise |
References FLUID_FAILED, FLUID_OK, and fluid_synth_activate_key_tuning().
Referenced by fluid_synth_activate_key_tuning(), and fluid_synth_create_key_tuning().
FLUIDSYNTH_API int fluid_synth_create_octave_tuning | ( | fluid_synth_t * | synth, | |
int | bank, | |||
int | prog, | |||
const char * | name, | |||
const double * | pitch | |||
) |
Apply an octave tuning to every octave in the MIDI note scale.
synth | FluidSynth instance | |
bank | Tuning bank number (0-127), not related to MIDI instrument bank | |
prog | Tuning preset number (0-127), not related to MIDI instrument program | |
name | Label name for this tuning | |
pitch | Array of pitch values (length of 12 for each note of an octave starting at note C, values are number of offset cents to add to the normal tuning amount) |
NOTE: Tuning is not applied in realtime to existing notes of the replaced tuning (if any), use fluid_synth_activate_octave_tuning() instead to specify this behavior.
References fluid_synth_activate_octave_tuning(), and fluid_synth_create_octave_tuning().
Referenced by fluid_synth_create_octave_tuning().
FLUIDSYNTH_API int fluid_synth_activate_octave_tuning | ( | fluid_synth_t * | synth, | |
int | bank, | |||
int | prog, | |||
const char * | name, | |||
const double * | pitch, | |||
int | apply | |||
) |
Activate an octave tuning on every octave in the MIDI note scale.
synth | FluidSynth instance | |
bank | Tuning bank number (0-127), not related to MIDI instrument bank | |
prog | Tuning preset number (0-127), not related to MIDI instrument program | |
name | Label name for this tuning | |
pitch | Array of pitch values (length of 12 for each note of an octave starting at note C, values are number of offset cents to add to the normal tuning amount) | |
apply | TRUE to apply new tuning in realtime to existing notes which are using the replaced tuning (if any), FALSE otherwise |
References FLUID_FAILED, FLUID_OK, and fluid_synth_activate_octave_tuning().
Referenced by fluid_synth_activate_octave_tuning(), and fluid_synth_create_octave_tuning().
FLUIDSYNTH_API int fluid_synth_tune_notes | ( | fluid_synth_t * | synth, | |
int | bank, | |||
int | prog, | |||
int | len, | |||
const int * | key, | |||
const double * | pitch, | |||
int | apply | |||
) |
Set tuning values for one or more MIDI notes for an existing tuning.
synth | FluidSynth instance | |
bank | Tuning bank number (0-127), not related to MIDI instrument bank | |
prog | Tuning preset number (0-127), not related to MIDI instrument program | |
len | Number of MIDI notes to assign | |
key | Array of MIDI key numbers (length of 'len', values 0-127) | |
pitch | Array of pitch values (length of 'len', values are number of cents from MIDI note 0) | |
apply | TRUE to apply tuning change in realtime to existing notes using the specified tuning, FALSE otherwise |
NOTE: Prior to version 1.1.0 it was an error to specify a tuning that didn't already exist. Starting with 1.1.0, the default equal tempered scale will be used as a basis, if no tuning exists for the given bank and prog.
References FLUID_FAILED, FLUID_OK, and fluid_synth_tune_notes().
Referenced by fluid_synth_tune_notes().
FLUIDSYNTH_API int fluid_synth_select_tuning | ( | fluid_synth_t * | synth, | |
int | chan, | |||
int | bank, | |||
int | prog | |||
) |
Select a tuning scale on a MIDI channel.
synth | FluidSynth instance | |
chan | MIDI channel number (0 to MIDI channel count - 1) | |
bank | Tuning bank number (0-127), not related to MIDI instrument bank | |
prog | Tuning preset number (0-127), not related to MIDI instrument program |
NOTE: This function does NOT activate tuning in realtime, use fluid_synth_activate_tuning() instead to specify whether tuning change should cause existing notes to update.
NOTE: Prior to version 1.1.0 it was an error to select a tuning that didn't already exist. Starting with 1.1.0, a default equal tempered scale will be created, if no tuning exists for the given bank and prog.
References fluid_synth_activate_tuning(), and fluid_synth_select_tuning().
Referenced by fluid_synth_select_tuning().
FLUIDSYNTH_API int fluid_synth_activate_tuning | ( | fluid_synth_t * | synth, | |
int | chan, | |||
int | bank, | |||
int | prog, | |||
int | apply | |||
) |
Activate a tuning scale on a MIDI channel.
synth | FluidSynth instance | |
chan | MIDI channel number (0 to MIDI channel count - 1) | |
bank | Tuning bank number (0-127), not related to MIDI instrument bank | |
prog | Tuning preset number (0-127), not related to MIDI instrument program | |
apply | TRUE to apply tuning change to active notes, FALSE otherwise |
NOTE: A default equal tempered scale will be created, if no tuning exists on the given bank and prog.
References FLUID_FAILED, FLUID_OK, and fluid_synth_activate_tuning().
Referenced by fluid_synth_activate_tuning(), and fluid_synth_select_tuning().
FLUIDSYNTH_API int fluid_synth_reset_tuning | ( | fluid_synth_t * | synth, | |
int | chan | |||
) |
Clear tuning scale on a MIDI channel (set it to the default well-tempered scale).
synth | FluidSynth instance | |
chan | MIDI channel number (0 to MIDI channel count - 1) |
NOTE: This function does NOT activate tuning change in realtime, use fluid_synth_deactivate_tuning() instead to specify whether tuning change should cause existing notes to update.
References fluid_synth_deactivate_tuning(), and fluid_synth_reset_tuning().
Referenced by fluid_synth_reset_tuning().
FLUIDSYNTH_API int fluid_synth_deactivate_tuning | ( | fluid_synth_t * | synth, | |
int | chan, | |||
int | apply | |||
) |
Clear tuning scale on a MIDI channel (use default equal tempered scale).
synth | FluidSynth instance | |
chan | MIDI channel number (0 to MIDI channel count - 1) | |
apply | TRUE to apply tuning change to active notes, FALSE otherwise |
References FLUID_FAILED, FLUID_OK, and fluid_synth_deactivate_tuning().
Referenced by fluid_synth_deactivate_tuning(), and fluid_synth_reset_tuning().
FLUIDSYNTH_API void fluid_synth_tuning_iteration_start | ( | fluid_synth_t * | synth | ) |
Start tuning iteration.
synth | FluidSynth instance |
References fluid_synth_tuning_iteration_start().
Referenced by fluid_synth_tuning_iteration_start().
FLUIDSYNTH_API int fluid_synth_tuning_iteration_next | ( | fluid_synth_t * | synth, | |
int * | bank, | |||
int * | prog | |||
) |
Advance to next tuning.
synth | FluidSynth instance | |
bank | Location to store MIDI bank number of next tuning scale | |
prog | Location to store MIDI program number of next tuning scale |
References fluid_synth_tuning_iteration_next().
Referenced by fluid_synth_tuning_iteration_next().
FLUIDSYNTH_API int fluid_synth_tuning_dump | ( | fluid_synth_t * | synth, | |
int | bank, | |||
int | prog, | |||
char * | name, | |||
int | len, | |||
double * | pitch | |||
) |
Get the entire note tuning for a given MIDI bank and program.
synth | FluidSynth instance | |
bank | MIDI bank number of tuning | |
prog | MIDI program number of tuning | |
name | Location to store tuning name or NULL to ignore | |
len | Maximum number of chars to store to 'name' (including NULL byte) | |
pitch | Array to store tuning scale to or NULL to ignore (len of 128) |
References FLUID_FAILED, FLUID_OK, and fluid_synth_tuning_dump().
Referenced by fluid_synth_tuning_dump().
FLUIDSYNTH_API double fluid_synth_get_cpu_load | ( | fluid_synth_t * | synth | ) |
Get the synth CPU load value.
synth | FluidSynth instance |
References fluid_synth_get_cpu_load().
Referenced by fluid_synth_get_cpu_load().
FLUIDSYNTH_API char* fluid_synth_error | ( | fluid_synth_t * | synth | ) |
Get a textual representation of the last error.
synth | FluidSynth instance |
References fluid_synth_error().
Referenced by fluid_synth_error().
FLUIDSYNTH_API int fluid_synth_write_s16 | ( | fluid_synth_t * | synth, | |
int | len, | |||
void * | lout, | |||
int | loff, | |||
int | lincr, | |||
void * | rout, | |||
int | roff, | |||
int | rincr | |||
) |
Synthesize a block of 16 bit audio samples to audio buffers.
synth | FluidSynth instance | |
len | Count of audio frames to synthesize | |
lout | Array of 16 bit words to store left channel of audio | |
loff | Offset index in 'lout' for first sample | |
lincr | Increment between samples stored to 'lout' | |
rout | Array of 16 bit words to store right channel of audio | |
roff | Offset index in 'rout' for first sample | |
rincr | Increment between samples stored to 'rout' |
Useful for storing interleaved stereo (lout = rout, loff = 0, roff = 1, lincr = 2, rincr = 2).
NOTE: Should only be called from synthesis thread. NOTE: Dithering is performed when converting from internal floating point to 16 bit audio.
References fluid_synth_write_s16().
Referenced by fluid_file_renderer_process_block(), and fluid_synth_write_s16().
FLUIDSYNTH_API int fluid_synth_write_float | ( | fluid_synth_t * | synth, | |
int | len, | |||
void * | lout, | |||
int | loff, | |||
int | lincr, | |||
void * | rout, | |||
int | roff, | |||
int | rincr | |||
) |
Synthesize a block of floating point audio samples to audio buffers.
synth | FluidSynth instance | |
len | Count of audio frames to synthesize | |
lout | Array of floats to store left channel of audio | |
loff | Offset index in 'lout' for first sample | |
lincr | Increment between samples stored to 'lout' | |
rout | Array of floats to store right channel of audio | |
roff | Offset index in 'rout' for first sample | |
rincr | Increment between samples stored to 'rout' |
Useful for storing interleaved stereo (lout = rout, loff = 0, roff = 1, lincr = 2, rincr = 2).
NOTE: Should only be called from synthesis thread.
References FLUID_OK, and fluid_synth_write_float().
Referenced by fluid_file_renderer_process_block(), fluid_synth_process(), and fluid_synth_write_float().
FLUIDSYNTH_API int fluid_synth_nwrite_float | ( | fluid_synth_t * | synth, | |
int | len, | |||
float ** | left, | |||
float ** | right, | |||
float ** | fx_left, | |||
float ** | fx_right | |||
) |
Synthesize a block of floating point audio to audio buffers.
synth | FluidSynth instance | |
len | Count of audio frames to synthesize | |
left | Array of floats to store left channel of audio (len in size) | |
right | Array of floats to store right channel of audio (len in size) | |
fx_left | Not currently used | |
fx_right | Not currently used |
NOTE: Should only be called from synthesis thread.
References FLUID_OK, and fluid_synth_nwrite_float().
Referenced by fluid_synth_nwrite_float(), and fluid_synth_process().
FLUIDSYNTH_API int fluid_synth_process | ( | fluid_synth_t * | synth, | |
int | len, | |||
int | nin, | |||
float ** | in, | |||
int | nout, | |||
float ** | out | |||
) |
Synthesize floating point audio to audio buffers.
synth | FluidSynth instance | |
len | Count of audio frames to synthesize | |
nin | Ignored | |
in | Ignored | |
nout | Count of arrays in 'out' | |
out | Array of arrays to store audio to |
This function implements the default interface defined in fluidsynth/audio.h. NOTE: Should only be called from synthesis thread.
References FLUID_OK, fluid_synth_nwrite_float(), fluid_synth_process(), and fluid_synth_write_float().
Referenced by fluid_synth_process().
FLUIDSYNTH_API void fluid_synth_add_sfloader | ( | fluid_synth_t * | synth, | |
fluid_sfloader_t * | loader | |||
) |
Add a SoundFont loader interface.
synth | FluidSynth instance | |
loader | Loader API structure, used directly and should remain allocated as long as the synth instance is used. |
SoundFont loaders are used to add custom instrument loading to FluidSynth. The caller supplied functions for loading files, allocating presets, retrieving information on them and synthesizing note-on events. Using this method even non SoundFont instruments can be synthesized, although limited to the SoundFont synthesis model.
NOTE: Should only be called before any SoundFont files are loaded.
References fluid_synth_add_sfloader().
Referenced by fluid_synth_add_sfloader(), and new_fluid_synth().
FLUIDSYNTH_API fluid_voice_t* fluid_synth_alloc_voice | ( | fluid_synth_t * | synth, | |
fluid_sample_t * | sample, | |||
int | chan, | |||
int | key, | |||
int | vel | |||
) |
Allocate a synthesis voice.
synth | FluidSynth instance | |
sample | Sample to assign to the voice | |
chan | MIDI channel number (0 to MIDI channel count - 1) | |
key | MIDI note number for the voice (0-127) | |
vel | MIDI velocity for the voice (0-127) |
This function is called by a SoundFont's preset in response to a noteon event. The returned voice comes with default modulators and generators. A single noteon event may create any number of voices, when the preset is layered.
NOTE: Should only be called from within synthesis thread, which includes SoundFont loader preset noteon method.
References FLUID_DBG, FLUID_INFO, FLUID_OK, fluid_synth_alloc_voice(), FLUID_VOICE_DEFAULT, and FLUID_WARN.
Referenced by fluid_synth_alloc_voice().
FLUIDSYNTH_API void fluid_synth_start_voice | ( | fluid_synth_t * | synth, | |
fluid_voice_t * | voice | |||
) |
Activate a voice previously allocated with fluid_synth_alloc_voice().
synth | FluidSynth instance | |
voice | Voice to activate |
This function is called by a SoundFont's preset in response to a noteon event. Exclusive classes are processed here.
NOTE: Should only be called from within synthesis thread, which includes SoundFont loader preset noteon method.
References fluid_synth_start_voice().
Referenced by fluid_synth_start_voice().
FLUIDSYNTH_API void fluid_synth_get_voicelist | ( | fluid_synth_t * | synth, | |
fluid_voice_t * | buf[], | |||
int | bufsize, | |||
int | id | |||
) |
Get list of voices.
synth | FluidSynth instance | |
buf | Array to store voices to (NULL terminated if not filled completely) | |
bufsize | Count of indexes in buf | |
id | Voice ID to search for or < 0 to return list of all playing voices |
NOTE: Should only be called from within synthesis thread, which includes SoundFont loader preset noteon methods. Voices are only guaranteed to remain unchanged until next synthesis process iteration.
References fluid_synth_get_voicelist().
Referenced by fluid_synth_get_voicelist().
FLUIDSYNTH_API int fluid_synth_handle_midi_event | ( | void * | data, | |
fluid_midi_event_t * | event | |||
) |
Handle MIDI event from MIDI router, used as a callback function.
data | FluidSynth instance | |
event | MIDI event to handle |
References FLUID_FAILED, fluid_midi_event_get_channel(), fluid_midi_event_get_control(), fluid_midi_event_get_key(), fluid_midi_event_get_pitch(), fluid_midi_event_get_program(), fluid_midi_event_get_type(), fluid_midi_event_get_value(), fluid_midi_event_get_velocity(), fluid_synth_cc(), fluid_synth_channel_pressure(), fluid_synth_handle_midi_event(), fluid_synth_noteoff(), fluid_synth_noteon(), fluid_synth_pitch_bend(), fluid_synth_program_change(), fluid_synth_sysex(), and fluid_synth_system_reset().
Referenced by fluid_midi_dump_postrouter(), and fluid_synth_handle_midi_event().
FLUIDSYNTH_API void fluid_synth_set_midi_router | ( | fluid_synth_t * | synth, | |
fluid_midi_router_t * | router | |||
) |
Assign a MIDI router to a synth.
synth | FluidSynth instance | |
router | MIDI router to assign to the synth |
NOTE: This should only be done once and prior to using the synth.
References fluid_synth_set_midi_router().
Referenced by fluid_synth_set_midi_router().