gig.h File Reference

#include "DLS.h"
#include <math.h>
#include <string.h>

Go to the source code of this file.

Namespaces

namespace  gig

Classes

struct  gig::range_t
 Lower and upper limit of a range. More...
struct  gig::buffer_t
 Pointer address and size of a buffer. More...
struct  gig::leverage_ctrl_t
 Defines a controller that has a certain contrained influence on a particular synthesis parameter (used to define attenuation controller, EG1 controller and EG2 controller). More...
struct  gig::dimension_def_t
 General dimension definition. More...
struct  gig::crossfade_t
 Defines the envelope of a crossfade. More...
struct  gig::playback_state_t
 Reflects the current playback state for a sample. More...
struct  gig::progress_t
 Used for indicating the progress of a certain task. More...
class  gig::DimensionRegion
 Encapsulates articulation information of a dimension region. More...
class  gig::Sample
 Encapsulates sample waves used for playback. More...
class  gig::Region
 Defines Region information of an Instrument. More...
class  gig::Instrument
 Provides all neccessary information for the synthesis of an Instrument. More...
class  gig::File
 Parses Gigasampler files and provides abstract access to the data. More...
class  gig::Exception
 Will be thrown whenever a gig specific error occurs while trying to access a Gigasampler File. More...

Defines

#define INITIAL_SAMPLE_BUFFER_SIZE   512000
 Initial size of the sample buffer which is used for decompression of compressed sample wave streams - this value should always be bigger than the biggest sample piece expected to be read by the sampler engine, otherwise the buffer size will be raised at runtime and thus the buffer reallocated which is time consuming and unefficient.
#define LIST_TYPE_3PRG   0x67727033
#define LIST_TYPE_3EWL   0x6C776533
#define CHUNK_ID_SMPL   0x6C706D73
#define CHUNK_ID_3GIX   0x78696733
#define CHUNK_ID_3EWA   0x61776533
#define CHUNK_ID_3LNK   0x6B6E6C33
#define CHUNK_ID_3EWG   0x67776533
#define CHUNK_ID_EWAV   0x76617765
#define GIG_EXP_DECODE(x)   (pow(1.000000008813822, x))
 (so far) every exponential paramater in the gig format has a basis of 1.000000008813822
#define GIG_PITCH_TRACK_EXTRACT(x)   (!(x & 0x01))
#define GIG_VCF_RESONANCE_CTRL_EXTRACT(x)   ((x >> 4) & 0x03)
#define GIG_EG_CTR_ATTACK_INFLUENCE_EXTRACT(x)   ((x >> 1) & 0x03)
#define GIG_EG_CTR_DECAY_INFLUENCE_EXTRACT(x)   ((x >> 3) & 0x03)
#define GIG_EG_CTR_RELEASE_INFLUENCE_EXTRACT(x)   ((x >> 5) & 0x03)

Typedefs

typedef std::string gig::String
typedef leverage_ctrl_t gig::attenuation_ctrl_t
 Defines controller influencing attenuation.
typedef leverage_ctrl_t gig::eg1_ctrl_t
 Defines controller influencing envelope generator 1.
typedef leverage_ctrl_t gig::eg2_ctrl_t
 Defines controller influencing envelope generator 2.

Enumerations

enum  gig::loop_type_t { gig::loop_type_normal = 0x00000000, gig::loop_type_bidirectional = 0x00000001, gig::loop_type_backward = 0x00000002 }
 Standard types of sample loops. More...
enum  gig::smpte_format_t {
  gig::smpte_format_no_offset = 0x00000000, gig::smpte_format_24_frames = 0x00000018, gig::smpte_format_25_frames = 0x00000019, gig::smpte_format_30_frames_dropping = 0x0000001D,
  gig::smpte_format_30_frames = 0x0000001E
}
 Society of Motion Pictures and Television E time format. More...
enum  gig::curve_type_t { gig::curve_type_nonlinear = 0, gig::curve_type_linear = 1, gig::curve_type_special = 2, gig::curve_type_unknown = 0xffffffff }
 Defines the shape of a function graph. More...
