Main Page   Data Structures   File List   Data Fields   Globals  

synth.h File Reference

Go to the source code of this file.

Defines

#define FLUID_REVERB_DEFAULT_ROOMSIZE   0.2f
#define FLUID_REVERB_DEFAULT_DAMP   0.0f
#define FLUID_REVERB_DEFAULT_WIDTH   0.5f
#define FLUID_REVERB_DEFAULT_LEVEL   0.9f
#define FLUID_CHORUS_DEFAULT_N   3
#define FLUID_CHORUS_DEFAULT_LEVEL   2.0f
#define FLUID_CHORUS_DEFAULT_SPEED   0.3f
#define FLUID_CHORUS_DEFAULT_DEPTH   8.0f
#define FLUID_CHORUS_DEFAULT_TYPE   FLUID_CHORUS_MOD_SINE

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)

Enumerations

enum  fluid_chorus_mod { FLUID_CHORUS_MOD_SINE = 0, FLUID_CHORUS_MOD_TRIANGLE = 1 }
enum  fluid_interp {
  FLUID_INTERP_NONE = 0, FLUID_INTERP_LINEAR = 1, FLUID_INTERP_DEFAULT = 4, FLUID_INTERP_4THORDER = 4,
  FLUID_INTERP_7THORDER = 7, FLUID_INTERP_HIGHEST = 7
}

Functions

FLUIDSYNTH_API fluid_synth_tnew_fluid_synth (fluid_settings_t *settings)
 Creates a new synthesizer object. More...

FLUIDSYNTH_API int delete_fluid_synth (fluid_synth_t *synth)
 Deletes the synthesizer previously created with new_fluid_synth. More...

FLUIDSYNTH_API fluid_settings_tfluid_synth_get_settings (fluid_synth_t *synth)
 Get a reference to the settings of the synthesizer. More...

FLUIDSYNTH_API int fluid_synth_noteon (fluid_synth_t *synth, int chan, int key, int vel)
 Send a noteon message. More...

FLUIDSYNTH_API int fluid_synth_noteoff (fluid_synth_t *synth, int chan, int key)
 Send a noteoff message. More...

FLUIDSYNTH_API int fluid_synth_cc (fluid_synth_t *synth, int chan, int ctrl, int val)
 Send a control change message. More...

FLUIDSYNTH_API int fluid_synth_get_cc (fluid_synth_t *synth, int chan, int ctrl, int *pval)
 Get a control value. More...

FLUIDSYNTH_API int fluid_synth_pitch_bend (fluid_synth_t *synth, int chan, int val)
 Send a pitch bend message. More...

FLUIDSYNTH_API int fluid_synth_get_pitch_bend (fluid_synth_t *synth, int chan, int *ppitch_bend)
 Get the pitch bend value. More...

FLUIDSYNTH_API int fluid_synth_pitch_wheel_sens (fluid_synth_t *synth, int chan, int val)
 Set the pitch wheel sensitivity. More...

FLUIDSYNTH_API int fluid_synth_program_change (fluid_synth_t *synth, int chan, int program)
 Send a program change message. More...

FLUIDSYNTH_API int fluid_synth_bank_select (fluid_synth_t *synth, int chan, unsigned int bank)
 Select a bank. More...

FLUIDSYNTH_API int fluid_synth_sfont_select (fluid_synth_t *synth, int chan, unsigned int sfont_id)
 Select a sfont. More...

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 a preset for a channel. More...

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)
 Returns the program, bank, and SoundFont number of the preset on a given channel. More...

FLUIDSYNTH_API int fluid_synth_program_reset (fluid_synth_t *synth)
 Send a bank select and a program change to every channel to reinitialize the preset of the channel. More...

FLUIDSYNTH_API int fluid_synth_system_reset (fluid_synth_t *synth)
 Send a reset. More...

FLUIDSYNTH_API int fluid_synth_sfload (fluid_synth_t *synth, const char *filename, int reset_presets)
 Load a SoundFont. More...

