gig::Region Class Reference

Defines Region information of a Gigasampler/GigaStudio instrument. More...

`#include <gig.h>`

Inheritance diagram for gig::Region:

## Public Member Functions

DimensionRegion * | GetDimensionRegionByValue (const uint DimValues[8])
| Use this method in your audio engine to get the appropriate dimension region with it's articulation data for the current situation.
DimensionRegion * | GetDimensionRegionByBit (const uint8_t DimBits[8])
| Returns the appropriate DimensionRegion for the given dimension bit numbers (zone index).
int | GetDimensionRegionIndexByValue (const uint DimValues[8])
Sample * | GetSample ()
| Returns pointer address to the Sample referenced with this region.
void | AddDimension (dimension_def_t *pDimDef)
| Einstein would have dreamed of it - create a new dimension.
void | DeleteDimension (dimension_def_t *pDimDef)
| Delete an existing dimension.
dimension_def_t * | GetDimensionDefinition (dimension_t type)
| Searches in the current Region for a dimension of the given dimension type and returns the precise configuration of that dimension in this Region.
void | DeleteDimensionZone (dimension_t type, int zone)
| Delete one split zone of a dimension (decrement zone amount).
void | SplitDimensionZone (dimension_t type, int zone)
| Divide split zone of a dimension in two (increment zone amount).
void | SetDimensionType (dimension_t oldType, dimension_t newType)
| Change type of an existing dimension.
virtual void | SetKeyRange (uint16_t Low, uint16_t High)
| Modifies the key range of this Region and makes sure the respective chunks are in correct order.
virtual void | UpdateChunks (progress_t *pProgress)
| Apply Region settings and all its DimensionRegions to the respective RIFF chunks.
virtual void | CopyAssign (const Region *orig)
| Make a (semi) deep copy of the Region object given by orig and assign it to this object.
void | SetSample (Sample *pSample)
| Assign another sample to this Region.
virtual void | DeleteChunks ()
| Remove all RIFF chunks associated with this Region object.
virtual void | CopyAssign (const Region *orig)
| Make a (semi) deep copy of the Region object given by orig and assign it to this object.
virtual void | CopyAssign (const Resource *orig)
| Make a deep copy of the Resource object given by orig and assign it to this object.
virtual void | CopyAssign (const Articulator *orig)
| Not yet implemented in this version, since the .gig format does not need to copy DLS articulators and so far nobody used pure DLS instrument AFAIK.
virtual void | CopyAssign (const Sampler *orig)
| Make a deep copy of the Sampler object given by orig and assign it to this object.
Resource * | GetParent ()
const Resource * | GetParent () const
void | GenerateDLSID ()
| Generates a new DLSID for the resource.
Articulation * | GetArticulation (size_t pos)
| Returns Articulation at supplied pos position within the articulation list.
Articulation * | GetFirstArticulation ()
| Returns the first Articulation in the list of articulations.
Articulation * | GetNextArticulation ()
| Returns the next Articulation from the list of articulations.
void | AddSampleLoop (sample_loop_t *pLoopDef)
| Adds a new sample loop with the provided loop definition.
void | DeleteSampleLoop (sample_loop_t *pLoopDef)
| Deletes an existing sample loop.
virtual void | SetGain (int32_t gain)

## Static Public Member Functions

static void | GenerateDLSID (dlsid_t *pDLSID)

## Public Attributes

