|
libfluidsynth
2.5.1
|
SoundFont modulator functions and constants. More...
Typedefs | |
| typedef double(* | fluid_mod_mapping_t) (const fluid_mod_t *mod, int value, int range, int is_src1, void *data) |
This function transforms or maps a modulator source value into a normalized range of [-1.0;+1.0]. More... | |
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 , FLUID_MOD_CUSTOM = 0x40 , FLUID_MOD_SIN = 0x80 } |
| 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... | |
| enum | fluid_mod_transforms { FLUID_MOD_TRANSFORM_LINEAR = 0 , FLUID_MOD_TRANSFORM_ABS = 2 } |
| Transform types for the SoundFont2 modulators as defined by SoundFont 2.04 section 8.3. More... | |
Lifecycle Functions for Modulator_linebr@{ | |
| fluid_mod_t * | new_fluid_mod (void) |
| Create a new uninitialized modulator structure. More... | |
| void | delete_fluid_mod (fluid_mod_t *mod) |
| Free a modulator structure. More... | |
Functions | |
| void | fluid_mod_clone (fluid_mod_t *mod, const fluid_mod_t *src) |
| Clone the modulators destination, sources, flags and amount. More... | |
| double | fluid_mod_get_amount (const fluid_mod_t *mod) |
| Get the scale amount from a modulator. More... | |
| int | fluid_mod_get_dest (const fluid_mod_t *mod) |
| Get destination effect from a modulator. More... | |
| int | fluid_mod_get_flags1 (const fluid_mod_t *mod) |
| Get primary source flags from a modulator. More... | |
| int | fluid_mod_get_flags2 (const fluid_mod_t *mod) |
| Get secondary source flags from a modulator. More... | |
| int | fluid_mod_get_source1 (const fluid_mod_t *mod) |
| Get the primary source value from a modulator. More... | |
| int | fluid_mod_get_source2 (const fluid_mod_t *mod) |
| Get the secondary source value from a modulator. More... | |
| int | fluid_mod_get_transform (const fluid_mod_t *mod) |
| Get the transform type of a modulator. More... | |
| int | fluid_mod_has_dest (const fluid_mod_t *mod, int gen) |
| Check if the modulator has the given destination. More... | |
| int | fluid_mod_has_source (const fluid_mod_t *mod, int cc, int ctrl) |
| Check if the modulator has the given source. More... | |
| void | fluid_mod_set_amount (fluid_mod_t *mod, double amount) |
| Set the scale amount of a modulator. More... | |
| void | fluid_mod_set_custom_mapping (fluid_mod_t *mod, fluid_mod_mapping_t mapping_function, void *data) |
Set a user defined mapping function of type fluid_mod_mapping_t to mod. More... | |
| void | fluid_mod_set_dest (fluid_mod_t *mod, int dst) |
| Set the destination effect of a modulator. More... | |
| void | fluid_mod_set_source1 (fluid_mod_t *mod, int src, int flags) |
| Set a modulator's primary source controller and flags. More... | |
| void | fluid_mod_set_source2 (fluid_mod_t *mod, int src, int flags) |
| Set a modulator's secondary source controller and flags. More... | |
| void | fluid_mod_set_transform (fluid_mod_t *mod, int type) |
| Set the transform type of a modulator. More... | |
| size_t | fluid_mod_sizeof (void) |
| Returns the size of the fluid_mod_t structure. More... | |
| int | fluid_mod_test_identity (const fluid_mod_t *mod1, const fluid_mod_t *mod2) |
| Checks if two modulators are identical in sources, flags and destination. More... | |
SoundFont modulator functions and constants.
| typedef double(* fluid_mod_mapping_t) (const fluid_mod_t *mod, int value, int range, int is_src1, void *data) |
This function transforms or maps a modulator source value into a normalized range of [-1.0;+1.0].
See fluid_mod_set_custom_mapping().
| mod | The modulator instance. The behavior is undefined if you modify mod through any of the fluid_mod_set*() functions from within the callback. |
| value | The input value from the modulator source, which will be in range [0;16383] if the input source value is FLUID_MOD_PITCHWHEEL, or [0;127] otherwise. |
| range | The value-range of the modulator source, i.e. 16384, if the input source value is FLUID_MOD_PITCHWHEEL, otherwise 128. |
| data | Custom data pointer, as supplied via fluid_mod_set_custom_mapping(). |
| is_src1 | A boolean, which, if true, indicates that the mapping function is called for source1. Otherwise, it's called for source2. Only useful if two sources have been specified with the FLUID_MOD_CUSTOM flag set. |
[-1.0;+1.0]. For return values that exceed the mentioned range, the behavior is unspecified (i.e. it may be honored, it may be clipped, ignored, the entire modulator may be disabled, etc.). | enum fluid_mod_flags |
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) |
| FLUID_MOD_CUSTOM | Custom mapping function. |
| FLUID_MOD_SIN | Custom non-standard sinus mapping function.
|
| enum fluid_mod_src |
General controller (if FLUID_MOD_GC in flags).
This corresponds to SoundFont 2.04 PDF section 8.2.1
| enum fluid_mod_transforms |
| void delete_fluid_mod | ( | fluid_mod_t * | mod | ) |
Free a modulator structure.
| mod | Modulator to free |
| void fluid_mod_clone | ( | fluid_mod_t * | mod, |
| const fluid_mod_t * | src | ||
| ) |
Clone the modulators destination, sources, flags and amount.
| mod | the modulator to store the copy to |
| src | the source modulator to retrieve the information from |
next member of mod will be left unchanged. | double fluid_mod_get_amount | ( | const fluid_mod_t * | mod | ) |
Get the scale amount from a modulator.
| mod | The modulator instance |
| int fluid_mod_get_dest | ( | const fluid_mod_t * | mod | ) |
Get destination effect from a modulator.
| mod | The modulator instance |
| int fluid_mod_get_flags1 | ( | const fluid_mod_t * | mod | ) |
Get primary source flags from a modulator.
| mod | The modulator instance |
| int fluid_mod_get_flags2 | ( | const fluid_mod_t * | mod | ) |
Get secondary source flags from a modulator.
| mod | The modulator instance |
| int fluid_mod_get_source1 | ( | const fluid_mod_t * | mod | ) |
Get the primary source value from a modulator.
| mod | The modulator instance |
| int fluid_mod_get_source2 | ( | const fluid_mod_t * | mod | ) |
Get the secondary source value from a modulator.
| mod | The modulator instance |
| int fluid_mod_get_transform | ( | const fluid_mod_t * | mod | ) |
Get the transform type of a modulator.
| mod | The modulator instance |
| int fluid_mod_has_dest | ( | const fluid_mod_t * | mod, |
| int | gen | ||
| ) |
Check if the modulator has the given destination.
| mod | The modulator instance |
| gen | The destination generator of type fluid_gen_type to check for |
| int fluid_mod_has_source | ( | const fluid_mod_t * | mod, |
| int | cc, | ||
| int | ctrl | ||
| ) |
Check if the modulator has the given source.
| mod | The modulator instance |
| cc | Boolean value indicating if ctrl is a CC controller or not |
| ctrl | The source to check for (if cc == FALSE : a value of type fluid_mod_src, else the value of the MIDI CC to check for) |
| void fluid_mod_set_amount | ( | fluid_mod_t * | mod, |
| double | amount | ||
| ) |
Set the scale amount of a modulator.
| mod | The modulator instance |
| amount | Scale amount to assign |
| void fluid_mod_set_custom_mapping | ( | fluid_mod_t * | mod, |
| fluid_mod_mapping_t | mapping_function, | ||
| void * | data | ||
| ) |
Set a user defined mapping function of type fluid_mod_mapping_t to mod.
To use this function, specify FLUID_MOD_CUSTOM as source flag.
| mod | The modulator instance |
| mapping_function | Pointer to the mapping function to assign |
| data | User defined data pointer that will be passed into the mapping function, or NULL if not needed |
| void fluid_mod_set_dest | ( | fluid_mod_t * | mod, |
| int | dest | ||
| ) |
Set the destination effect of a modulator.
| mod | The modulator instance |
| dest | Destination generator (fluid_gen_type) |
| void fluid_mod_set_source1 | ( | fluid_mod_t * | mod, |
| int | src, | ||
| int | flags | ||
| ) |
Set a modulator's primary source controller and flags.
| mod | The modulator instance |
| src | Modulator source (fluid_mod_src or a MIDI controller number) |
| flags | Flags 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. |
| void fluid_mod_set_source2 | ( | fluid_mod_t * | mod, |
| int | src, | ||
| int | flags | ||
| ) |
Set a modulator's secondary source controller and flags.
| mod | The modulator instance |
| src | Modulator source (fluid_mod_src or a MIDI controller number) |
| flags | Flags 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. |
| void fluid_mod_set_transform | ( | fluid_mod_t * | mod, |
| int | type | ||
| ) |
Set the transform type of a modulator.
| mod | The modulator instance |
| type | Transform type, see fluid_mod_transforms |
| size_t fluid_mod_sizeof | ( | void | ) |
Returns the size of the fluid_mod_t structure.
Useful in low latency scenarios e.g. to allocate a modulator on the stack.
| int fluid_mod_test_identity | ( | const fluid_mod_t * | mod1, |
| const fluid_mod_t * | mod2 | ||
| ) |
Checks if two modulators are identical in sources, flags and destination.
| mod1 | First modulator |
| mod2 | Second modulator |
SF2.01 section 9.5.1 page 69, 'bullet' 3 defines 'identical'.
| fluid_mod_t* new_fluid_mod | ( | void | ) |
Create a new uninitialized modulator structure.