FLUIDSYNTH_API int fluid_synth_sfreload (fluid_synth_t *synth, unsigned int id)
 Reload a SoundFont. More...

FLUIDSYNTH_API int fluid_synth_sfunload (fluid_synth_t *synth, unsigned int id, int reset_presets)
 Remove a SoundFont from the stack. More...

FLUIDSYNTH_API int fluid_synth_add_sfont (fluid_synth_t *synth, fluid_sfont_t *sfont)
 Add a SoundFont. More...

FLUIDSYNTH_API int fluid_synth_sfcount (fluid_synth_t *synth)
 Count the number of loaded SoundFonts. More...

FLUIDSYNTH_API fluid_sfont_tfluid_synth_get_sfont (fluid_synth_t *synth, unsigned int num)
 Get a SoundFont. More...

FLUIDSYNTH_API fluid_sfont_tfluid_synth_get_sfont_by_id (fluid_synth_t *synth, unsigned int id)
 Get a SoundFont. More...

FLUIDSYNTH_API fluid_preset_tfluid_synth_get_channel_preset (fluid_synth_t *synth, int chan)
 Get the preset of a channel. More...

FLUIDSYNTH_API void fluid_synth_set_reverb (fluid_synth_t *synth, double roomsize, double damping, double width, double level)
 Set the parameters for the built-in reverb unit. More...

FLUIDSYNTH_API void fluid_synth_set_reverb_on (fluid_synth_t *synth, int on)
 Turn on (1) / off (0) the built-in reverb unit. More...

FLUIDSYNTH_API double fluid_synth_get_reverb_roomsize (fluid_synth_t *synth)
 Query the current state of the reverb. More...

FLUIDSYNTH_API double fluid_synth_get_reverb_damp (fluid_synth_t *synth)
FLUIDSYNTH_API double fluid_synth_get_reverb_level (fluid_synth_t *synth)
FLUIDSYNTH_API double fluid_synth_get_reverb_width (fluid_synth_t *synth)
FLUIDSYNTH_API void fluid_synth_set_chorus (fluid_synth_t *synth, int nr, double level, double speed, double depth_ms, int type)
 Set up the chorus. More...

FLUIDSYNTH_API void fluid_synth_set_chorus_on (fluid_synth_t *synth, int on)
 Turn on (1) / off (0) the built-in chorus unit. More...

FLUIDSYNTH_API int fluid_synth_get_chorus_nr (fluid_synth_t *synth)
 Query the current state of the chorus. More...

FLUIDSYNTH_API double fluid_synth_get_chorus_level (fluid_synth_t *synth)
FLUIDSYNTH_API double fluid_synth_get_chorus_speed_Hz (fluid_synth_t *synth)
FLUIDSYNTH_API double fluid_synth_get_chorus_depth_ms (fluid_synth_t *synth)
FLUIDSYNTH_API int fluid_synth_get_chorus_type (fluid_synth_t *synth)
FLUIDSYNTH_API int fluid_synth_count_midi_channels (fluid_synth_t *synth)
 Returns the number of MIDI channels that the synthesizer uses internally. More...

FLUIDSYNTH_API int fluid_synth_count_audio_channels (fluid_synth_t *synth)
 Returns the number of audio channels that the synthesizer uses internally. More...

FLUIDSYNTH_API int fluid_synth_count_audio_groups (fluid_synth_t *synth)
 Returns the number of audio groups that the synthesizer uses internally. More...

FLUIDSYNTH_API int fluid_synth_count_effects_channels (fluid_synth_t *synth)
 Returns the number of effects channels that the synthesizer uses internally. More...

FLUIDSYNTH_API void fluid_synth_set_gain (fluid_synth_t *synth, float gain)
 Set the master gain. More...

FLUIDSYNTH_API float fluid_synth_get_gain (fluid_synth_t *synth)
 Get the master gain. More...

FLUIDSYNTH_API int fluid_synth_get_internal_bufsize (fluid_synth_t *synth)
 Get the internal buffer size. More...

