libfluidsynth  1.1.6
Data Structures | Macros | Enumerations | Functions
mod.h File Reference

SoundFont modulator functions and constants. More...

Data Structures

struct  _fluid_mod_t
 Modulator structure. More...
 

Macros

#define FLUID_NUM_MOD   64
 Maximum number of modulators in a voice.
 

Enumerations

enum  fluid_mod_flags {
  FLUID_MOD_POSITIVE = 0, FLUID_MOD_NEGATIVE = 1, FLUID_MOD_UNIPOLAR = 0, FLUID_MOD_BIPOLAR = 2,
  FLUID_MOD_LINEAR = 0, FLUID_MOD_CONCAVE = 4, FLUID_MOD_CONVEX = 8, FLUID_MOD_SWITCH = 12,
  FLUID_MOD_GC = 0, FLUID_MOD_CC = 16
}
 Flags defining the polarity, mapping function and type of a modulator source. More...
 
enum  fluid_mod_src {
  FLUID_MOD_NONE = 0, FLUID_MOD_VELOCITY = 2, FLUID_MOD_KEY = 3, FLUID_MOD_KEYPRESSURE = 10,
  FLUID_MOD_CHANNELPRESSURE = 13, FLUID_MOD_PITCHWHEEL = 14, FLUID_MOD_PITCHWHEELSENS = 16
}
 General controller (if FLUID_MOD_GC in flags). More...
 

Functions

FLUIDSYNTH_API fluid_mod_tfluid_mod_new (void)
 Create a new uninitialized modulator structure. More...
 
FLUIDSYNTH_API void fluid_mod_delete (fluid_mod_t *mod)
 Free a modulator structure. More...
 
FLUIDSYNTH_API void fluid_mod_set_source1 (fluid_mod_t *mod, int src, int flags)
 Set a modulator's primary source controller and flags. More...
 
FLUIDSYNTH_API void fluid_mod_set_source2 (fluid_mod_t *mod, int src, int flags)
 Set a modulator's secondary source controller and flags. More...
 
FLUIDSYNTH_API void fluid_mod_set_dest (fluid_mod_t *mod, int dst)
 Set the destination effect of a modulator. More...
 
FLUIDSYNTH_API void fluid_mod_set_amount (fluid_mod_t *mod, double amount)
 Set the scale amount of a modulator. More...
 
FLUIDSYNTH_API int fluid_mod_get_source1 (fluid_mod_t *mod)
 Get the primary source value from a modulator. More...
 
FLUIDSYNTH_API int fluid_mod_get_flags1 (fluid_mod_t *mod)
 Get primary source flags from a modulator. More...
 
FLUIDSYNTH_API int fluid_mod_get_source2 (fluid_mod_t *mod)
 Get the secondary source value from a modulator. More...
 
FLUIDSYNTH_API int fluid_mod_get_flags2 (fluid_mod_t *mod)
 Get secondary source flags from a modulator. More...
 
FLUIDSYNTH_API int fluid_mod_get_dest (fluid_mod_t *mod)
 Get destination effect from a modulator. More...
 
FLUIDSYNTH_API double fluid_mod_get_amount (fluid_mod_t *mod)
 Get the scale amount from a modulator. More...
 
FLUIDSYNTH_API int fluid_mod_test_identity (fluid_mod_t *mod1, fluid_mod_t *mod2)
 Checks if two modulators are identical in sources, flags and destination. More...
 

Detailed Description

SoundFont modulator functions and constants.

Enumeration Type Documentation

Flags defining the polarity, mapping function and type of a modulator source.

Compare with SoundFont 2.04 PDF section 8.2.

Note: Bit values do not correspond to the SoundFont spec! Also note that FLUID_MOD_GC and FLUID_MOD_CC are in the flags field instead of the source field.

Enumerator
FLUID_MOD_POSITIVE 

Mapping function is positive.

FLUID_MOD_NEGATIVE 

Mapping function is negative.

FLUID_MOD_UNIPOLAR 

Mapping function is unipolar.

FLUID_MOD_BIPOLAR 

Mapping function is bipolar.

FLUID_MOD_LINEAR 

Linear mapping function.

FLUID_MOD_CONCAVE 

Concave mapping function.

FLUID_MOD_CONVEX 

Convex mapping function.

FLUID_MOD_SWITCH 

Switch (on/off) mapping function.

FLUID_MOD_GC 

General controller source type (fluid_mod_src)

FLUID_MOD_CC 

MIDI CC controller (source will be a MIDI CC number)

General controller (if FLUID_MOD_GC in flags).

This corresponds to SoundFont 2.04 PDF section 8.2.1

