IpatchGigEffects

IpatchGigEffects — GigaSampler instrument parameters and effects

Stability Level

Stable, unless otherwise indicated

Functions

Types and Values

Description

Functions and types for GigaSampler instrument parameters and effects.

Functions

ipatch_gig_parse_effects ()

void
ipatch_gig_parse_effects (IpatchFileHandle *handle,
                          IpatchGigEffects *effects);

Parse an 3ewa GigaSampler effects chunk into a structure.

Parameters

handle

File handle containing buffered 3ewa data

 

effects

Pointer to a user supplied GigaSampler effects structure to fill.

[out]

ipatch_gig_store_effects ()

void
ipatch_gig_store_effects (IpatchFileHandle *handle,
                          IpatchGigEffects *effects);

ipatch_gig_effects_init ()

void
ipatch_gig_effects_init (IpatchGigEffects *effects);

Initialize GigaSampler effects structure to default values.

Parameters

effects

GigaSampler effects structure

 

ipatch_gig_effects_to_gen_array ()

void
ipatch_gig_effects_to_gen_array (IpatchGigEffects *effects,
                                 IpatchSF2GenArray *array);

Convert GigaSampler effects structure to SoundFont generator array

Parameters

effects

GigaSampler effects structure

 

array

SoundFont generator array

 

ipatch_gig_to_sf2_timecents ()

guint16
ipatch_gig_to_sf2_timecents (gint32 gig_tc);

Convert GigaSampler timecents to SoundFont timecents.

Parameters

gig_tc

Amount in GigaSampler timecents

 

Returns

SoundFont timecent value


ipatch_gig_volsust_to_sf2_centibels ()

guint16
ipatch_gig_volsust_to_sf2_centibels (guint gig_tperc);

Convert GigaSampler volume sustain (tenth percent units) to centibels (10th of a decibel).

Parameters

gig_tperc

Tenth percent sustain level

 

Returns

SoundFont centibels value

Types and Values

struct IpatchGigEffects

struct IpatchGigEffects {
    guint32 unknown1;		/* byte 0-3, always 0x0000008C? */
    guint32 unknown7;		/* byte 44-47 */
    guint32 unknown14;		/* byte 100-103 */

    guint16 unknown2;		/* byte 12-13 */
    guint16 unknown3;		/* byte 16-17 */
    guint16 unknown4;		/* byte 20-21 */
    guint16 unknown5;		/* byte 24-25 */
    guint16 unknown6;		/* byte 36-37 */
    guint16 unknown8;		/* byte 60-61 */
    guint16 unknown9;		/* byte 68-69 */
    guint16 unknown10;		/* byte 76-77 */
    guint16 unknown11;		/* byte 84-85 */
    guint16 unknown13;		/* byte 98-99 */
    guint16 unknown15;		/* byte 106-107 */
    guint16 unknown17;		/* byte 116-117 */
    guint16 unknown18;		/* byte 122-123 */
    guint16 unknown20;		/* byte 126-127 */

    guint8 unknown12;		/* byte 93 */
    guint8 unknown16;		/* byte 111 */
    guint8 unknown19;		/* byte 125 */
    guint8 unknown21;		/* byte 129 */
    guint8 unknown22;		/* byte 130 */
    guint8 unknown23;		/* byte 135 */

    /* EG1 - Volume envelope */
    guint16 eg1_pre_attack; /* 10th percent */
    guint16 eg1_sustain;		/* 10th percent */
    guint32 eg1_attack;		/* timecents */
    guint32 eg1_decay;		/* timecents */
    guint32 eg1_decay2;		/* timecents (where is the "inf" flag?) */
    guint32 eg1_release;		/* timecents */
    guint8 eg1_hold;		/* bit 8=1:true */

    /* EG2 - Filter envelope */
    guint16 eg2_pre_attack; /* 10th percent */
    guint16 eg2_sustain;		/* 10th percent */
    guint32 eg2_attack;		/* timecents */
    guint32 eg2_decay;		/* timecents */
    guint32 eg2_decay2;		/* timecents */
    guint32 eg2_release;		/* timecents */

    /* EG3 - Pitch envelope */
    guint32 eg3_attack;		/* timecents */
    guint16 eg3_depth;		/* 12 bit signed (cents) */

    /* LFO1 - Volume LFO */
    guint16 lfo1_internal_depth; /* 0-1200 */
    guint32 lfo1_freq;		/* pitch cents */
    guint16 lfo1_ctrl_depth; /* 0-1200 */
    guint8 lfo1_ctrl;
    /* 0=internal, 1=mod wheel, 2=breath ctrl, 3=internal/mod wheel,
       4=internal/breath ctrl */
    /* bit 8=1:flip phase */
    /* bit 7=1:synch */
    /* bits 5 en 6: Res midictrl: 0=18, 1=19, 2=80, 3=81 */