FLUIDSYNTH_API int fluid_synth_set_interp_method (fluid_synth_t *synth, int chan, int interp_method)
 Set the interpolation method for one channel or all channels (chan = -1). More...

FLUIDSYNTH_API int fluid_synth_set_gen (fluid_synth_t *synth, int chan, int param, float value)
 Change the value of a generator. More...

FLUIDSYNTH_API float fluid_synth_get_gen (fluid_synth_t *synth, int chan, int param)
 Retreive the value of a generator. More...

FLUIDSYNTH_API int fluid_synth_create_key_tuning (fluid_synth_t *synth, int tuning_bank, int tuning_prog, char *name, double *pitch)
 Create a new key-based tuning with given name, number, and pitches. More...

FLUIDSYNTH_API int fluid_synth_create_octave_tuning (fluid_synth_t *synth, int tuning_bank, int tuning_prog, char *name, double *pitch)
 Create a new octave-based tuning with given name, number, and pitches. More...

FLUIDSYNTH_API int fluid_synth_tune_notes (fluid_synth_t *synth, int tuning_bank, int tuning_prog, int len, int *keys, double *pitch, int apply)
 Request a note tuning changes. More...

FLUIDSYNTH_API int fluid_synth_select_tuning (fluid_synth_t *synth, int chan, int tuning_bank, int tuning_prog)
 Select a tuning for a channel. More...

FLUIDSYNTH_API int fluid_synth_reset_tuning (fluid_synth_t *synth, int chan)
 Set the tuning to the default well-tempered tuning on a channel. More...

FLUIDSYNTH_API void fluid_synth_tuning_iteration_start (fluid_synth_t *synth)
 Start the iteration throught the list of available tunings. More...

FLUIDSYNTH_API int fluid_synth_tuning_iteration_next (fluid_synth_t *synth, int *bank, int *prog)
 Get the next tuning in the iteration. More...

FLUIDSYNTH_API int fluid_synth_tuning_dump (fluid_synth_t *synth, int bank, int prog, char *name, int len, double *pitch)
 Dump the data of a tuning. More...

FLUIDSYNTH_API double fluid_synth_get_cpu_load (fluid_synth_t *synth)
 Get an estimation of the CPU load due to the audio synthesis. More...

FLUIDSYNTH_API char * fluid_synth_error (fluid_synth_t *synth)
 Get a textual representation of the last error. More...

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)
 Generate a number of samples. More...

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)
 Generate a number of samples. More...

FLUIDSYNTH_API int fluid_synth_nwrite_float (fluid_synth_t *synth, int len, float **left, float **right, float **fx_left, float **fx_right)
FLUIDSYNTH_API int fluid_synth_process (fluid_synth_t *synth, int len, int nin, float **in, int nout, float **out)
 Generate a number of samples. More...

FLUIDSYNTH_API void fluid_synth_add_sfloader (fluid_synth_t *synth, fluid_sfloader_t *loader)
 Add a SoundFont loader to the synthesizer. More...

FLUIDSYNTH_API fluid_voice_tfluid_synth_alloc_voice (fluid_synth_t *synth, fluid_sample_t *sample, int channum, int key, int vel)
 Allocate a synthesis voice. More...

FLUIDSYNTH_API void fluid_synth_start_voice (fluid_synth_t *synth, fluid_voice_t *voice)
 Start a synthesis voice. More...

FLUIDSYNTH_API void fluid_synth_get_voicelist (fluid_synth_t *synth, fluid_voice_t *buf[], int bufsize, int ID)
 Write a list of all voices matching ID into buf, but not more than bufsize voices. More...

FLUIDSYNTH_API int fluid_synth_handle_midi_event (void *data, fluid_midi_event_t *event)
 Callback function for the MIDI router. More...

FLUIDSYNTH_API void fluid_synth_set_midi_router (fluid_synth_t *synth, fluid_midi_router_t *router)
 This is a hack to get command handlers working. More...


Define Documentation

#define FLUID_CHORUS_DEFAULT_DEPTH   8.0f
 

Definition at line 288 of file synth.h.

