| Top |
| #define | IPATCH_SF2_GENID_SET() |
| #define | IPATCH_SF2_GEN_ARRAY_TEST_FLAG() |
| #define | IPATCH_SF2_GEN_ARRAY_SET_FLAG() |
| #define | IPATCH_SF2_GEN_ARRAY_CLEAR_FLAG() |
| const IpatchSF2GenInfo * | ipatch_sf2_get_gen_info () |
| gboolean | ipatch_sf2_gen_is_valid () |
| IpatchSF2GenArray * | ipatch_sf2_gen_array_new () |
| void | ipatch_sf2_gen_array_free () |
| IpatchSF2GenArray * | ipatch_sf2_gen_array_duplicate () |
| void | ipatch_sf2_gen_array_init () |
| gboolean | ipatch_sf2_gen_array_offset () |
| gboolean | ipatch_sf2_gen_array_intersect_test () |
| guint | ipatch_sf2_gen_array_count_set () |
| void | ipatch_sf2_gen_amount_to_value () |
| void | ipatch_sf2_gen_default_value () |
| gboolean | ipatch_sf2_gen_offset () |
| void | ipatch_sf2_gen_clamp () |
| gboolean | ipatch_sf2_gen_range_intersect () |
| gboolean | ipatch_sf2_gen_range_intersect_test () |
| const char * | ipatch_sf2_gen_get_prop_name () |
| #define | IPATCH_SF2_GEN_COUNT |
| enum | IpatchSF2GenPropsType |
| #define | IPATCH_SF2_GEN_PROPS_GLOBAL_FLAG |
| #define | IPATCH_SF2_GEN_PROPS_MASK |
| union | IpatchSF2GenAmount |
| struct | IpatchSF2Gen |
| enum | IpatchSF2GenType |
| enum | IpatchSF2GenSampleModes |
| struct | IpatchSF2GenInfo |
| extern IpatchSF2GenArray * | ipatch_sf2_gen_ofs_array |
| extern IpatchSF2GenArray * | ipatch_sf2_gen_abs_array |
| extern guint64 | ipatch_sf2_gen_ofs_valid_mask |
| extern guint64 | ipatch_sf2_gen_abs_valid_mask |
| extern guint64 | ipatch_sf2_gen_add_mask |
SoundFont generators are synthesis parameters used by IpatchSF2Preset, IpatchSF2Inst, IpatchSF2PZone and IpatchSF2IZone objects.
gboolean ipatch_sf2_gen_is_valid (guint genid,IpatchSF2GenPropsType propstype);
Checks if a generator is valid for the given propstype
.
IpatchSF2GenArray *
ipatch_sf2_gen_array_new (gboolean clear);
Create a new generator array object. A convenience function really, because one could just allocate an IpatchSF2GenArray structure instead.
IpatchSF2GenArray *
ipatch_sf2_gen_array_duplicate (const IpatchSF2GenArray *array);
Duplicates a generator array structure.
void ipatch_sf2_gen_array_init (IpatchSF2GenArray *array,gboolean offset,gboolean set);
Initialize a generator array to default values.
gboolean ipatch_sf2_gen_array_offset (IpatchSF2GenArray *abs_array,const IpatchSF2GenArray *ofs_array);
Offsets the generators amount array in abs_array
by adding the
values in ofs_array
to it. Values are clamped to their valid ranges.
gboolean ipatch_sf2_gen_array_intersect_test (const IpatchSF2GenArray *array1,const IpatchSF2GenArray *array2);
Checks if the note and velocity ranges in two generator arrays intersect.
guint
ipatch_sf2_gen_array_count_set (IpatchSF2GenArray *array);
Get count of "set" generators in a generator array.
void ipatch_sf2_gen_amount_to_value (guint genid,const IpatchSF2GenAmount *amt,GValue *value);
Converts a generator amount to a GValue. Value will be initialized to one of two types: G_TYPE_INT for signed/unsigned integers or IPATCH_TYPE_RANGE for velocity or note split ranges.
void ipatch_sf2_gen_default_value (guint genid,gboolean ispreset,IpatchSF2GenAmount *out_amt);
Get default value for a generator ID for the specified (ispreset
) zone
type.
gboolean ipatch_sf2_gen_offset (guint genid,IpatchSF2GenAmount *dst,const IpatchSF2GenAmount *ofs);
Offsets a generator amount. Result of offset is clamped to maximum and
minimum values for the given generator ID. In the case of note or
velocity ranges a return value of TRUE (clamped) means that the ranges
don't intersect (contrary return value to other range related functions).
void ipatch_sf2_gen_clamp (guint genid,int *sfval,gboolean ispreset);
Clamp a generators value to its valid range.
genid |
Generator ID (IpatchSF2GenType) |
|
sfval |
Generator value to clamp (changed in place). |
[inout] |
ispreset |
TRUE if its a Preset generator, FALSE if Instrument |
gboolean ipatch_sf2_gen_range_intersect (IpatchSF2GenAmount *dst,const IpatchSF2GenAmount *src);
Find intersection of two generator ranges (common shared range).
If ranges don't share anything in common dst
is not assigned.
gboolean ipatch_sf2_gen_range_intersect_test (const IpatchSF2GenAmount *amt1,const IpatchSF2GenAmount *amt2);
Test if two ranges intersect.
Generator property type (defines which gens are valid and their ranges). Note that TRUE/FALSE can be used to designate PRESET/INST (backwards compatible with previous function). Also note that global properties can be treated as a flag: IPATCH_SF2_GEN_PROPS_GLOBAL_FLAG.
struct IpatchSF2Gen {
guint16 id; /* generator #IPGenType ID */
IpatchSF2GenAmount amount; /* generator value */
};
struct IpatchSF2GenInfo {
IpatchSF2GenAmount min; /* minimum value allowed */
IpatchSF2GenAmount max; /* maximum value allowed */
IpatchSF2GenAmount def; /* default value */
gint16 unit; /* #IpatchUnitType type */
char *label; /* short descriptive label */
char *descr; /* more complete description */
};