    /* LFO2 - Filter LFO */
    guint8 lfo2_ctrl;
    /* 0=internal, 1=mod wheel, 2=breath ctrl, 3=internal/mod wheel,
       4=internal/breath ctrl */
    /* bit 6=1:synch */
    /* bit 8=1:flip phase */
    /* bit 7=1:Resonance midi ctrl */

    guint32 lfo2_freq;		/* pitch cents */
    guint16 lfo2_internal_depth; /* 0-1200 */
    guint16 lfo2_ctrl_depth; /* 0-1200 */

    /* LFO3 - Pitch LFO */
    guint32 lfo3_freq;		/* pitch cents */
    guint16 lfo3_internal_depth; /* cents */
    guint16 lfo3_ctrl_depth; /* cents */
    guint8 lfo3_ctrl; /* bit 6: LFO3 synch  bit 8:invert attentuation ctrl */

    /* filter parameters */
    guint8 filter_type; /* 0=lowpass, 1=bandpass, 2=highpass, 3=bandreject */
    guint8 turbo_lowpass; /* bit 7=0: on */
    guint8 filter_cutoff; /* bit 8=1:on */
    guint8 filter_midi_ctrl; /* bit 8=1:use ctrl  rest 0:aftertouch */
    guint8 filter_vel_scale;
    guint8 filter_resonance; /* bit 8=0:dynamic */
    guint8 filter_breakpoint; /* bit 8=1:keyboard tracking */

    /* velocity parameters */
    guint8 vel_response; /* 0-4 = nonlinear, 5-9 = linear, 10-14 = special */
    guint8 vel_dyn_range;

    /* release velocity paramaters */
    guint8 release_vel_response; /* 0-4 = nonlinear, 5-9 = linear, 10-14 = special */
    /* release velocity dynamic range? */

    guint8 release_trigger_decay;

    guint8 attn_ctrl;	      /* bit 1:on, rest=ctrl, 0xFF=velocity */
    guint8 max_velocity;		/* Used for velocity split */

    guint16 sample_offset;
    guint8 pitch_track_dim_bypass; /* bit 0=0: pitch track */
    /* 0x10/0x20=dim bypass ctrl 94/95 */
    guint8 layer_pan;		/* 7-bit signed */
    guint8 self_mask;		/* 1=true */
    guint8 channel_offset; /* (*4) */
    guint8 sust_defeat;		/* 2=on */
};

enum IpatchGigFilterType

Members

IPATCH_GIG_FILTER_LOWPASS

   

IPATCH_GIG_FILTER_BANDPASS

   

IPATCH_GIG_FILTER_HIGHPASS

   

IPATCH_GIG_FILTER_BANDREJECT

   

enum IpatchGigControlType

Members

IPATCH_GIG_CTRL_MOD_WHEEL

   

IPATCH_GIG_CTRL_BREATH

   

IPATCH_GIG_CTRL_FOOT

   

IPATCH_GIG_CTRL_PORTAMENTO_TIME

   

IPATCH_GIG_CTRL_EFFECT_1

   

IPATCH_GIG_CTRL_EFFECT_2

   

IPATCH_GIG_CTRL_GEN_PURPOSE_1

   

IPATCH_GIG_CTRL_GEN_PURPOSE_2

   

IPATCH_GIG_CTRL_GEN_PURPOSE_3

   

IPATCH_GIG_CTRL_GEN_PURPOSE_4

   

IPATCH_GIG_CTRL_SUSTAIN_PEDAL

   

IPATCH_GIG_CTRL_PORTAMENTO

   

IPATCH_GIG_CTRL_SOSTENUTO

   

IPATCH_GIG_CTRL_SOFT_PEDAL

   

IPATCH_GIG_CTRL_GEN_PURPOSE_5

   

IPATCH_GIG_CTRL_GEN_PURPOSE_6

   

IPATCH_GIG_CTRL_GEN_PURPOSE_7

   

IPATCH_GIG_CTRL_GEN_PURPOSE_8

   

IPATCH_GIG_CTRL_EFFECT_DEPTH_1

   

IPATCH_GIG_CTRL_EFFECT_DEPTH_2

   

IPATCH_GIG_CTRL_EFFECT_DEPTH_3

   

IPATCH_GIG_CTRL_EFFECT_DEPTH_4

   

IPATCH_GIG_CTRL_EFFECT_DEPTH_5