#define FLUID_CHORUS_DEFAULT_LEVEL   2.0f
 

Definition at line 286 of file synth.h.

#define FLUID_CHORUS_DEFAULT_N   3
 

Definition at line 285 of file synth.h.

#define FLUID_CHORUS_DEFAULT_SPEED   0.3f
 

Definition at line 287 of file synth.h.

#define FLUID_CHORUS_DEFAULT_TYPE   FLUID_CHORUS_MOD_SINE
 

Definition at line 289 of file synth.h.

#define FLUID_REVERB_DEFAULT_DAMP   0.0f
 

Definition at line 250 of file synth.h.

#define FLUID_REVERB_DEFAULT_LEVEL   0.9f
 

Definition at line 252 of file synth.h.

#define FLUID_REVERB_DEFAULT_ROOMSIZE   0.2f
 

Definition at line 249 of file synth.h.

#define FLUID_REVERB_DEFAULT_WIDTH   0.5f
 

Definition at line 251 of file synth.h.


Typedef Documentation

typedef int(* fluid_audio_callback_t)(fluid_synth_t* synth, int len, void* out1, int loff, int lincr, void* out2, int roff, int rincr)
 

Definition at line 599 of file synth.h.


Enumeration Type Documentation

enum fluid_chorus_mod
 

Enumeration values:
FLUID_CHORUS_MOD_SINE 
FLUID_CHORUS_MOD_TRIANGLE 

Definition at line 262 of file synth.h.

enum fluid_interp
 

Enumeration values:
FLUID_INTERP_NONE 
FLUID_INTERP_LINEAR 
FLUID_INTERP_DEFAULT 
FLUID_INTERP_4THORDER 
FLUID_INTERP_7THORDER 
FLUID_INTERP_HIGHEST 

Definition at line 345 of file synth.h.


Function Documentation

FLUIDSYNTH_API int delete_fluid_synth fluid_synth_t   synth
 

Deletes the synthesizer previously created with new_fluid_synth.

Parameters:
synth  the synthesizer object
Returns:
0 if no error occured, -1 otherwise

FLUIDSYNTH_API void fluid_synth_add_sfloader fluid_synth_t   synth,
fluid_sfloader_t   loader
 

Add a SoundFont loader to the synthesizer.

Note that SoundFont loader don't necessarily load SoundFonts. They can load any type of wavetable data but export a SoundFont interface.

FLUIDSYNTH_API int fluid_synth_add_sfont fluid_synth_t   synth,
fluid_sfont_t   sfont
 

Add a SoundFont.

The SoundFont will be put on top of the SoundFont stack.

Parameters:
synth  The synthesizer object
sfont  The SounfFont
Returns:
The ID of the loaded SoundFont, or -1 in case of error

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.

This function is called by a soundfont's preset in response to a noteon event. The returned voice comes with default modulators installed (velocity-to-attenuation, velocity to filter, ...) Note: A single noteon event may create any number of voices, when the preset is layered. Typically 1 (mono) or 2 (stereo).

FLUIDSYNTH_API int fluid_synth_bank_select fluid_synth_t   synth,
int    chan,
unsigned int    bank
 

Select a bank.

FLUIDSYNTH_API int fluid_synth_cc fluid_synth_t   synth,
int    chan,
int    ctrl,
int    val
 

Send a control change message.

FLUIDSYNTH_API int fluid_synth_count_audio_channels fluid_synth_t   synth
 

Returns the number of audio channels that the synthesizer uses internally.

FLUIDSYNTH_API int fluid_synth_count_audio_groups fluid_synth_t   synth
 

Returns the number of audio groups that the synthesizer uses internally.

This is usually identical to audio_channels.

FLUIDSYNTH_API int fluid_synth_count_effects_channels fluid_synth_t   synth
 

Returns the number of effects channels that the synthesizer uses internally.

FLUIDSYNTH_API int fluid_synth_count_midi_channels fluid_synth_t   synth
 

Returns the number of MIDI channels that the synthesizer uses internally.