unsigned int | Dimensions
| Number of defined dimensions, do not alter!
dimension_def_t | pDimensionDefinitions [8]
| Defines the five (gig2) or eight (gig3) possible dimensions (the dimension's controller and number of bits/splits). Use AddDimension() and DeleteDimension() to create a new dimension or delete an existing one.
uint32_t | DimensionRegions
| Total number of DimensionRegions this Region contains, do not alter!
DimensionRegion * | pDimensionRegions [256]

Pointer array to the 32 (gig2) or 256 (gig3) possible dimension regions (reflects NULL for dimension regions not in use). Avoid to access the array directly and better use GetDimensionRegionByValue() instead, but of course in some cases it makes sense to use the array (e.g. iterating through all DimensionRegions). Use AddDimension() and DeleteDimension() to create a new dimension or delete an existing one (which will create or delete the respective dimension region(s) automatically).

unsigned int | Layers
| Amount of defined layers (1 - 32). A value of 1 actually means no layering, a value > 1 means there is Layer dimension. The same information can of course also be obtained by accessing pDimensionDefinitions. Do not alter this value!
range_t | KeyRange
range_t | VelocityRange
uint16_t | KeyGroup
uint16_t | Layer
bool | SelfNonExclusive
bool | PhaseMaster
uint16_t | PhaseGroup
bool | MultiChannel
uint32_t | Channel
Info * | pInfo
| Points (in any case) to an Info object, providing additional, optional infos and comments.
dlsid_t * | pDLSID
| Points to a dlsid_t structure if the file provided a DLS ID else is NULL.
uint8_t | UnityNote
int16_t | FineTune
int32_t | Gain
bool | NoSampleDepthTruncation
bool | NoSampleCompression
uint32_t | SampleLoops
| Reflects the number of sample loops.
sample_loop_t * | pSampleLoops
| Points to the beginning of a sample loop array, or is NULL if there are no loops defined.

## Protected Types

typedef std::vector< Articulation * > | ArticulationList

## Protected Member Functions

| Region (Instrument *pInstrument, RIFF::List *rgnList)
void | LoadDimensionRegions (RIFF::List *rgn)
void | UpdateVelocityTable ()
Sample * | GetSampleFromWavePool (unsigned int WavePoolTableIndex, progress_t *pProgress=NULL)
void | CopyAssign (const Region *orig, const std::map< Sample *, Sample * > *mSamples)
| Make a (semi) deep copy of the Region object given by orig and assign it to this object.
DimensionRegion * | GetDimensionRegionByBit (const std::map< dimension_t, int > &DimCase)
| ~Region ()
| Destructor.
void | LoadArticulations ()

## Protected Attributes

RIFF::List * | pCkRegion
uint32_t | WavePoolTableIndex
Sample * | pSample
uint16_t | FormatOptionFlags
uint16_t | WaveLinkOptionFlags
Resource * | pParent
RIFF::List * | pResourceList
RIFF::List * | pParentList
RIFF::List * | pParentList
ArticulationList * | pArticulations
ArticulationList::iterator | ArticulationsIterator
uint32_t | uiHeaderSize
uint32_t | SamplerOptions

## Detailed Description

Defines Region information of a Gigasampler/GigaStudio instrument.

A Region reflects a consecutive area (key range) on the keyboard. The individual regions in the gig format may not overlap with other regions (of the same instrument that is). Further, in the gig format a Region is merely a container for DimensionRegions (a.k.a. "Cases"). The Region itself does not provide the sample mapping or articulation informations used, even though the data structures of regions indeed provide such informations. The latter is however just of historical nature, because the gig file format was derived from the DLS file format.

Each Region consists of at least one or more DimensionRegions. The actual amount of DimensionRegions depends on which kind of "dimensions" are defined for this region, and on the split / zone amount for each of those dimensions.

Since the gig format was designed as extension to the DLS file format, this class is derived from the DLS::Region class. So also refer to DLS::Region for additional informations, class attributes and methods.

Definition at line 927 of file gig.h.

## Member Typedef Documentation

## ArticulationList

typedef std::vector<Articulation*> DLS::Articulator::ArticulationList

protected inherited

Definition at line 353 of file DLS.h.

## Constructor & Destructor Documentation

## Region()

gig::Region::Region | ( | Instrument * | pInstrument,
|  | RIFF::List * | rgnList )

protected

Definition at line 3302 of file gig.cpp.

## ~Region()

gig::Region::~Region | ( |  | ) |

protected virtual

Destructor.

Intended to free up all memory occupied by this Region object. ATM this destructor implementation does nothing though.

Reimplemented from DLS::Region.

Definition at line 4160 of file gig.cpp.

References pDimensionRegions.

## Member Function Documentation

## AddDimension()

void gig::Region::AddDimension | ( | dimension_def_t * | pDimDef | ) |

Einstein would have dreamed of it - create a new dimension.

Creates a new dimension with the dimension definition given by pDimDef. The appropriate amount of DimensionRegions will be created. There is a hard limit of dimensions and total amount of "bits" all dimensions can have. This limit is dependant to what gig file format version this file refers to. The gig v2 (and lower) format has a dimension limit and total amount of bits limit of 5, whereas the gig v3 format has a limit of 8.

Parameters

  pDimDef | - defintion of the new dimension

Exceptions

  gig::Exception | if dimension of the same type exists already
  gig::Exception | if amount of dimensions or total amount of dimension bits limit is violated

Definition at line 3608 of file gig.cpp.

References RIFF::List::AddSubList(), gig::dimension_def_t::bits, gig::dimension_def_t::dimension, gig::dimension_layer, gig::dimension_samplechannel, DimensionRegions, Dimensions, RIFF::List::GetSubList(), Layers, RIFF::List::MoveSubChunk(), pDimensionDefinitions, pDimensionRegions, gig::File::pVersion, and gig::dimension_def_t::zones.

Referenced by CopyAssign(), DeleteDimensionZone(), and SplitDimensionZone().

## AddSampleLoop()

void DLS::Sampler::AddSampleLoop | ( | sample_loop_t * | pLoopDef | ) |

inherited

Adds a new sample loop with the provided loop definition.

Parameters

  pLoopDef | - points to a loop definition that is to be copied

Definition at line 759 of file DLS.cpp.

References pSampleLoops, SampleLoops, and DLS::sample_loop_t::Size.

## CopyAssign() [1/6]

void DLS::Articulator::CopyAssign | ( | const Articulator * | orig | ) |

virtual inherited

Not yet implemented in this version, since the .gig format does not need to copy DLS articulators and so far nobody used pure DLS instrument AFAIK.

Definition at line 306 of file DLS.cpp.

Referenced by DLS::Region::CopyAssign().

## CopyAssign() [2/6]

void DLS::Region::CopyAssign | ( | const Region * | orig | ) |

virtual inherited

Make a (semi) deep copy of the Region object given by orig and assign it to this object.

Note that the sample pointer referenced by orig is simply copied as memory address. Thus the respective sample is shared, not duplicated!

Parameters

  orig | - original Region object to be copied from

Definition at line 1342 of file DLS.cpp.

References DLS::Articulator::CopyAssign(), DLS::Resource::CopyAssign(), DLS::Sampler::CopyAssign(), DLS::range_t::high, KeyRange, DLS::range_t::low, and SetKeyRange().

Referenced by DLS::Instrument::CopyAssign(), and gig::Region::CopyAssign().

## CopyAssign() [3/6]

void Resource::CopyAssign | ( | const Resource * | orig | ) |

virtual inherited

Make a deep copy of the Resource object given by orig and assign it to this object.

Parameters

  orig | - original Resource object to be copied from

Definition at line 654 of file DLS.cpp.

References pInfo, and Resource().

Referenced by DLS::Region::CopyAssign(), and DLS::Sample::CopyAssignCore().

## CopyAssign() [4/6]

void DLS::Sampler::CopyAssign | ( | const Sampler * | orig | ) |

virtual inherited

Make a deep copy of the Sampler object given by orig and assign it to this object.

Parameters

  orig | - original Sampler object to be copied from

Definition at line 805 of file DLS.cpp.

References Gain, pSampleLoops, and SampleLoops.

Referenced by DLS::Region::CopyAssign().

## CopyAssign() [5/6]

void gig::Region::CopyAssign | ( | const Region * | orig | ) |

virtual

Make a (semi) deep copy of the Region object given by orig and assign it to this object.

Note that all sample pointers referenced by orig are simply copied as memory address. Thus the respective samples are shared, not duplicated!

Parameters

  orig | - original Region object to be copied from

Definition at line 4359 of file gig.cpp.

References CopyAssign().

Referenced by gig::Instrument::CopyAssign(), and CopyAssign().

## CopyAssign() [6/6]

void gig::Region::CopyAssign | ( | const Region * | orig,
|  | const std::map< Sample *, Sample * > * | mSamples )

protected

Make a (semi) deep copy of the Region object given by orig and assign it to this object.

Parameters

  mSamples | - crosslink map between the foreign file's samples and this file's samples

Definition at line 4370 of file gig.cpp.

References AddDimension(), DLS::Region::CopyAssign(), DeleteDimension(), Dimensions, Layers, pDimensionDefinitions, and pDimensionRegions.

## DeleteChunks()

void DLS::Region::DeleteChunks | ( |  | ) |

virtual inherited

Remove all RIFF chunks associated with this Region object.

See Storage::DeleteChunks() for details.

Reimplemented from DLS::Resource.

Definition at line 1201 of file DLS.cpp.

References DLS::Articulator::DeleteChunks(), DLS::Resource::DeleteChunks(), DLS::Sampler::DeleteChunks(), RIFF::List::DeleteSubChunk(), and RIFF::Chunk::GetParent().

Referenced by gig::Region::DeleteDimensionZone(), and gig::Region::SplitDimensionZone().

## DeleteDimension()

void gig::Region::DeleteDimension | ( | dimension_def_t * | pDimDef | ) |

Delete an existing dimension.

Deletes the dimension given by pDimDef and deletes all respective dimension regions, that is all dimension regions where the dimension's bit(s) part is greater than 0. In case of a 'sustain pedal' dimension for example this would delete all dimension regions for the case(s) where the sustain pedal is pressed down.

Parameters

  pDimDef | - dimension to delete

Exceptions

  gig::Exception | if given dimension cannot be found

Definition at line 3720 of file gig.cpp.

References RIFF::List::DeleteSubChunk(), gig::dimension_def_t::dimension, gig::dimension_layer, gig::dimension_none, DimensionRegions, Dimensions, gig::DimensionRegion::DimensionUpperLimits, RIFF::List::GetSubList(), Layers, pDimensionDefinitions, and pDimensionRegions.

Referenced by CopyAssign(), DeleteDimensionZone(), and SplitDimensionZone().

## DeleteDimensionZone()

void gig::Region::DeleteDimensionZone | ( | dimension_t | type,
|  | int | zone )

Delete one split zone of a dimension (decrement zone amount).

Instead of deleting an entire dimensions, this method will only delete one particular split zone given by zone of the Region's dimension given by type. So this method will simply decrement the amount of zones by one of the dimension in question. To be able to do that, the respective dimension must exist on this Region and it must have at least 3 zones. All DimensionRegion objects associated with the zone will be deleted.

Parameters

  type | - identifies the dimension where a zone shall be deleted
  zone | - index of the dimension split zone that shall be deleted

Exceptions

  gig::Exception | if requested zone could not be deleted

Definition at line 3810 of file gig.cpp.

References AddDimension(), RIFF::List::AddSubList(), gig::dimension_def_t::bits, gig::DimensionRegion::CopyAssign(), DLS::Region::DeleteChunks(), DeleteDimension(), gig::dimension_def_t::dimension, gig::dimension_none, Dimensions, gig::DimensionRegion::DimensionUpperLimits, GetDimensionDefinition(), GetDimensionRegionByBit(), RIFF::List::GetSubList(), pDimensionDefinitions, pDimensionRegions, gig::dimension_def_t::split_type, gig::split_type_normal, and gig::dimension_def_t::zones.

## DeleteSampleLoop()

void DLS::Sampler::DeleteSampleLoop | ( | sample_loop_t * | pLoopDef | ) |

inherited

Deletes an existing sample loop.

Parameters

  pLoopDef | - pointer to existing loop definition

Exceptions

  Exception | - if given loop definition does not exist

Definition at line 781 of file DLS.cpp.

References pSampleLoops, and SampleLoops.

## GenerateDLSID() [1/2]

void Resource::GenerateDLSID | ( |  | ) |

inherited

Generates a new DLSID for the resource.

Definition at line 604 of file DLS.cpp.

References GenerateDLSID(), and pDLSID.

Referenced by gig::File::AddInstrument(), GenerateDLSID(), gig::Script::GenerateUuid(), and DLS::File::UpdateChunks().

## GenerateDLSID() [2/2]

void Resource::GenerateDLSID | ( | dlsid_t * | pDLSID | ) |

static inherited

Definition at line 611 of file DLS.cpp.

## GetArticulation()

Articulation * DLS::Articulator::GetArticulation | ( | size_t | pos | ) |

inherited

Returns Articulation at supplied pos position within the articulation list.

If supplied pos is out of bounds then `NULL` is returned.

Parameters

  pos | - position of sought Articulation in articulation list

Returns
  pointer address to requested articulation or `NULL` if pos is out of bounds

Definition at line 200 of file DLS.cpp.

## GetDimensionDefinition()

dimension_def_t * gig::Region::GetDimensionDefinition | ( | dimension_t | type | ) |

Searches in the current Region for a dimension of the given dimension type and returns the precise configuration of that dimension in this Region.

Parameters

  type | - dimension type of the sought dimension

Returns
  dimension definition or NULL if there is no dimension with sought type in this Region.

Definition at line 4153 of file gig.cpp.

References Dimensions, and pDimensionDefinitions.

Referenced by DeleteDimensionZone(), SetDimensionType(), and SplitDimensionZone().

## GetDimensionRegionByBit() [1/2]

DimensionRegion * gig::Region::GetDimensionRegionByBit | ( | const std::map< dimension_t, int > & | DimCase | ) |

protected

Definition at line 4126 of file gig.cpp.

## GetDimensionRegionByBit() [2/2]

DimensionRegion * gig::Region::GetDimensionRegionByBit | ( | const uint8_t | DimBits[8] | ) |

Returns the appropriate DimensionRegion for the given dimension bit numbers (zone index).

You usually use GetDimensionRegionByValue instead of calling this method directly!

Parameters

  DimBits | Bit numbers for dimension 0 to 7

Returns
  adress to the DimensionRegion for the given dimension bit numbers

See also
  GetDimensionRegionByValue()

Definition at line 4293 of file gig.cpp.

References pDimensionDefinitions, and pDimensionRegions.

Referenced by DeleteDimensionZone(), and SplitDimensionZone().

## GetDimensionRegionByValue()

DimensionRegion * gig::Region::GetDimensionRegionByValue | ( | const uint | DimValues[8] | ) |

Use this method in your audio engine to get the appropriate dimension region with it's articulation data for the current situation.

Just call the method with the current MIDI controller values and you'll get the DimensionRegion with the appropriate articulation data for the current situation (for this Region of course only). To do that you'll first have to look which dimensions with which controllers and in which order are defined for this Region when you load the .gig file. Special cases are e.g. layer or channel dimensions where you just put in the index numbers instead of a MIDI controller value (means 0 for left channel, 1 for right channel or 0 for layer 0, 1 for layer 1, etc.).

Parameters

  DimValues | MIDI controller values (0-127) for dimension 0 to 7

Returns
  adress to the DimensionRegion for the given situation

See also
  pDimensionDefinitions
  Dimensions

Definition at line 4184 of file gig.cpp.

References gig::dimension_velocity, Dimensions, pDimensionDefinitions, pDimensionRegions, gig::split_type_bit, gig::split_type_normal, and gig::DimensionRegion::VelocityTable.

## GetDimensionRegionIndexByValue()

int gig::Region::GetDimensionRegionIndexByValue | ( | const uint | DimValues[8] | ) |

Definition at line 4233 of file gig.cpp.

## GetFirstArticulation()

Articulation * DLS::Articulator::GetFirstArticulation | ( |  | ) |

inherited

Returns the first Articulation in the list of articulations.

You have to call this method once before you can use GetNextArticulation().

Returns
  pointer address to first Articulation or NULL if there is none

See also
  GetNextArticulation()

Deprecated
  This method is not reentrant-safe, use GetArticulation() instead.

Definition at line 216 of file DLS.cpp.

## GetNextArticulation()

Articulation * DLS::Articulator::GetNextArticulation | ( |  | ) |

inherited

Returns the next Articulation from the list of articulations.

You have to call GetFirstArticulation() once before you can use this method. By calling this method multiple times it iterates through the available articulations.

Returns
  pointer address to the next Articulation or NULL if end reached

See also
  GetFirstArticulation()

Deprecated
  This method is not reentrant-safe, use GetArticulation() instead.

Definition at line 234 of file DLS.cpp.

## GetParent() [1/2]

Resource * DLS::Resource::GetParent | ( |  | ) |

inline inherited

Definition at line 409 of file DLS.h.

## GetParent() [2/2]

const Resource * DLS::Resource::GetParent | ( |  | ) | const

inline inherited

Definition at line 410 of file DLS.h.

## GetSample()

Sample * gig::Region::GetSample | ( |  | ) |

Returns pointer address to the Sample referenced with this region.

This is the global Sample for the entire Region (not sure if this is actually used by the Gigasampler engine - I would only use the Sample referenced by the appropriate DimensionRegion instead of this sample).

Returns
  address to Sample or NULL if there is no reference to a sample saved in the .gig file

Definition at line 4312 of file gig.cpp.

## GetSampleFromWavePool()

Sample * gig::Region::GetSampleFromWavePool | ( | unsigned int | WavePoolTableIndex,
|  | progress_t * | pProgress = NULL )

protected

Definition at line 4317 of file gig.cpp.

## LoadArticulations()

void DLS::Articulator::LoadArticulations | ( |  | ) |

protected inherited

Definition at line 240 of file DLS.cpp.

## LoadDimensionRegions()

void gig::Region::LoadDimensionRegions | ( | RIFF::List * | rgn | ) |

protected

Definition at line 3497 of file gig.cpp.

## SetDimensionType()

void gig::Region::SetDimensionType | ( | dimension_t | oldType,
|  | dimension_t | newType )

Change type of an existing dimension.

Alters the dimension type of a dimension already existing on this region. If there is currently no dimension on this Region with type oldType, then this call with throw an Exception. Likewise there are cases where the requested dimension type cannot be performed. For example if the new dimension type shall be gig::dimension_samplechannel, and the current dimension has more than 2 zones. In such cases an Exception is thrown as well.

Parameters

  oldType | - identifies the existing dimension to be changed
  newType | - to which dimension type it should be changed to

Exceptions

  gig::Exception | if requested change cannot be performed

Definition at line 4113 of file gig.cpp.

References gig::dimension_def_t::dimension, gig::dimension_samplechannel, GetDimensionDefinition(), gig::dimension_def_t::split_type, and gig::dimension_def_t::zones.

## SetGain()

void DLS::Sampler::SetGain | ( | int32_t | gain | ) |

virtual inherited

Reimplemented in gig::DimensionRegion.

Definition at line 700 of file DLS.cpp.

## SetKeyRange()

void gig::Region::SetKeyRange | ( | uint16_t | Low,
|  | uint16_t | High )

virtual

Modifies the key range of this Region and makes sure the respective chunks are in correct order.

Parameters

  Low | - lower end of key range
  High | - upper end of key range

Reimplemented from DLS::Region.

Definition at line 3514 of file gig.cpp.

References DLS::Region::SetKeyRange().

## SetSample()

void DLS::Region::SetSample | ( | Sample * | pSample | ) |

inherited

Assign another sample to this Region.

Parameters

  pSample | - sample to be assigned

Definition at line 1233 of file DLS.cpp.

## SplitDimensionZone()

void gig::Region::SplitDimensionZone | ( | dimension_t | type,
|  | int | zone )

Divide split zone of a dimension in two (increment zone amount).

This will increment the amount of zones for the dimension (given by type) by one. It will do so by dividing the zone (given by zone) in the middle of its zone range in two. So the two zones resulting from the zone being splitted, will be an equivalent copy regarding all their articulation informations and sample reference. The two zones will only differ in their zone's upper limit (DimensionRegion::DimensionUpperLimits).

Parameters

  type | - identifies the dimension where a zone shall be splitted
  zone | - index of the dimension split zone that shall be splitted

Exceptions

  gig::Exception | if requested zone could not be splitted

Definition at line 3954 of file gig.cpp.

References AddDimension(), RIFF::List::AddSubList(), gig::dimension_def_t::bits, gig::DimensionRegion::CopyAssign(), DLS::Region::DeleteChunks(), DeleteDimension(), gig::dimension_def_t::dimension, gig::dimension_none, Dimensions, gig::DimensionRegion::DimensionUpperLimits, GetDimensionDefinition(), GetDimensionRegionByBit(), RIFF::List::GetSubList(), pDimensionDefinitions, pDimensionRegions, gig::dimension_def_t::split_type, gig::split_type_normal, and gig::dimension_def_t::zones.

## UpdateChunks()

void gig::Region::UpdateChunks | ( | progress_t * | pProgress | ) |

virtual

Apply Region settings and all its DimensionRegions to the respective RIFF chunks.

You have to call File::Save() to make changes persistent.

Usually there is absolutely no need to call this method explicitly. It will be called automatically when File::Save() was called.

Parameters

  pProgress | - callback function for progress notification

Exceptions

  gig::Exception | if samples cannot be dereferenced

Reimplemented from DLS::Region.

Definition at line 3399 of file gig.cpp.

References RIFF::List::AddSubList(), RIFF::List::DeleteSubChunk(), gig::dimension_none, DimensionRegions, RIFF::List::GetSubList(), RIFF::Chunk::LoadChunkData(), pDimensionDefinitions, pDimensionRegions, gig::File::pVersion, and DLS::Region::UpdateChunks().

## UpdateVelocityTable()

void gig::Region::UpdateVelocityTable | ( |  | ) |

protected

Definition at line 3521 of file gig.cpp.

## Member Data Documentation

## ArticulationsIterator

ArticulationList::iterator DLS::Articulator::ArticulationsIterator

protected inherited

Definition at line 356 of file DLS.h.

## Channel

uint32_t DLS::Region::Channel

inherited

Definition at line 503 of file DLS.h.

## DimensionRegions

uint32_t gig::Region::DimensionRegions

Total number of DimensionRegions this Region contains, do not alter!

Definition at line 931 of file gig.h.

Referenced by AddDimension(), DeleteDimension(), and UpdateChunks().

## Dimensions

unsigned int gig::Region::Dimensions

Number of defined dimensions, do not alter!

Definition at line 929 of file gig.h.

Referenced by AddDimension(), CopyAssign(), DeleteDimension(), DeleteDimensionZone(), GetDimensionDefinition(), GetDimensionRegionByValue(), and SplitDimensionZone().

## FineTune

int16_t DLS::Sampler::FineTune

inherited

Definition at line 428 of file DLS.h.

## FormatOptionFlags

uint16_t DLS::Region::FormatOptionFlags

protected inherited

Definition at line 515 of file DLS.h.

## Gain

int32_t DLS::Sampler::Gain

inherited

Deprecated
  Don't alter directly, use SetGain() instead!

Definition at line 429 of file DLS.h.

Referenced by CopyAssign(), and UpdateChunks().

## KeyGroup

uint16_t DLS::Region::KeyGroup

inherited

Definition at line 497 of file DLS.h.

## KeyRange

range_t DLS::Region::KeyRange

inherited

Deprecated
  Only read, don't write! Use SetKeyRange() instead.

Definition at line 495 of file DLS.h.

Referenced by CopyAssign(), SetKeyRange(), and UpdateChunks().

## Layer

uint16_t DLS::Region::Layer

inherited

Definition at line 498 of file DLS.h.

## Layers

unsigned int gig::Region::Layers

Amount of defined layers (1 - 32). A value of 1 actually means no layering, a value > 1 means there is Layer dimension. The same information can of course also be obtained by accessing pDimensionDefinitions. Do not alter this value!

Definition at line 933 of file gig.h.

Referenced by AddDimension(), CopyAssign(), and DeleteDimension().

## MultiChannel

bool DLS::Region::MultiChannel

inherited

Definition at line 502 of file DLS.h.

## NoSampleCompression

bool DLS::Sampler::NoSampleCompression

inherited

Definition at line 431 of file DLS.h.

## NoSampleDepthTruncation

bool DLS::Sampler::NoSampleDepthTruncation

inherited

Definition at line 430 of file DLS.h.

## pArticulations

ArticulationList* DLS::Articulator::pArticulations

protected inherited

Definition at line 355 of file DLS.h.

## pCkRegion

RIFF::List* DLS::Region::pCkRegion

protected inherited

Definition at line 512 of file DLS.h.

## pDimensionDefinitions

dimension_def_t gig::Region::pDimensionDefinitions[8]

Defines the five (gig2) or eight (gig3) possible dimensions (the dimension's controller and number of bits/splits). Use AddDimension() and DeleteDimension() to create a new dimension or delete an existing one.

Definition at line 930 of file gig.h.

Referenced by AddDimension(), CopyAssign(), DeleteDimension(), DeleteDimensionZone(), GetDimensionDefinition(), GetDimensionRegionByBit(), GetDimensionRegionByValue(), SplitDimensionZone(), and UpdateChunks().

## pDimensionRegions

DimensionRegion* gig::Region::pDimensionRegions[256]

Pointer array to the 32 (gig2) or 256 (gig3) possible dimension regions (reflects NULL for dimension regions not in use). Avoid to access the array directly and better use GetDimensionRegionByValue() instead, but of course in some cases it makes sense to use the array (e.g. iterating through all DimensionRegions). Use AddDimension() and DeleteDimension() to create a new dimension or delete an existing one (which will create or delete the respective dimension region(s) automatically).

Definition at line 932 of file gig.h.

Referenced by AddDimension(), CopyAssign(), DeleteDimension(), DeleteDimensionZone(), GetDimensionRegionByBit(), GetDimensionRegionByValue(), SplitDimensionZone(), UpdateChunks(), and ~Region().

## pDLSID

dlsid_t* DLS::Resource::pDLSID

inherited

Points to a dlsid_t structure if the file provided a DLS ID else is NULL.

Definition at line 407 of file DLS.h.

Referenced by GenerateDLSID(), and Resource().

## PhaseGroup

uint16_t DLS::Region::PhaseGroup

inherited

Definition at line 501 of file DLS.h.

## PhaseMaster

bool DLS::Region::PhaseMaster

inherited

Definition at line 500 of file DLS.h.

## pInfo

Info* DLS::Resource::pInfo

inherited

Points (in any case) to an Info object, providing additional, optional infos and comments.

Definition at line 406 of file DLS.h.

Referenced by CopyAssign(), Resource(), gig::Sample::Sample(), and UpdateChunks().

## pParent

Resource* DLS::Resource::pParent

protected inherited

Definition at line 417 of file DLS.h.

## pParentList [1/2]

RIFF::List* DLS::Articulator::pParentList

protected inherited

Definition at line 354 of file DLS.h.

## pParentList [2/2]

RIFF::List* DLS::Sampler::pParentList

protected inherited

Definition at line 442 of file DLS.h.

## pResourceList

RIFF::List* DLS::Resource::pResourceList

protected inherited

Definition at line 418 of file DLS.h.

## pSample

Sample* DLS::Region::pSample

protected inherited

Definition at line 514 of file DLS.h.

## pSampleLoops

sample_loop_t* DLS::Sampler::pSampleLoops

inherited

Points to the beginning of a sample loop array, or is NULL if there are no loops defined.

Definition at line 433 of file DLS.h.

Referenced by AddSampleLoop(), CopyAssign(), DeleteSampleLoop(), and UpdateChunks().

## SampleLoops

uint32_t DLS::Sampler::SampleLoops

inherited

Reflects the number of sample loops.

Definition at line 432 of file DLS.h.

Referenced by AddSampleLoop(), CopyAssign(), DeleteSampleLoop(), and UpdateChunks().

## SamplerOptions

uint32_t DLS::Sampler::SamplerOptions

protected inherited

Definition at line 444 of file DLS.h.

## SelfNonExclusive

bool DLS::Region::SelfNonExclusive

inherited

Definition at line 499 of file DLS.h.

## uiHeaderSize

uint32_t DLS::Sampler::uiHeaderSize

protected inherited

Definition at line 443 of file DLS.h.

## UnityNote

uint8_t DLS::Sampler::UnityNote

inherited

Definition at line 427 of file DLS.h.

## VelocityRange

range_t DLS::Region::VelocityRange

inherited

Definition at line 496 of file DLS.h.

## WaveLinkOptionFlags

uint16_t DLS::Region::WaveLinkOptionFlags

protected inherited

Definition at line 516 of file DLS.h.

## WavePoolTableIndex

uint32_t DLS::Region::WavePoolTableIndex

protected inherited

Definition at line 513 of file DLS.h.

The documentation for this class was generated from the following files:

- gig.h
- gig.cpp