enum  gig::dim_bypass_ctrl_t { gig::dim_bypass_ctrl_none, gig::dim_bypass_ctrl_94, gig::dim_bypass_ctrl_95 }
 Dimensions allow to bypass one of the following controllers. More...
enum  gig::lfo3_ctrl_t {
  gig::lfo3_ctrl_internal = 0x00, gig::lfo3_ctrl_modwheel = 0x01, gig::lfo3_ctrl_aftertouch = 0x02, gig::lfo3_ctrl_internal_modwheel = 0x03,
  gig::lfo3_ctrl_internal_aftertouch = 0x04
}
 Defines how LFO3 is controlled by. More...
enum  gig::lfo2_ctrl_t {
  gig::lfo2_ctrl_internal = 0x00, gig::lfo2_ctrl_modwheel = 0x01, gig::lfo2_ctrl_foot = 0x02, gig::lfo2_ctrl_internal_modwheel = 0x03,
  gig::lfo2_ctrl_internal_foot = 0x04
}
 Defines how LFO2 is controlled by. More...
enum  gig::lfo1_ctrl_t {
  gig::lfo1_ctrl_internal = 0x00, gig::lfo1_ctrl_modwheel = 0x01, gig::lfo1_ctrl_breath = 0x02, gig::lfo1_ctrl_internal_modwheel = 0x03,
  gig::lfo1_ctrl_internal_breath = 0x04
}
 Defines how LFO1 is controlled by. More...
enum  gig::vcf_cutoff_ctrl_t {
  gig::vcf_cutoff_ctrl_none = 0x00, gig::vcf_cutoff_ctrl_modwheel = 0x81, gig::vcf_cutoff_ctrl_effect1 = 0x8c, gig::vcf_cutoff_ctrl_effect2 = 0x8d,
  gig::vcf_cutoff_ctrl_breath = 0x82, gig::vcf_cutoff_ctrl_foot = 0x84, gig::vcf_cutoff_ctrl_sustainpedal = 0xc0, gig::vcf_cutoff_ctrl_softpedal = 0xc3,
  gig::vcf_cutoff_ctrl_genpurpose7 = 0xd2, gig::vcf_cutoff_ctrl_genpurpose8 = 0xd3, gig::vcf_cutoff_ctrl_aftertouch = 0x80
}
 Defines how the filter cutoff frequency is controlled by. More...
enum  gig::vcf_res_ctrl_t {
  gig::vcf_res_ctrl_none = 0xffffffff, gig::vcf_res_ctrl_genpurpose3 = 0, gig::vcf_res_ctrl_genpurpose4 = 1, gig::vcf_res_ctrl_genpurpose5 = 2,
  gig::vcf_res_ctrl_genpurpose6 = 3
}
 Defines how the filter resonance is controlled by. More...