FLUIDSYNTH_API int fluid_synth_create_key_tuning fluid_synth_t   synth,
int    tuning_bank,
int    tuning_prog,
char *    name,
double *    pitch
 

Create a new key-based tuning with given name, number, and pitches.

The array 'pitches' should have length 128 and contains the pitch in cents of every key in cents. However, if 'pitches' is NULL, a new tuning is created with the well-tempered scale.

Parameters:
synth  The synthesizer object
tuning_bank  The tuning bank number [0-127]
tuning_prog  The tuning program number [0-127]
name  The name of the tuning
pitch  The array of pitch values. The array length has to be 128.

FLUIDSYNTH_API int fluid_synth_create_octave_tuning fluid_synth_t   synth,
int    tuning_bank,
int    tuning_prog,
char *    name,
double *    pitch
 

Create a new octave-based tuning with given name, number, and pitches.

The array 'pitches' should have length 12 and contains derivation in cents from the well-tempered scale. For example, if pitches[0] equals -33, then the C-keys will be tuned 33 cents below the well-tempered C.

Parameters:
synth  The synthesizer object
tuning_bank  The tuning bank number [0-127]
tuning_prog  The tuning program number [0-127]
name  The name of the tuning
pitch  The array of pitch derivations. The array length has to be 12.

FLUIDSYNTH_API char* fluid_synth_error fluid_synth_t   synth
 

Get a textual representation of the last error.

FLUIDSYNTH_API int fluid_synth_get_cc fluid_synth_t   synth,
int    chan,
int    ctrl,
int *    pval
 

Get a control value.

FLUIDSYNTH_API fluid_preset_t* fluid_synth_get_channel_preset fluid_synth_t   synth,
int    chan
 

Get the preset of a channel.

FLUIDSYNTH_API double fluid_synth_get_chorus_depth_ms fluid_synth_t   synth
 

FLUIDSYNTH_API double fluid_synth_get_chorus_level fluid_synth_t   synth
 

FLUIDSYNTH_API int fluid_synth_get_chorus_nr fluid_synth_t   synth
 

Query the current state of the chorus.

FLUIDSYNTH_API double fluid_synth_get_chorus_speed_Hz fluid_synth_t   synth
 

FLUIDSYNTH_API int fluid_synth_get_chorus_type fluid_synth_t   synth
 

FLUIDSYNTH_API double fluid_synth_get_cpu_load fluid_synth_t   synth
 

Get an estimation of the CPU load due to the audio synthesis.

Returns a percentage (0-100).

Parameters:
synth  The synthesizer object

FLUIDSYNTH_API float fluid_synth_get_gain fluid_synth_t   synth
 

Get the master gain.

FLUIDSYNTH_API float fluid_synth_get_gen fluid_synth_t   synth,
int    chan,
int    param
 

Retreive the value of a generator.

This function returns the value set by a previous call 'fluid_synth_set_gen' or by an NRPN message.

Parameters:
synth  The synthesizer object.
chan  The MIDI channel number.
param  The generator number.
Returns:
The value of the generator.

FLUIDSYNTH_API int fluid_synth_get_internal_bufsize fluid_synth_t   synth
 

Get the internal buffer size.

The internal buffer size if not the same thing as the buffer size specified in the settings. Internally, the synth *always* uses a specific buffer size independent of the buffer size used by the audio driver. The internal buffer size is normally 64 samples. The reason why it uses an internal buffer size is to allow audio drivers to call the synthesizer with a variable buffer length. The internal buffer size is useful for client who want to optimize their buffer sizes.

FLUIDSYNTH_API int fluid_synth_get_pitch_bend fluid_synth_t   synth,
int    chan,
int *    ppitch_bend
 

Get the pitch bend value.

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
 

Returns the program, bank, and SoundFont number of the preset on a given channel.

FLUIDSYNTH_API double fluid_synth_get_reverb_damp fluid_synth_t   synth
 

FLUIDSYNTH_API double fluid_synth_get_reverb_level fluid_synth_t   synth
 

