libgig  4.0.0
gig::Region Class Reference

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

#include <gig.h>

Inheritance diagram for gig::Region:
DLS::Region DLS::Resource DLS::Articulator DLS::Sampler

Public Member Functions

DimensionRegionGetDimensionRegionByValue (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. More...
 
DimensionRegionGetDimensionRegionByBit (const uint8_t DimBits[8])
 Returns the appropriate DimensionRegion for the given dimension bit numbers (zone index). More...
 
int GetDimensionRegionIndexByValue (const uint DimValues[8])
 
SampleGetSample ()
 Returns pointer address to the Sample referenced with this region. More...
 
void AddDimension (dimension_def_t *pDimDef)
 Einstein would have dreamed of it - create a new dimension. More...
 
void DeleteDimension (dimension_def_t *pDimDef)
 Delete an existing dimension. More...
 
dimension_def_tGetDimensionDefinition (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. More...
 
void DeleteDimensionZone (dimension_t type, int zone)
 Delete one split zone of a dimension (decrement zone amount). More...
 
void SplitDimensionZone (dimension_t type, int zone)
 Divide split zone of a dimension in two (increment zone amount). More...
 
void SetDimensionType (dimension_t oldType, dimension_t newType)
 Change type of an existing dimension. More...
 
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. More...
 
virtual void UpdateChunks (progress_t *pProgress)
 Apply Region settings and all its DimensionRegions to the respective RIFF chunks. More...
 
virtual void CopyAssign (const Region *orig)
 Make a (semi) deep copy of the Region object given by orig and assign it to this object. More...
 
void SetSample (Sample *pSample)
 Assign another sample to this Region. More...
 
virtual void CopyAssign (const Region *orig)
 Make a (semi) deep copy of the Region object given by orig and assign it to this object. More...
 
virtual void CopyAssign (const Resource *orig)
 Make a deep copy of the Resource object given by orig and assign it to this object. More...
 
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. More...
 
virtual void CopyAssign (const Sampler *orig)
 Make a deep copy of the Sampler object given by orig and assign it to this object. More...
 
ResourceGetParent ()
 
const ResourceGetParent () const
 
void GenerateDLSID ()
 Generates a new DLSID for the resource. More...
 
Articulation * GetFirstArticulation ()
 
Articulation * GetNextArticulation ()
 
void AddSampleLoop (sample_loop_t *pLoopDef)
 Adds a new sample loop with the provided loop definition. More...
 
void DeleteSampleLoop (sample_loop_t *pLoopDef)
 Deletes an existing sample loop. More...
 
virtual void SetGain (int32_t gain)
 

Public Attributes

unsigned int Dimensions
 Number of defined dimensions, do not alter! More...
 
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. More...
 
uint32_t DimensionRegions
 Total number of DimensionRegions this Region contains, do not alter! More...
 
DimensionRegionpDimensionRegions [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). More...
 
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! More...
 
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. More...
 
dlsid_t * pDLSID
 Points to a dlsid_t structure if the file provided a DLS ID else is NULL. More...
 
uint8_t UnityNote
 
int16_t FineTune
 
int32_t Gain
 
bool NoSampleDepthTruncation
 
bool NoSampleCompression
 
uint32_t SampleLoops
 Reflects the number of sample loops. More...
 
sample_loop_t * pSampleLoops
 Points to the beginning of a sample loop array, or is NULL if there are no loops defined. More...
 

Protected Types

typedef std::list< Articulation * > ArticulationList
 

Protected Member Functions

 Region (Instrument *pInstrument, RIFF::List *rgnList)
 
void LoadDimensionRegions (RIFF::List *rgn)
 
void UpdateVelocityTable ()
 
SampleGetSampleFromWavePool (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. More...
 
DimensionRegionGetDimensionRegionByBit (const std::map< dimension_t, int > &DimCase)
 
 ~Region ()
 Destructor. More...
 
void LoadArticulations ()
 

Protected Attributes

RIFF::ListpCkRegion
 
uint32_t WavePoolTableIndex
 
SamplepSample
 
uint16_t FormatOptionFlags
 
uint16_t WaveLinkOptionFlags
 
ResourcepParent
 
RIFF::ListpResourceList
 
RIFF::ListpParentList
 
RIFF::ListpParentList
 
ArticulationListpArticulations
 
ArticulationList::iterator ArticulationsIterator
 
uint32_t uiHeaderSize
 
uint32_t SamplerOptions
 

Friends

class Instrument
 

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 741 of file gig.h.

Member Typedef Documentation

§ ArticulationList

typedef std::list<Articulation*> DLS::Articulator::ArticulationList
protectedinherited

Definition at line 295 of file DLS.h.

Constructor & Destructor Documentation

§ Region()

§ ~Region()

gig::Region::~Region ( )
protectedvirtual

Destructor.

Removes RIFF chunks associated with this Region.

Reimplemented from DLS::Region.

Definition at line 3688 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::Exceptionif dimension of the same type exists already
gig::Exceptionif amount of dimensions or total amount of dimension bits limit is violated

Definition at line 3176 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, gig::DimensionRegion::DimensionUpperLimits, DLS::Resource::GetParent(), RIFF::List::GetSubList(), Layers, LIST_TYPE_3EWL, LIST_TYPE_3PRG, DLS::version_t::major, RIFF::List::MoveSubChunk(), DLS::Region::pCkRegion, pDimensionDefinitions, pDimensionRegions, DLS::Sampler::pParentList, DLS::File::pVersion, gig::dimension_def_t::split_type, UpdateVelocityTable(), gig::dimension_def_t::zone_size, 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 633 of file DLS.cpp.

References DLS::sample_loop_t::Size.

§ CopyAssign() [1/6]

void DLS::Articulator::CopyAssign ( const Articulator orig)
virtualinherited

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 240 of file DLS.cpp.

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

§ CopyAssign() [2/6]

void Resource::CopyAssign ( const Resource orig)
virtualinherited

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 542 of file DLS.cpp.

References DLS::Resource::pInfo.

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

§ CopyAssign() [3/6]

void DLS::Sampler::CopyAssign ( const Sampler orig)
virtualinherited

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 679 of file DLS.cpp.

References DLS::Sampler::FineTune, DLS::Sampler::Gain, DLS::Sampler::NoSampleCompression, DLS::Sampler::NoSampleDepthTruncation, DLS::Sampler::pSampleLoops, DLS::Sampler::SampleLoops, DLS::Sampler::SamplerOptions, and DLS::Sampler::UnityNote.

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

§ CopyAssign() [4/6]

void DLS::Region::CopyAssign ( const Region orig)
virtualinherited

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 1173 of file DLS.cpp.

References DLS::Region::Channel, DLS::Articulator::CopyAssign(), DLS::Resource::CopyAssign(), DLS::Sampler::CopyAssign(), DLS::Region::FormatOptionFlags, DLS::Resource::GetParent(), DLS::range_t::high, DLS::Region::KeyGroup, DLS::Region::KeyRange, DLS::Region::Layer, DLS::range_t::low, DLS::Region::MultiChannel, DLS::Region::PhaseGroup, DLS::Region::PhaseMaster, DLS::Region::pSample, DLS::Region::SelfNonExclusive, DLS::Region::SetKeyRange(), DLS::Region::VelocityRange, DLS::Region::WaveLinkOptionFlags, and DLS::Region::WavePoolTableIndex.

Referenced by DLS::Instrument::CopyAssign(), and 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 3869 of file gig.cpp.

Referenced by gig::Instrument::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 3880 of file gig.cpp.

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

§ 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::Exceptionif given dimension cannot be found

Definition at line 3288 of file gig.cpp.

References gig::dimension_def_t::bits, RIFF::List::DeleteSubChunk(), gig::dimension_def_t::dimension, gig::dimension_layer, gig::dimension_none, DimensionRegions, Dimensions, gig::DimensionRegion::DimensionUpperLimits, RIFF::List::GetSubList(), Layers, LIST_TYPE_3PRG, DLS::Region::pCkRegion, pDimensionDefinitions, pDimensionRegions, DLS::Articulator::pParentList, and gig::dimension_def_t::zones.

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::Exceptionif requested zone could not be deleted

Definition at line 3378 of file gig.cpp.

References AddDimension(), RIFF::List::AddSubList(), gig::dimension_def_t::bits, gig::DimensionRegion::CopyAssign(), DeleteDimension(), gig::dimension_def_t::dimension, Dimensions, gig::DimensionRegion::DimensionUpperLimits, GetDimensionDefinition(), GetDimensionRegionByBit(), DLS::Resource::GetParent(), RIFF::List::GetSubList(), LIST_TYPE_LRGN, LIST_TYPE_RGN, DLS::Instrument::pCkInstrument, pDimensionDefinitions, pDimensionRegions, Region(), gig::dimension_def_t::split_type, gig::split_type_normal, UpdateVelocityTable(), 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 655 of file DLS.cpp.

§ GenerateDLSID()

void Resource::GenerateDLSID ( )
inherited

Generates a new DLSID for the resource.

Definition at line 495 of file DLS.cpp.

Referenced by gig::File::AddInstrument(), and gig::File::File().

§ 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 3681 of file gig.cpp.

References Dimensions, and pDimensionDefinitions.

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

§ GetDimensionRegionByBit() [1/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
DimBitsBit numbers for dimension 0 to 7
Returns
adress to the DimensionRegion for the given dimension bit numbers
See also
GetDimensionRegionByValue()

Definition at line 3821 of file gig.cpp.

References gig::dimension_def_t::bits, pDimensionDefinitions, and pDimensionRegions.

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

§ GetDimensionRegionByBit() [2/2]

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

Definition at line 3654 of file gig.cpp.

References Dimensions, GetDimensionRegionByBit(), and pDimensionDefinitions.

§ 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
DimValuesMIDI 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 3712 of file gig.cpp.

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

§ GetDimensionRegionIndexByValue()

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

§ GetFirstArticulation()

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

Definition at line 176 of file DLS.cpp.

§ GetNextArticulation()

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

Definition at line 183 of file DLS.cpp.

§ GetParent() [1/2]

§ GetParent() [2/2]

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

Definition at line 351 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 3840 of file gig.cpp.

References GetSampleFromWavePool(), DLS::Region::pSample, and DLS::Region::WavePoolTableIndex.

Referenced by Region().

§ GetSampleFromWavePool()

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

§ LoadArticulations()

§ LoadDimensionRegions()

void gig::Region::LoadDimensionRegions ( RIFF::List rgn)
protected

§ 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::Exceptionif requested change cannot be performed

Definition at line 3641 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)
virtualinherited

Reimplemented in gig::DimensionRegion.

Definition at line 586 of file DLS.cpp.

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

§ 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 3084 of file gig.cpp.

References DLS::Resource::GetParent(), and 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 1064 of file DLS.cpp.

References DLS::Region::pSample, and DLS::Region::WavePoolTableIndex.

§ 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::Exceptionif requested zone could not be splitted

Definition at line 3502 of file gig.cpp.

References AddDimension(), RIFF::List::AddSubList(), gig::dimension_def_t::bits, gig::DimensionRegion::CopyAssign(), DeleteDimension(), gig::dimension_def_t::dimension, Dimensions, gig::DimensionRegion::DimensionUpperLimits, GetDimensionDefinition(), GetDimensionRegionByBit(), DLS::Resource::GetParent(), RIFF::List::GetSubList(), LIST_TYPE_LRGN, LIST_TYPE_RGN, DLS::Instrument::pCkInstrument, pDimensionDefinitions, pDimensionRegions, Region(), gig::dimension_def_t::split_type, gig::split_type_normal, UpdateVelocityTable(), 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::Exceptionif samples cannot be dereferenced

Reimplemented from DLS::Region.

Definition at line 3003 of file gig.cpp.

References RIFF::List::AddSubChunk(), gig::dimension_def_t::bits, CHUNK_ID_3LNK, gig::dimension_def_t::dimension, gig::dimension_none, DimensionRegions, DLS::Resource::GetParent(), RIFF::List::GetSubChunk(), RIFF::List::GetSubList(), LIST_TYPE_3PRG, RIFF::Chunk::LoadChunkData(), DLS::version_t::major, RIFF::List::MoveSubChunk(), DLS::Region::pCkRegion, pDimensionDefinitions, pDimensionRegions, gig::DimensionRegion::pSample, DLS::Region::pSample, DLS::File::pSamples, DLS::File::pVersion, DLS::Region::UpdateChunks(), gig::DimensionRegion::UpdateChunks(), and gig::dimension_def_t::zones.

§ UpdateVelocityTable()

Friends And Related Function Documentation

§ Instrument

friend class Instrument
friend

Definition at line 772 of file gig.h.

Member Data Documentation

§ ArticulationsIterator

ArticulationList::iterator DLS::Articulator::ArticulationsIterator
protectedinherited

Definition at line 298 of file DLS.h.

§ Channel

uint32_t DLS::Region::Channel
inherited

Definition at line 439 of file DLS.h.

Referenced by DLS::Region::CopyAssign(), DLS::Region::Region(), and DLS::Region::UpdateChunks().

§ DimensionRegions

uint32_t gig::Region::DimensionRegions

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

Definition at line 745 of file gig.h.

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

§ Dimensions

§ FineTune

int16_t DLS::Sampler::FineTune
inherited

Definition at line 367 of file DLS.h.

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

§ FormatOptionFlags

uint16_t DLS::Region::FormatOptionFlags
protectedinherited

Definition at line 450 of file DLS.h.

Referenced by DLS::Region::CopyAssign(), DLS::Region::Region(), and DLS::Region::UpdateChunks().

§ Gain

int32_t DLS::Sampler::Gain
inherited
Deprecated:
Don't alter directly, use SetGain() instead!

Definition at line 368 of file DLS.h.

Referenced by DLS::Sampler::CopyAssign(), gig::DimensionRegion::DimensionRegion(), and gig::DimensionRegion::SetGain().

§ KeyGroup

uint16_t DLS::Region::KeyGroup
inherited

Definition at line 433 of file DLS.h.

Referenced by DLS::Region::CopyAssign(), DLS::Region::Region(), and DLS::Region::UpdateChunks().

§ KeyRange

range_t DLS::Region::KeyRange
inherited

§ Layer

uint16_t DLS::Region::Layer
inherited

Definition at line 434 of file DLS.h.

Referenced by DLS::Region::CopyAssign(), DLS::Region::Region(), and DLS::Region::UpdateChunks().

§ 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 747 of file gig.h.

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

§ MultiChannel

bool DLS::Region::MultiChannel
inherited

Definition at line 438 of file DLS.h.

Referenced by DLS::Region::CopyAssign(), DLS::Region::Region(), and DLS::Region::UpdateChunks().

§ NoSampleCompression

bool DLS::Sampler::NoSampleCompression
inherited

Definition at line 370 of file DLS.h.

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

§ NoSampleDepthTruncation

bool DLS::Sampler::NoSampleDepthTruncation
inherited

Definition at line 369 of file DLS.h.

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

§ pArticulations

ArticulationList* DLS::Articulator::pArticulations
protectedinherited

Definition at line 297 of file DLS.h.

§ pCkRegion

§ 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 744 of file gig.h.

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

§ 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 746 of file gig.h.

Referenced by AddDimension(), CopyAssign(), DeleteDimension(), DeleteDimensionZone(), GetDimensionRegionByBit(), GetDimensionRegionByValue(), GetDimensionRegionIndexByValue(), LoadDimensionRegions(), Region(), SplitDimensionZone(), UpdateChunks(), UpdateVelocityTable(), 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 348 of file DLS.h.

§ PhaseGroup

uint16_t DLS::Region::PhaseGroup
inherited

Definition at line 437 of file DLS.h.

Referenced by DLS::Region::CopyAssign(), DLS::Region::Region(), and DLS::Region::UpdateChunks().

§ PhaseMaster

bool DLS::Region::PhaseMaster
inherited

Definition at line 436 of file DLS.h.

Referenced by DLS::Region::CopyAssign(), DLS::Region::Region(), and DLS::Region::UpdateChunks().

§ pInfo

Info* DLS::Resource::pInfo
inherited

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

Definition at line 347 of file DLS.h.

Referenced by gig::File::AddInstrument(), DLS::Resource::CopyAssign(), gig::File::File(), gig::Instrument::Instrument(), and gig::Sample::Sample().

§ pParent

Resource* DLS::Resource::pParent
protectedinherited

§ pParentList [1/2]

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

Definition at line 296 of file DLS.h.

Referenced by DeleteDimension().

§ pParentList [2/2]

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

§ pResourceList

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

Definition at line 357 of file DLS.h.

§ pSample

§ 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 372 of file DLS.h.

Referenced by DLS::Sampler::CopyAssign(), gig::DimensionRegion::CopyAssign(), gig::DimensionRegion::DimensionRegion(), and gig::Sample::ReadAndLoop().

§ SampleLoops

uint32_t DLS::Sampler::SampleLoops
inherited

§ SamplerOptions

uint32_t DLS::Sampler::SamplerOptions
protectedinherited

Definition at line 382 of file DLS.h.

Referenced by DLS::Sampler::CopyAssign(), and gig::DimensionRegion::DimensionRegion().

§ SelfNonExclusive

bool DLS::Region::SelfNonExclusive
inherited

Definition at line 435 of file DLS.h.

Referenced by DLS::Region::CopyAssign(), DLS::Region::Region(), and DLS::Region::UpdateChunks().

§ uiHeaderSize

uint32_t DLS::Sampler::uiHeaderSize
protectedinherited

Definition at line 381 of file DLS.h.

§ UnityNote

uint8_t DLS::Sampler::UnityNote
inherited

Definition at line 366 of file DLS.h.

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

§ VelocityRange

range_t DLS::Region::VelocityRange
inherited

Definition at line 432 of file DLS.h.

Referenced by DLS::Region::CopyAssign(), DLS::Region::Region(), and DLS::Region::UpdateChunks().

§ WaveLinkOptionFlags

uint16_t DLS::Region::WaveLinkOptionFlags
protectedinherited

Definition at line 451 of file DLS.h.

Referenced by DLS::Region::CopyAssign(), DLS::Region::Region(), and DLS::Region::UpdateChunks().

§ WavePoolTableIndex

uint32_t DLS::Region::WavePoolTableIndex
protectedinherited

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