gig Namespace Reference

Gigasampler specific classes and definitions. More...


Classes

struct  range_t
 Lower and upper limit of a range. More...
struct  buffer_t
 Pointer address and size of a buffer. More...
struct  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  dimension_def_t
 General dimension definition. More...
struct  crossfade_t
 Defines the envelope of a crossfade. More...
struct  playback_state_t
 Reflects the current playback state for a sample. More...
struct  progress_t
class  DimensionRegion
class  Sample
class  Region
 Defines Region information of an Instrument. More...
class  Instrument
 Provides all neccessary information for the synthesis of an Instrument. More...
class  Group
class  File
 Parses Gigasampler files and provides abstract access to the data. More...
class  Exception
 Will be thrown whenever a gig specific error occurs while trying to access a Gigasampler File. More...

Typedefs

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

Enumerations

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

Functions

String libraryName ()
 Returns the name of this C++ library.
String libraryVersion ()
 Returns version of this C++ library.
static void __notify_progress (progress_t *pProgress, float subprogress)
static void __divide_progress (progress_t *pParentProgress, progress_t *pSubProgress, float totalTasks, float currentTask)
int get12lo (const unsigned char *pSrc)
int get12hi (const unsigned char *pSrc)
int16_t get16 (const unsigned char *pSrc)
int get24 (const unsigned char *pSrc)
void store24 (unsigned char *pDst, int x)
void Decompress16 (int compressionmode, const unsigned char *params, int srcStep, int dstStep, const unsigned char *pSrc, int16_t *pDst, unsigned long currentframeoffset, unsigned long copysamples)
void Decompress24 (int compressionmode, const unsigned char *params, int dstStep, const unsigned char *pSrc, uint8_t *pDst, unsigned long currentframeoffset, unsigned long copysamples, int truncatedBits)
static split_type_t __resolveSplitType (dimension_t dimension)
static int __resolveZoneSize (dimension_def_t &dimension_definition)

Variables

const int bytesPerFrame [] = { 4096, 2052, 768, 524, 396, 268 }
const int bytesPerFrameNoHdr [] = { 4096, 2048, 768, 512, 384, 256 }
const int headerSize [] = { 0, 4, 0, 12, 12, 12 }
const int bitsPerSample [] = { 16, 8, 24, 16, 12, 8 }


Detailed Description

Gigasampler specific classes and definitions.

Typedef Documentation

typedef leverage_ctrl_t gig::attenuation_ctrl_t

Defines controller influencing attenuation.

See also:
leverage_ctrl_t

Definition at line 186 of file gig.h.

typedef leverage_ctrl_t gig::eg1_ctrl_t

Defines controller influencing envelope generator 1.

See also:
leverage_ctrl_t

Definition at line 193 of file gig.h.

typedef leverage_ctrl_t gig::eg2_ctrl_t

Defines controller influencing envelope generator 2.

See also:
leverage_ctrl_t

Definition at line 200 of file gig.h.

typedef std::string gig::String

Definition at line 58 of file gig.h.


Enumeration Type Documentation

enum gig::curve_type_t

Defines the shape of a function graph.

Enumerator:
curve_type_nonlinear 
curve_type_linear 
curve_type_special 
curve_type_unknown 

Definition at line 95 of file gig.h.

enum gig::dim_bypass_ctrl_t

Dimensions allow to bypass one of the following controllers.

Enumerator:
dim_bypass_ctrl_none 
dim_bypass_ctrl_94  Effect 4 Depth (MIDI Controller 94).
dim_bypass_ctrl_95  Effect 5 Depth (MIDI Controller 95).

Definition at line 103 of file gig.h.

enum gig::dimension_t