FLUIDSYNTH_API double fluid_synth_get_reverb_roomsize fluid_synth_t   synth
 

Query the current state of the reverb.

FLUIDSYNTH_API double fluid_synth_get_reverb_width fluid_synth_t   synth
 

FLUIDSYNTH_API fluid_settings_t* fluid_synth_get_settings fluid_synth_t   synth
 

Get a reference to the settings of the synthesizer.

Parameters:
synth  the synthesizer object
Returns:
pointer to the settings

FLUIDSYNTH_API fluid_sfont_t* fluid_synth_get_sfont fluid_synth_t   synth,
unsigned int    num
 

Get a SoundFont.

The SoundFont is specified by its index on the stack. The top of the stack has index zero.

Parameters:
synth  The synthesizer object
num  The number of the SoundFont (0 <= num < sfcount)
Returns:
A pointer to the SoundFont

FLUIDSYNTH_API fluid_sfont_t* fluid_synth_get_sfont_by_id fluid_synth_t   synth,
unsigned int    id
 

Get a SoundFont.

The SoundFont is specified by its ID.

Parameters:
synth  The synthesizer object
id  The id of the sfont
Returns:
A pointer to the SoundFont

FLUIDSYNTH_API void fluid_synth_get_voicelist fluid_synth_t   synth,
fluid_voice_t   buf[],
int    bufsize,
int    ID
 

Write a list of all voices matching ID into buf, but not more than bufsize voices.

If ID <0, return all voices.

FLUIDSYNTH_API int fluid_synth_handle_midi_event void *    data,
fluid_midi_event_t   event
 

Callback function for the MIDI router.

Any event goes through this.

FLUIDSYNTH_API int fluid_synth_noteoff fluid_synth_t   synth,
int    chan,
int    key
 

Send a noteoff message.

FLUIDSYNTH_API int fluid_synth_noteon fluid_synth_t   synth,
int    chan,
int    key,
int    vel
 

Send a noteon message.

FLUIDSYNTH_API int fluid_synth_nwrite_float fluid_synth_t   synth,
int    len,
float **    left,
float **    right,
float **    fx_left,
float **    fx_right
 

FLUIDSYNTH_API int fluid_synth_pitch_bend fluid_synth_t   synth,
int    chan,
int    val
 

Send a pitch bend message.

FLUIDSYNTH_API int fluid_synth_pitch_wheel_sens fluid_synth_t   synth,
int    chan,
int    val
 

Set the pitch wheel sensitivity.

FLUIDSYNTH_API int fluid_synth_process fluid_synth_t   synth,
int    len,
int    nin,
float **    in,
int    nout,
float **    out
 

Generate a number of samples.

This function implements the default interface defined in fluidsynth/audio.h. This function ignores the input buffers and expects at least two output buffer.

Parameters:
synth  The synthesizer
len  The number of samples to generate
nin  The number of input buffers
in  The array of input buffers
nout  The number of output buffers
out  The array of output buffers
Returns:
0 if no error occured, non-zero otherwise

FLUIDSYNTH_API int fluid_synth_program_change fluid_synth_t   synth,
int    chan,
int    program
 

Send a program change message.

FLUIDSYNTH_API int fluid_synth_program_reset fluid_synth_t   synth
 

Send a bank select and a program change to every channel to reinitialize the preset of the channel.

This function is useful mainly after a SoundFont has been loaded, unloaded or reloaded.

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 a preset for a channel.

The preset is specified by the SoundFont ID, the bank number, and the preset number. This allows any preset to be selected and circumvents preset masking due to previously loaded SoundFonts on the SoundFont stack.

Parameters:
synth  The synthesizer
chan  The channel on which to set the preset
sfont_id  The ID of the SoundFont
bank_num  The bank number
preset_num  The preset number
Returns:
0 if no errors occured, -1 otherwise

FLUIDSYNTH_API int fluid_synth_reset_tuning fluid_synth_t   synth,
int    chan
 

Set the tuning to the default well-tempered tuning on a channel.