enum  gig::dimension_t {
  gig::dimension_none = 0x00, gig::dimension_samplechannel = 0x80, gig::dimension_layer = 0x81, gig::dimension_velocity = 0x82,
  gig::dimension_channelaftertouch = 0x83, gig::dimension_releasetrigger = 0x84, gig::dimension_keyboard = 0x85, gig::dimension_roundrobin = 0x86,
  gig::dimension_random = 0x87, gig::dimension_modwheel = 0x01, gig::dimension_breath = 0x02, gig::dimension_foot = 0x04,
  gig::dimension_portamentotime = 0x05, gig::dimension_effect1 = 0x0c, gig::dimension_effect2 = 0x0d, gig::dimension_genpurpose1 = 0x10,
  gig::dimension_genpurpose2 = 0x11, gig::dimension_genpurpose3 = 0x12, gig::dimension_genpurpose4 = 0x13, gig::dimension_sustainpedal = 0x40,
  gig::dimension_portamento = 0x41, gig::dimension_sostenutopedal = 0x42, gig::dimension_softpedal = 0x43, gig::dimension_genpurpose5 = 0x30,
  gig::dimension_genpurpose6 = 0x31, gig::dimension_genpurpose7 = 0x32, gig::dimension_genpurpose8 = 0x33, gig::dimension_effect1depth = 0x5b,
  gig::dimension_effect2depth = 0x5c, gig::dimension_effect3depth = 0x5d, gig::dimension_effect4depth = 0x5e, gig::dimension_effect5depth = 0x5f
}
 Defines the type of dimension, that is how the dimension zones (and thus how the dimension regions are selected by. More...
enum  gig::split_type_t { gig::split_type_normal, gig::split_type_customvelocity, gig::split_type_bit }
 Intended for internal usage: will be used to convert a dimension value into the corresponding dimension bit number. More...
enum  gig::vcf_type_t {
  gig::vcf_type_lowpass = 0x00, gig::vcf_type_lowpassturbo = 0xff, gig::vcf_type_bandpass = 0x01, gig::vcf_type_highpass = 0x02,
  gig::vcf_type_bandreject = 0x03
}
 Defines which frequencies are filtered by the VCF. More...

Functions

String gig::libraryName ()
 Returns the name of this C++ library.
String gig::libraryVersion ()
 Returns version of this C++ library.


Define Documentation

#define CHUNK_ID_3EWA   0x61776533
 

Definition at line 53 of file gig.h.

Referenced by gig::DimensionRegion::DimensionRegion().

#define CHUNK_ID_3EWG   0x67776533
 

Definition at line 55 of file gig.h.

Referenced by gig::Instrument::Instrument().

#define CHUNK_ID_3GIX   0x78696733
 

Definition at line 52 of file gig.h.

Referenced by gig::Sample::Sample().

#define CHUNK_ID_3LNK   0x6B6E6C33
 

Definition at line 54 of file gig.h.

Referenced by gig::Region::Region().

#define CHUNK_ID_EWAV   0x76617765
 

Definition at line 56 of file gig.h.

Referenced by gig::Sample::Sample().

#define CHUNK_ID_SMPL   0x6C706D73
 

Definition at line 51 of file gig.h.

Referenced by gig::Sample::Sample().

#define GIG_EG_CTR_ATTACK_INFLUENCE_EXTRACT  )     ((x >> 1) & 0x03)
 

Definition at line 63 of file gig.h.

Referenced by gig::DimensionRegion::DimensionRegion().

#define GIG_EG_CTR_DECAY_INFLUENCE_EXTRACT  )     ((x >> 3) & 0x03)
 

Definition at line 64 of file gig.h.

Referenced by gig::DimensionRegion::DimensionRegion().

#define GIG_EG_CTR_RELEASE_INFLUENCE_EXTRACT  )     ((x >> 5) & 0x03)
 

Definition at line 65 of file gig.h.

Referenced by gig::DimensionRegion::DimensionRegion().

#define GIG_EXP_DECODE  )     (pow(1.000000008813822, x))
 

(so far) every exponential paramater in the gig format has a basis of 1.000000008813822

Definition at line 60 of file gig.h.

Referenced by gig::DimensionRegion::DimensionRegion().

#define GIG_PITCH_TRACK_EXTRACT  )     (!(x & 0x01))
 

Definition at line 61 of file gig.h.

Referenced by gig::DimensionRegion::DimensionRegion().

#define GIG_VCF_RESONANCE_CTRL_EXTRACT  )     ((x >> 4) & 0x03)
 

Definition at line 62 of file gig.h.

Referenced by gig::DimensionRegion::DimensionRegion().

#define INITIAL_SAMPLE_BUFFER_SIZE   512000
 

Initial size of the sample buffer which is used for decompression of compressed sample wave streams - this value should always be bigger than the biggest sample piece expected to be read by the sampler engine, otherwise the buffer size will be raised at runtime and thus the buffer reallocated which is time consuming and unefficient.

Definition at line 37 of file gig.h.

Referenced by gig::Sample::Sample().

#define LIST_TYPE_3EWL   0x6C776533
 

Definition at line 50 of file gig.h.

Referenced by gig::Region::LoadDimensionRegions().

#define LIST_TYPE_3PRG   0x67727033
 

Definition at line 49 of file gig.h.

Referenced by gig::Region::LoadDimensionRegions().


Generated on Wed Nov 23 17:03:43 2005 for libgig by  doxygen 1.4.5