Defines the type of dimension, that is how the dimension zones (and thus how the dimension regions are selected by.

The number of dimension zones is always a power of two. All dimensions can have up to 32 zones (except the layer dimension with only up to 8 zones and the samplechannel dimension which currently allows only 2 zones).

Enumerator:
dimension_none  Dimension not in use.
dimension_samplechannel  If used sample has more than one channel (thus is not mono).
dimension_layer  For layering of up to 8 instruments (and eventually crossfading of 2 or 4 layers).
dimension_velocity  Key Velocity (this is the only dimension in gig2 where the ranges can exactly be defined).
dimension_channelaftertouch  Channel Key Pressure.
dimension_releasetrigger  Special dimension for triggering samples on releasing a key.
dimension_keyboard  Dimension for keyswitching.
dimension_roundrobin  Different samples triggered each time a note is played, dimension regions selected in sequence.
dimension_random  Different samples triggered each time a note is played, random order.
dimension_smartmidi  For MIDI tools like legato and repetition mode.
dimension_roundrobinkeyboard  Different samples triggered each time a note is played, any key advances the counter.
dimension_modwheel  Modulation Wheel (MIDI Controller 1).
dimension_breath  Breath Controller (Coarse, MIDI Controller 2).
dimension_foot  Foot Pedal (Coarse, MIDI Controller 4).
dimension_portamentotime  Portamento Time (Coarse, MIDI Controller 5).
dimension_effect1  Effect Controller 1 (Coarse, MIDI Controller 12).
dimension_effect2  Effect Controller 2 (Coarse, MIDI Controller 13).
dimension_genpurpose1  General Purpose Controller 1 (Slider, MIDI Controller 16).
dimension_genpurpose2  General Purpose Controller 2 (Slider, MIDI Controller 17).
dimension_genpurpose3  General Purpose Controller 3 (Slider, MIDI Controller 18).
dimension_genpurpose4  General Purpose Controller 4 (Slider, MIDI Controller 19).
dimension_sustainpedal  Sustain Pedal (MIDI Controller 64).
dimension_portamento  Portamento (MIDI Controller 65).
dimension_sostenutopedal  Sostenuto Pedal (MIDI Controller 66).
dimension_softpedal  Soft Pedal (MIDI Controller 67).
dimension_genpurpose5  General Purpose Controller 5 (Button, MIDI Controller 80).
dimension_genpurpose6  General Purpose Controller 6 (Button, MIDI Controller 81).
dimension_genpurpose7  General Purpose Controller 7 (Button, MIDI Controller 82).
dimension_genpurpose8  General Purpose Controller 8 (Button, MIDI Controller 83).
dimension_effect1depth  Effect 1 Depth (MIDI Controller 91).
dimension_effect2depth  Effect 2 Depth (MIDI Controller 92).
dimension_effect3depth  Effect 3 Depth (MIDI Controller 93).
dimension_effect4depth  Effect 4 Depth (MIDI Controller 94).
dimension_effect5depth  Effect 5 Depth (MIDI Controller 95).

Definition at line 209 of file gig.h.

enum gig::lfo1_ctrl_t

Defines how LFO1 is controlled by.

Enumerator:
lfo1_ctrl_internal  Only internally controlled.
lfo1_ctrl_modwheel  Only controlled by external modulation wheel.
lfo1_ctrl_breath  Only controlled by external breath controller.
lfo1_ctrl_internal_modwheel  Controlled internally and by external modulation wheel.
lfo1_ctrl_internal_breath  Controlled internally and by external breath controller.

Definition at line 128 of file gig.h.

enum gig::lfo2_ctrl_t

Defines how LFO2 is controlled by.

Enumerator:
lfo2_ctrl_internal  Only internally controlled.
lfo2_ctrl_modwheel  Only controlled by external modulation wheel.
lfo2_ctrl_foot  Only controlled by external foot controller.
lfo2_ctrl_internal_modwheel  Controlled internally and by external modulation wheel.
lfo2_ctrl_internal_foot  Controlled internally and by external foot controller.

Definition at line 119 of file gig.h.

enum gig::lfo3_ctrl_t

Defines how LFO3 is controlled by.

Enumerator:
lfo3_ctrl_internal  Only internally controlled.
lfo3_ctrl_modwheel  Only controlled by external modulation wheel.
lfo3_ctrl_aftertouch  Only controlled by aftertouch controller.
lfo3_ctrl_internal_modwheel  Controlled internally and by external modulation wheel.
lfo3_ctrl_internal_aftertouch  Controlled internally and by aftertouch controller.

Definition at line 110 of file gig.h.

enum gig::loop_type_t

Standard types of sample loops.

Enumerator:
loop_type_normal  Loop forward (normal).
loop_type_bidirectional  Alternating loop (forward/backward, also known as Ping Pong).
loop_type_backward  Loop backward (reverse).

Definition at line 79 of file gig.h.

enum gig::smpte_format_t

Society of Motion Pictures and Television E time format.

Enumerator:
smpte_format_no_offset  no SMPTE offset
smpte_format_24_frames  24 frames per second
smpte_format_25_frames  25 frames per second
smpte_format_30_frames_dropping  30 frames per second with frame dropping (30 drop)
smpte_format_30_frames  30 frames per second

Definition at line 86 of file gig.h.

enum gig::split_type_t

Intended for internal usage: will be used to convert a dimension value into the corresponding dimension bit number.

Enumerator:
split_type_normal  dimension value between 0-127
split_type_bit  dimension values are already the sought bit number

Definition at line 250 of file gig.h.

enum gig::vcf_cutoff_ctrl_t

Defines how the filter cutoff frequency is controlled by.

Enumerator:
vcf_cutoff_ctrl_none 
vcf_cutoff_ctrl_none2  The difference between none and none2 is unknown.
vcf_cutoff_ctrl_modwheel  Modulation Wheel (MIDI Controller 1).
vcf_cutoff_ctrl_effect1  Effect Controller 1 (Coarse, MIDI Controller 12).
vcf_cutoff_ctrl_effect2  Effect Controller 2 (Coarse, MIDI Controller 13).
vcf_cutoff_ctrl_breath  Breath Controller (Coarse, MIDI Controller 2).
vcf_cutoff_ctrl_foot  Foot Pedal (Coarse, MIDI Controller 4).
vcf_cutoff_ctrl_sustainpedal  Sustain Pedal (MIDI Controller 64).
vcf_cutoff_ctrl_softpedal  Soft Pedal (MIDI Controller 67).
vcf_cutoff_ctrl_genpurpose7  General Purpose Controller 7 (Button, MIDI Controller 82).
vcf_cutoff_ctrl_genpurpose8  General Purpose Controller 8 (Button, MIDI Controller 83).
vcf_cutoff_ctrl_aftertouch  Key Pressure.

Definition at line 137 of file gig.h.

enum gig::vcf_res_ctrl_t

Defines how the filter resonance is controlled by.

Enumerator:
vcf_res_ctrl_none 
vcf_res_ctrl_genpurpose3  General Purpose Controller 3 (Slider, MIDI Controller 18).
vcf_res_ctrl_genpurpose4  General Purpose Controller 4 (Slider, MIDI Controller 19).
vcf_res_ctrl_genpurpose5  General Purpose Controller 5 (Button, MIDI Controller 80).
vcf_res_ctrl_genpurpose6  General Purpose Controller 6 (Button, MIDI Controller 81).

Definition at line 153 of file gig.h.

enum gig::vcf_type_t

Defines which frequencies are filtered by the VCF.

Enumerator:
vcf_type_lowpass 
vcf_type_lowpassturbo  More poles than normal lowpass.
vcf_type_bandpass 
vcf_type_highpass 
vcf_type_bandreject 

Definition at line 265 of file gig.h.


Function Documentation

static void gig::__divide_progress ( progress_t *  pParentProgress,
progress_t *  pSubProgress,
float  totalTasks,
float  currentTask 
) [static]

Definition at line 75 of file gig.cpp.

References gig::progress_t::__range_max, gig::progress_t::__range_min, gig::progress_t::callback, and gig::progress_t::custom.

Referenced by gig::File::GetInstrument(), and gig::File::LoadInstruments().

static void gig::__notify_progress ( progress_t *  pProgress,
float  subprogress 
) [static]

Definition at line 65 of file gig.cpp.

References gig::progress_t::__range_max, gig::progress_t::__range_min, gig::progress_t::callback, and gig::progress_t::factor.

Referenced by gig::File::GetInstrument(), gig::Instrument::Instrument(), gig::File::LoadInstruments(), and gig::File::LoadSamples().

static split_type_t gig::__resolveSplitType ( dimension_t  dimension  )  [static]

Definition at line 261 of file gig.cpp.

References dimension_keyboard, dimension_layer, dimension_random, dimension_releasetrigger, dimension_roundrobin, dimension_roundrobinkeyboard, dimension_samplechannel, dimension_smartmidi, split_type_bit, and split_type_normal.

Referenced by gig::Region::AddDimension(), and gig::Region::Region().

static int gig::__resolveZoneSize ( dimension_def_t &  dimension_definition  )  [static]

Definition at line 274 of file gig.cpp.

References gig::dimension_def_t::split_type, split_type_normal, and gig::dimension_def_t::zones.

Referenced by gig::Region::AddDimension(), and gig::Region::Region().

void gig::@5::Decompress16 ( int  compressionmode,
const unsigned char *  params,
int  srcStep,
int  dstStep,
const unsigned char *  pSrc,
int16_t *  pDst,
unsigned long  currentframeoffset,
unsigned long  copysamples 
) [static]

Definition at line 121 of file gig.cpp.

References get16().

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

void gig::@5::Decompress24 ( int  compressionmode,
const unsigned char *  params,
int  dstStep,
const unsigned char *  pSrc,
uint8_t *  pDst,
unsigned long  currentframeoffset,
unsigned long  copysamples,
int  truncatedBits 
) [static]

Definition at line 159 of file gig.cpp.

References COPY_ONE, get12hi(), get12lo(), get16(), get24(), GET_PARAMS, SKIP_ONE, and store24().

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

int gig::@5::get12hi ( const unsigned char *  pSrc  )  [inline, static]

Definition at line 97 of file gig.cpp.

Referenced by Decompress24().

int gig::@5::get12lo ( const unsigned char *  pSrc  )  [inline, static]

Definition at line 91 of file gig.cpp.

Referenced by Decompress24().

int16_t gig::@5::get16 ( const unsigned char *  pSrc  )  [inline, static]

Definition at line 103 of file gig.cpp.

Referenced by Decompress16(), and Decompress24().

int gig::@5::get24 ( const unsigned char *  pSrc  )  [inline, static]

Definition at line 108 of file gig.cpp.

Referenced by Decompress24().

String gig::libraryName (  ) 

Returns the name of this C++ library.

This is usually "libgig" of course. This call is equivalent to RIFF::libraryName() and DLS::libraryName().

Definition at line 3257 of file gig.cpp.

String gig::libraryVersion (  ) 

Returns version of this C++ library.

This call is equivalent to RIFF::libraryVersion() and DLS::libraryVersion().

Definition at line 3265 of file gig.cpp.

void gig::@5::store24 ( unsigned char *  pDst,
int  x 
) [inline, static]

Definition at line 114 of file gig.cpp.

Referenced by Decompress24().


Variable Documentation

const int gig::bitsPerSample[] = { 16, 8, 24, 16, 12, 8 } [static]

Definition at line 253 of file gig.cpp.

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

const int gig::bytesPerFrame[] = { 4096, 2052, 768, 524, 396, 268 } [static]

Definition at line 250 of file gig.cpp.

const int gig::bytesPerFrameNoHdr[] = { 4096, 2048, 768, 512, 384, 256 } [static]

Definition at line 251 of file gig.cpp.

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

const int gig::headerSize[] = { 0, 4, 0, 12, 12, 12 } [static]

Definition at line 252 of file gig.cpp.


Generated on Thu Aug 16 06:45:58 2007 for libgig by  doxygen 1.5.3