Parameters:
synth  The synthesizer object
chan  The channel number [0-max channels]

FLUIDSYNTH_API int fluid_synth_select_tuning fluid_synth_t   synth,
int    chan,
int    tuning_bank,
int    tuning_prog
 

Select a tuning for a channel.

Parameters:
synth  The synthesizer object
chan  The channel number [0-max channels]
tuning_bank  The tuning bank number [0-127]
tuning_prog  The tuning program number [0-127]

FLUIDSYNTH_API void fluid_synth_set_chorus fluid_synth_t   synth,
int    nr,
double    level,
double    speed,
double    depth_ms,
int    type
 

Set up the chorus.

It should be turned on with fluid_synth_set_chorus_on. If faulty parameters are given, all new settings are discarded. Keep in mind, that the needed CPU time is proportional to 'nr'.

FLUIDSYNTH_API void fluid_synth_set_chorus_on fluid_synth_t   synth,
int    on
 

Turn on (1) / off (0) the built-in chorus unit.

FLUIDSYNTH_API void fluid_synth_set_gain fluid_synth_t   synth,
float    gain
 

Set the master gain.

FLUIDSYNTH_API int fluid_synth_set_gen fluid_synth_t   synth,
int    chan,
int    param,
float    value
 

Change the value of a generator.

This function allows to control all synthesis parameters in real-time. The changes are additive, i.e. they add up to the existing parameter value. This function is similar to sending an NRPN message to the synthesizer. The function accepts a float as the value of the parameter. The parameter numbers and ranges are described in the SoundFont 2.01 specification, paragraph 8.1.3, page 48. See also 'fluid_gen_type'.

Parameters:
synth  The synthesizer object.
chan  The MIDI channel number.
param  The parameter number.
value  The parameter value.
Returns:
Your favorite dish.

FLUIDSYNTH_API int fluid_synth_set_interp_method fluid_synth_t   synth,
int    chan,
int    interp_method
 

Set the interpolation method for one channel or all channels (chan = -1).

FLUIDSYNTH_API void fluid_synth_set_midi_router fluid_synth_t   synth,
fluid_midi_router_t   router
 

This is a hack to get command handlers working.

FLUIDSYNTH_API void fluid_synth_set_reverb fluid_synth_t   synth,
double    roomsize,
double    damping,
double    width,
double    level
 

Set the parameters for the built-in reverb unit.

FLUIDSYNTH_API void fluid_synth_set_reverb_on fluid_synth_t   synth,
int    on
 

Turn on (1) / off (0) the built-in reverb unit.

FLUIDSYNTH_API int fluid_synth_sfcount fluid_synth_t   synth
 

Count the number of loaded SoundFonts.

Parameters:
synth  The synthesizer object
Returns:
The number of loaded SoundFonts

FLUIDSYNTH_API int fluid_synth_sfload fluid_synth_t   synth,
const char *    filename,
int    reset_presets
 

Load a SoundFont.

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.

Parameters:
synth  The synthesizer object
filename  The file name
reset_presets  If non-zero, the presets on the channels will be reset
Returns:
The ID of the loaded SoundFont, or -1 in case of error

FLUIDSYNTH_API int fluid_synth_sfont_select fluid_synth_t   synth,
int    chan,
unsigned int    sfont_id
 

Select a sfont.

FLUIDSYNTH_API int fluid_synth_sfreload fluid_synth_t   synth,
unsigned int    id
 

Reload a SoundFont.

The reloaded SoundFont retains its ID and index on the stack.

Parameters:
synth  The synthesizer object
id  The id of the SoundFont
Returns:
The ID of the loaded SoundFont, or -1 in case of error

FLUIDSYNTH_API int fluid_synth_sfunload fluid_synth_t   synth,
unsigned int    id,
int    reset_presets
 

Remove a SoundFont from the stack.

Parameters:
synth  The synthesizer object
id  The id of the SoundFont
Returns:
0 if no error, -1 otherwise

FLUIDSYNTH_API void fluid_synth_start_voice fluid_synth_t   synth,
fluid_voice_t   voice
 