Enumerator
FLUID_MOD_NONE 

No source controller.

FLUID_MOD_VELOCITY 

MIDI note-on velocity.

FLUID_MOD_KEY 

MIDI note-on note number.

FLUID_MOD_KEYPRESSURE 

MIDI key pressure.

FLUID_MOD_CHANNELPRESSURE 

MIDI channel pressure.

FLUID_MOD_PITCHWHEEL 

Pitch wheel.

FLUID_MOD_PITCHWHEELSENS 

Pitch wheel sensitivity.

Function Documentation

FLUIDSYNTH_API fluid_mod_t* fluid_mod_new ( void  )

Create a new uninitialized modulator structure.

Returns
New allocated modulator or NULL if out of memory

References FLUID_ERR.

FLUIDSYNTH_API void fluid_mod_delete ( fluid_mod_t mod)

Free a modulator structure.

Parameters
modModulator to free
FLUIDSYNTH_API void fluid_mod_set_source1 ( fluid_mod_t mod,
int  src,
int  flags 
)

Set a modulator's primary source controller and flags.

Parameters
modModulator
srcModulator source (fluid_mod_src or a MIDI controller number)
flagsFlags determining mapping function and whether the source controller is a general controller (FLUID_MOD_GC) or a MIDI CC controller (FLUID_MOD_CC), see fluid_mod_flags.

References _fluid_mod_t::flags1, and _fluid_mod_t::src1.

FLUIDSYNTH_API void fluid_mod_set_source2 ( fluid_mod_t mod,
int  src,
int  flags 
)

Set a modulator's secondary source controller and flags.

Parameters
modModulator
srcModulator source (fluid_mod_src or a MIDI controller number)
flagsFlags determining mapping function and whether the source controller is a general controller (FLUID_MOD_GC) or a MIDI CC controller (FLUID_MOD_CC), see fluid_mod_flags.

References _fluid_mod_t::flags2, and _fluid_mod_t::src2.

FLUIDSYNTH_API void fluid_mod_set_dest ( fluid_mod_t mod,
int  dest 
)

Set the destination effect of a modulator.

Parameters
modModulator
destDestination generator (fluid_gen_type)

References _fluid_mod_t::dest.

FLUIDSYNTH_API void fluid_mod_set_amount ( fluid_mod_t mod,
double  amount 
)

Set the scale amount of a modulator.

Parameters
modModulator
amountScale amount to assign

References _fluid_mod_t::amount.

FLUIDSYNTH_API int fluid_mod_get_source1 ( fluid_mod_t mod)

Get the primary source value from a modulator.

Parameters
modModulator
Returns
The primary source value (fluid_mod_src or a MIDI CC controller value).

References _fluid_mod_t::src1.

FLUIDSYNTH_API int fluid_mod_get_flags1 ( fluid_mod_t mod)

Get primary source flags from a modulator.

Parameters
modModulator
Returns
The primary source flags (fluid_mod_flags).

References _fluid_mod_t::flags1.

FLUIDSYNTH_API int fluid_mod_get_source2 ( fluid_mod_t mod)

Get the secondary source value from a modulator.

Parameters
modModulator
Returns
The secondary source value (fluid_mod_src or a MIDI CC controller value).

References _fluid_mod_t::src2.

FLUIDSYNTH_API int fluid_mod_get_flags2 ( fluid_mod_t mod)

Get secondary source flags from a modulator.

Parameters
modModulator
Returns
The secondary source flags (fluid_mod_flags).

References _fluid_mod_t::flags2.

FLUIDSYNTH_API int fluid_mod_get_dest ( fluid_mod_t mod)

Get destination effect from a modulator.

Parameters
modModulator
Returns
Destination generator (fluid_gen_type)

References _fluid_mod_t::dest.

FLUIDSYNTH_API double fluid_mod_get_amount ( fluid_mod_t mod)

Get the scale amount from a modulator.

Parameters
modModulator
Returns
Scale amount

References _fluid_mod_t::amount.

FLUIDSYNTH_API int fluid_mod_test_identity ( fluid_mod_t mod1,
fluid_mod_t mod2 
)

Checks if two modulators are identical in sources, flags and destination.

Parameters
mod1First modulator
mod2Second modulator
Returns
TRUE if identical, FALSE otherwise

SF2.01 section 9.5.1 page 69, 'bullet' 3 defines 'identical'.

References _fluid_mod_t::dest, _fluid_mod_t::flags1, _fluid_mod_t::flags2, _fluid_mod_t::src1, and _fluid_mod_t::src2.

Referenced by fluid_voice_add_mod().


Generated for libfluidsynth by doxygen 1.8.9.1