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 */ };