Start a synthesis voice.

This function is called by a soundfont's preset in response to a noteon event after the voice has been allocated with fluid_synth_alloc_voice() and initialized. Exclusive classes are processed here.

FLUIDSYNTH_API int fluid_synth_system_reset fluid_synth_t   synth
 

Send a reset.

A reset turns all the notes off and resets the controller values.

FLUIDSYNTH_API int fluid_synth_tune_notes fluid_synth_t   synth,
int    tuning_bank,
int    tuning_prog,
int    len,
int *    keys,
double *    pitch,
int    apply
 

Request a note tuning changes.

Both they 'keys' and 'pitches' arrays should be of length 'num_pitches'. If 'apply' is non-zero, the changes should be applied in real-time, i.e. sounding notes will have their pitch updated. 'APPLY' IS CURRENTLY IGNORED. The changes will be available for newly triggered notes only.

Parameters:
synth  The synthesizer object
tuning_bank  The tuning bank number [0-127]
tuning_prog  The tuning program number [0-127]
len  The length of the keys and pitch arrays
pitch  The array of keys values.
pitch  The array of pitch values.
apply  Flag to indicate whether to changes should be applied in real-time.

FLUIDSYNTH_API int fluid_synth_tuning_dump fluid_synth_t   synth,
int    bank,
int    prog,
char *    name,
int    len,
double *    pitch
 

Dump the data of a tuning.

This functions stores the name and pitch values of a tuning in the pointers given as arguments. Both name and pitch can be NULL is the data is not needed.

Parameters:
synth  The synthesizer object
bank  The tuning bank number [0-127]
prog  The tuning program number [0-127]
name  Pointer to a buffer to store the name
len  The length of the name buffer
pitch  Pointer to buffer to store the pitch values

FLUIDSYNTH_API int fluid_synth_tuning_iteration_next fluid_synth_t   synth,
int *    bank,
int *    prog
 

Get the next tuning in the iteration.

This functions stores the bank and program number of the next tuning in the pointers given as arguments.

Parameters:
synth  The synthesizer object
bank  Pointer to an int to store the bank number
prog  Pointer to an int to store the program number
Returns:
1 if there is a next tuning, 0 otherwise

FLUIDSYNTH_API void fluid_synth_tuning_iteration_start fluid_synth_t   synth
 

Start the iteration throught the list of available tunings.

Parameters:
synth  The synthesizer object

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
 

Generate a number of samples.

This function expects two floating point buffers (left and right channel) that will be filled with samples.

Parameters:
synth  The synthesizer
len  The number of samples to generate
lout  The sample buffer for the left channel
loff  The offset, in samples, in the left buffer where the writing pointer starts
lincr  The increment, in samples, of the writing pointer in the left buffer
rout  The sample buffer for the right channel
roff  The offset, in samples, in the right buffer where the writing pointer starts
rincr  The increment, in samples, of the writing pointer in the right buffer
Returns:
0 if no error occured, non-zero otherwise

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
 

Generate a number of samples.

This function expects two signed 16bits buffers (left and right channel) that will be filled with samples.

Parameters:
synth  The synthesizer
len  The number of samples to generate
lout  The sample buffer for the left channel
loff  The offset, in samples, in the left buffer where the writing pointer starts
lincr  The increment, in samples, of the writing pointer in the left buffer
rout  The sample buffer for the right channel
roff  The offset, in samples, in the right buffer where the writing pointer starts
rincr  The increment, in samples, of the writing pointer in the right buffer
Returns:
0 if no error occured, non-zero otherwise

FLUIDSYNTH_API fluid_synth_t* new_fluid_synth fluid_settings_t   settings
 

Creates a new synthesizer object.

Creates a new synthesizer object. As soon as the synthesizer is created, it will start playing.

Parameters:
settings  a pointer to a settings structure
Returns:
a newly allocated synthesizer or NULL in case of error


Generated on Thu Mar 13 19:09:35 2003 for libfluidsynth by doxygen1.2.15