libgig
3.3.0.svn20
|
Defines Region information of an Instrument. More...
#include <gig.h>
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. More... | |
DimensionRegion * | GetDimensionRegionByBit (const uint8_t DimBits[8]) |
Returns the appropriate DimensionRegion for the given dimension bit numbers (zone index). More... | |
int | GetDimensionRegionIndexByValue (const uint DimValues[8]) |
Sample * | GetSample () |
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_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. 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 () |
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... | |
Resource * | GetParent () |
const Resource * | GetParent () 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... | |
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). 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 () |
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. More... | |
DimensionRegion * | GetDimensionRegionByBit (const std::map< dimension_t, int > &DimCase) |
~Region () | |
Destructor. More... | |
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 |
Friends | |
class | Instrument |
Defines Region information of an Instrument.
A Region reflects a consecutive area on the keyboard. The individual regions in the gig format may not overlap with other regions (of the same instrument). 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 indeed provide such informations. The latter is however just of historical nature, because the gig format was derived from the DLS 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.
|
protectedinherited |
|
protected |
Definition at line 2938 of file gig.cpp.
References RIFF::List::AddSubList(), gig::dimension_def_t::bits, CHUNK_ID_3LNK, gig::dimension_def_t::dimension, gig::dimension_layer, gig::dimension_none, DimensionRegions, Dimensions, gig::File::GetAutoLoad(), DLS::Resource::GetParent(), GetSample(), GetSampleFromWavePool(), RIFF::List::GetSubChunk(), RIFF::List::GetSubList(), Layers, LIST_TYPE_3EWL, LIST_TYPE_3PRG, LoadDimensionRegions(), DLS::version_t::major, pDimensionDefinitions, pDimensionRegions, gig::DimensionRegion::pSample, DLS::File::pVersion, DLS::File::pWavePoolTable, RIFF::Chunk::ReadUint32(), RIFF::Chunk::ReadUint8(), RIFF::Chunk::SetPos(), gig::dimension_def_t::split_type, gig::split_type_bit, RIFF::stream_curpos, UpdateVelocityTable(), gig::dimension_def_t::zone_size, and gig::dimension_def_t::zones.
Referenced by DeleteDimensionZone(), and SplitDimensionZone().
|
protectedvirtual |
Destructor.
Removes RIFF chunks associated with this Region.
Reimplemented from DLS::Region.
Definition at line 3716 of file gig.cpp.
References pDimensionRegions.
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.
pDimDef | - defintion of the new dimension |
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 3204 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().
|
inherited |
Adds a new sample loop with the provided loop definition.
pLoopDef | - points to a loop definition that is to be copied |
Definition at line 623 of file DLS.cpp.
References DLS::Sampler::pSampleLoops, DLS::Sampler::SampleLoops, and DLS::sample_loop_t::Size.
|
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 236 of file DLS.cpp.
Referenced by DLS::Region::CopyAssign(), and DLS::Instrument::CopyAssignCore().
|
virtualinherited |
Make a deep copy of the Resource object given by orig and assign it to this object.
orig | - original Resource object to be copied from |
Definition at line 534 of file DLS.cpp.
References DLS::Info::CopyAssign(), and DLS::Resource::pInfo.
Referenced by DLS::Region::CopyAssign(), DLS::Sample::CopyAssignCore(), and DLS::Instrument::CopyAssignCore().
|
virtualinherited |
Make a deep copy of the Sampler object given by orig and assign it to this object.
orig | - original Sampler object to be copied from |
Definition at line 669 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().
|
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!
orig | - original Region object to be copied from |
Definition at line 1161 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().
|
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!
orig | - original Region object to be copied from |
Definition at line 3897 of file gig.cpp.
Referenced by gig::Instrument::CopyAssign().
|
protected |
Make a (semi) deep copy of the Region object given by orig and assign it to this object.
mSamples | - crosslink map between the foreign file's samples and this file's samples |
Definition at line 3908 of file gig.cpp.
References AddDimension(), DLS::Region::CopyAssign(), gig::DimensionRegion::CopyAssign(), DeleteDimension(), Dimensions, Layers, pDimensionDefinitions, pDimensionRegions, and DLS::Region::pSample.
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.
pDimDef | - dimension to delete |
gig::Exception | if given dimension cannot be found |
Definition at line 3316 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().
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.
type | - identifies the dimension where a zone shall be deleted |
zone | - index of the dimension split zone that shall be deleted |
gig::Exception | if requested zone could not be deleted |
Definition at line 3406 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.
|
inherited |
Deletes an existing sample loop.
pLoopDef | - pointer to existing loop definition |
Exception | - if given loop definition does not exist |
Definition at line 645 of file DLS.cpp.
References DLS::Sampler::pSampleLoops, and DLS::Sampler::SampleLoops.
|
inherited |
Generates a new DLSID for the resource.
Definition at line 487 of file DLS.cpp.
References DLS::dlsid_t::abData, DLS::Resource::pDLSID, DLS::dlsid_t::ulData1, DLS::dlsid_t::usData2, and DLS::dlsid_t::usData3.
Referenced by gig::File::AddInstrument(), and gig::File::File().
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.
type | - dimension type of the sought dimension |
Definition at line 3709 of file gig.cpp.
References Dimensions, and pDimensionDefinitions.
Referenced by DeleteDimensionZone(), SetDimensionType(), and SplitDimensionZone().
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!
DimBits | Bit numbers for dimension 0 to 7 |
Definition at line 3849 of file gig.cpp.
References gig::dimension_def_t::bits, pDimensionDefinitions, and pDimensionRegions.
Referenced by DeleteDimensionZone(), GetDimensionRegionByBit(), and SplitDimensionZone().
|
protected |
Definition at line 3682 of file gig.cpp.
References Dimensions, GetDimensionRegionByBit(), and pDimensionDefinitions.
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.).
DimValues | MIDI controller values (0-127) for dimension 0 to 7 |
Definition at line 3740 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.
int gig::Region::GetDimensionRegionIndexByValue | ( | const uint | DimValues[8] | ) |
Definition at line 3789 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.
|
inherited |
Definition at line 174 of file DLS.cpp.
References DLS::Articulator::ArticulationsIterator, DLS::Articulator::LoadArticulations(), and DLS::Articulator::pArticulations.
|
inherited |
Definition at line 181 of file DLS.cpp.
References DLS::Articulator::ArticulationsIterator, and DLS::Articulator::pArticulations.
|
inlineinherited |
Definition at line 349 of file DLS.h.
References DLS::Resource::pParent.
Referenced by AddDimension(), DLS::Region::CopyAssign(), gig::DimensionRegion::CopyAssign(), DeleteDimensionZone(), DLS::Region::GetSample(), GetSampleFromWavePool(), gig::Instrument::LoadScripts(), Region(), DLS::Region::SetKeyRange(), SetKeyRange(), SplitDimensionZone(), DLS::Region::UpdateChunks(), gig::DimensionRegion::UpdateChunks(), UpdateChunks(), gig::Instrument::UpdateChunks(), and gig::Sample::Write().
|
inlineinherited |
Definition at line 350 of file DLS.h.
References DLS::Resource::pParent.
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).
Definition at line 3868 of file gig.cpp.
References GetSampleFromWavePool(), DLS::Region::pSample, and DLS::Region::WavePoolTableIndex.
Referenced by Region().
|
protected |
Definition at line 3873 of file gig.cpp.
References gig::Sample::FileNo, gig::File::GetFirstSample(), gig::File::GetNextSample(), DLS::Resource::GetParent(), DLS::File::pWavePoolTable, DLS::File::pWavePoolTableHi, DLS::Sample::ulWavePoolOffset, and DLS::Region::WavePoolTableIndex.
Referenced by GetSample(), and Region().
|
protectedinherited |
Definition at line 187 of file DLS.cpp.
References CHUNK_ID_ART2, CHUNK_ID_ARTL, RIFF::Chunk::GetChunkID(), RIFF::List::GetFirstSubChunk(), RIFF::List::GetListType(), RIFF::List::GetNextSubChunk(), RIFF::List::GetSubList(), LIST_TYPE_LAR2, LIST_TYPE_LART, DLS::Articulator::pArticulations, and DLS::Articulator::pParentList.
Referenced by DLS::Articulator::GetFirstArticulation().
|
protected |
Definition at line 3096 of file gig.cpp.
References RIFF::List::GetFirstSubList(), RIFF::List::GetListType(), RIFF::List::GetNextSubList(), RIFF::List::GetSubList(), LIST_TYPE_3EWL, LIST_TYPE_3PRG, and pDimensionRegions.
Referenced by Region().
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.
oldType | - identifies the existing dimension to be changed |
newType | - to which dimension type it should be changed to |
gig::Exception | if requested change cannot be performed |
Definition at line 3669 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.
|
virtualinherited |
Reimplemented in gig::DimensionRegion.
Definition at line 578 of file DLS.cpp.
References DLS::Sampler::Gain.
Referenced by gig::DimensionRegion::SetGain().
|
virtual |
Modifies the key range of this Region and makes sure the respective chunks are in correct order.
Low | - lower end of key range |
High | - upper end of key range |
Reimplemented from DLS::Region.
Definition at line 3112 of file gig.cpp.
References DLS::Resource::GetParent(), and DLS::Region::SetKeyRange().
|
inherited |
Assign another sample to this Region.
pSample | - sample to be assigned |
Definition at line 1053 of file DLS.cpp.
References DLS::Region::pSample, and DLS::Region::WavePoolTableIndex.
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).
type | - identifies the dimension where a zone shall be splitted |
zone | - index of the dimension split zone that shall be splitted |
gig::Exception | if requested zone could not be splitted |
Definition at line 3530 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.
|
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.
gig::Exception | if samples cannot be dereferenced |
Reimplemented from DLS::Region.
Definition at line 3031 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.
|
protected |
Definition at line 3119 of file gig.cpp.
References gig::dimension_def_t::bits, gig::dimension_velocity, DimensionRegions, Dimensions, gig::DimensionRegion::DimensionUpperLimits, pDimensionDefinitions, pDimensionRegions, gig::DimensionRegion::VelocityTable, gig::DimensionRegion::VelocityUpperLimit, and gig::dimension_def_t::zones.
Referenced by AddDimension(), DeleteDimensionZone(), Region(), and SplitDimensionZone().
|
friend |
|
protectedinherited |
Definition at line 297 of file DLS.h.
Referenced by DLS::Articulator::GetFirstArticulation(), and DLS::Articulator::GetNextArticulation().
|
inherited |
Definition at line 438 of file DLS.h.
Referenced by DLS::Region::CopyAssign(), DLS::Region::Region(), and DLS::Region::UpdateChunks().
uint32_t gig::Region::DimensionRegions |
Total number of DimensionRegions this Region contains, do not alter!
Definition at line 721 of file gig.h.
Referenced by AddDimension(), DeleteDimension(), Region(), UpdateChunks(), and UpdateVelocityTable().
unsigned int gig::Region::Dimensions |
Number of defined dimensions, do not alter!
Definition at line 719 of file gig.h.
Referenced by AddDimension(), CopyAssign(), DeleteDimension(), DeleteDimensionZone(), GetDimensionDefinition(), GetDimensionRegionByBit(), GetDimensionRegionByValue(), GetDimensionRegionIndexByValue(), Region(), SplitDimensionZone(), and UpdateVelocityTable().
|
inherited |
Definition at line 366 of file DLS.h.
Referenced by DLS::Sampler::CopyAssign(), DLS::Sampler::Sampler(), and DLS::Sampler::UpdateChunks().
|
protectedinherited |
Definition at line 449 of file DLS.h.
Referenced by DLS::Region::CopyAssign(), DLS::Region::Region(), and DLS::Region::UpdateChunks().
|
inherited |
Definition at line 367 of file DLS.h.
Referenced by DLS::Sampler::CopyAssign(), gig::DimensionRegion::DimensionRegion(), DLS::Sampler::Sampler(), DLS::Sampler::SetGain(), gig::DimensionRegion::SetGain(), and DLS::Sampler::UpdateChunks().
|
inherited |
Definition at line 432 of file DLS.h.
Referenced by DLS::Region::CopyAssign(), DLS::Region::Region(), and DLS::Region::UpdateChunks().
|
inherited |
Definition at line 430 of file DLS.h.
Referenced by DLS::Region::CopyAssign(), DLS::Region::Region(), DLS::Region::SetKeyRange(), DLS::Region::UpdateChunks(), and gig::Instrument::UpdateRegionKeyTable().
|
inherited |
Definition at line 433 of file DLS.h.
Referenced by DLS::Region::CopyAssign(), DLS::Region::Region(), and DLS::Region::UpdateChunks().
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 723 of file gig.h.
Referenced by AddDimension(), CopyAssign(), DeleteDimension(), and Region().
|
inherited |
Definition at line 437 of file DLS.h.
Referenced by DLS::Region::CopyAssign(), DLS::Region::Region(), and DLS::Region::UpdateChunks().
|
inherited |
Definition at line 369 of file DLS.h.
Referenced by DLS::Sampler::CopyAssign(), DLS::Sampler::Sampler(), and DLS::Sampler::UpdateChunks().
|
inherited |
Definition at line 368 of file DLS.h.
Referenced by DLS::Sampler::CopyAssign(), DLS::Sampler::Sampler(), and DLS::Sampler::UpdateChunks().
|
protectedinherited |
Definition at line 296 of file DLS.h.
Referenced by DLS::Articulator::Articulator(), DLS::Articulator::GetFirstArticulation(), DLS::Articulator::GetNextArticulation(), DLS::Articulator::LoadArticulations(), DLS::Articulator::UpdateChunks(), and DLS::Articulator::~Articulator().
|
protectedinherited |
Definition at line 446 of file DLS.h.
Referenced by AddDimension(), DeleteDimension(), DLS::Region::Region(), DLS::Region::UpdateChunks(), UpdateChunks(), and DLS::Region::~Region().
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 720 of file gig.h.
Referenced by AddDimension(), CopyAssign(), DeleteDimension(), DeleteDimensionZone(), GetDimensionDefinition(), GetDimensionRegionByBit(), GetDimensionRegionByValue(), GetDimensionRegionIndexByValue(), Region(), SplitDimensionZone(), UpdateChunks(), and UpdateVelocityTable().
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 722 of file gig.h.
Referenced by AddDimension(), CopyAssign(), DeleteDimension(), DeleteDimensionZone(), GetDimensionRegionByBit(), GetDimensionRegionByValue(), GetDimensionRegionIndexByValue(), LoadDimensionRegions(), Region(), SplitDimensionZone(), UpdateChunks(), UpdateVelocityTable(), and ~Region().
|
inherited |
Points to a dlsid_t structure if the file provided a DLS ID else is NULL.
Definition at line 347 of file DLS.h.
Referenced by DLS::Resource::GenerateDLSID(), DLS::Resource::Resource(), DLS::Resource::UpdateChunks(), and DLS::Resource::~Resource().
|
inherited |
Definition at line 436 of file DLS.h.
Referenced by DLS::Region::CopyAssign(), DLS::Region::Region(), and DLS::Region::UpdateChunks().
|
inherited |
Definition at line 435 of file DLS.h.
Referenced by DLS::Region::CopyAssign(), DLS::Region::Region(), and DLS::Region::UpdateChunks().
|
inherited |
Points (in any case) to an Info object, providing additional, optional infos and comments.
Definition at line 346 of file DLS.h.
Referenced by gig::File::AddInstrument(), DLS::Resource::CopyAssign(), gig::File::File(), gig::Instrument::Instrument(), DLS::Resource::Resource(), gig::Sample::Sample(), DLS::Resource::UpdateChunks(), and DLS::Resource::~Resource().
|
protectedinherited |
Definition at line 355 of file DLS.h.
Referenced by DLS::Resource::GetParent(), DLS::Resource::Resource(), gig::Sample::UpdateChunks(), DLS::Instrument::~Instrument(), DLS::Region::~Region(), and DLS::Sample::~Sample().
|
protectedinherited |
Definition at line 295 of file DLS.h.
Referenced by DLS::Articulator::Articulator(), DeleteDimension(), and DLS::Articulator::LoadArticulations().
|
protectedinherited |
Definition at line 379 of file DLS.h.
Referenced by AddDimension(), gig::DimensionRegion::CopyAssign(), gig::DimensionRegion::DimensionRegion(), DLS::Sampler::Sampler(), DLS::Sampler::UpdateChunks(), and gig::DimensionRegion::UpdateChunks().
|
protectedinherited |
Definition at line 356 of file DLS.h.
Referenced by DLS::Resource::Resource(), and DLS::Resource::UpdateChunks().
|
protectedinherited |
Definition at line 448 of file DLS.h.
Referenced by DLS::Region::CopyAssign(), CopyAssign(), DLS::Region::GetSample(), GetSample(), DLS::Region::Region(), DLS::Region::SetSample(), DLS::Region::UpdateChunks(), and UpdateChunks().
|
inherited |
Points to the beginning of a sample loop array, or is NULL if there are no loops defined.
Definition at line 371 of file DLS.h.
Referenced by DLS::Sampler::AddSampleLoop(), DLS::Sampler::CopyAssign(), gig::DimensionRegion::CopyAssign(), DLS::Sampler::DeleteSampleLoop(), gig::DimensionRegion::DimensionRegion(), gig::Sample::ReadAndLoop(), DLS::Sampler::Sampler(), DLS::Sampler::UpdateChunks(), and DLS::Sampler::~Sampler().
|
inherited |
Reflects the number of sample loops.
Definition at line 370 of file DLS.h.
Referenced by DLS::Sampler::AddSampleLoop(), DLS::Sampler::CopyAssign(), gig::DimensionRegion::CopyAssign(), DLS::Sampler::DeleteSampleLoop(), gig::DimensionRegion::DimensionRegion(), gig::Sample::ReadAndLoop(), DLS::Sampler::Sampler(), DLS::Sampler::UpdateChunks(), and gig::File::UpdateChunks().
|
protectedinherited |
Definition at line 381 of file DLS.h.
Referenced by DLS::Sampler::CopyAssign(), gig::DimensionRegion::DimensionRegion(), DLS::Sampler::Sampler(), and DLS::Sampler::UpdateChunks().
|
inherited |
Definition at line 434 of file DLS.h.
Referenced by DLS::Region::CopyAssign(), DLS::Region::Region(), and DLS::Region::UpdateChunks().
|
protectedinherited |
Definition at line 380 of file DLS.h.
Referenced by DLS::Sampler::Sampler(), and DLS::Sampler::UpdateChunks().
|
inherited |
Definition at line 365 of file DLS.h.
Referenced by DLS::Sampler::CopyAssign(), DLS::Sampler::Sampler(), and DLS::Sampler::UpdateChunks().
|
inherited |
Definition at line 431 of file DLS.h.
Referenced by DLS::Region::CopyAssign(), DLS::Region::Region(), and DLS::Region::UpdateChunks().
|
protectedinherited |
Definition at line 450 of file DLS.h.
Referenced by DLS::Region::CopyAssign(), DLS::Region::Region(), and DLS::Region::UpdateChunks().
|
protectedinherited |
Definition at line 447 of file DLS.h.
Referenced by DLS::Region::CopyAssign(), DLS::Region::GetSample(), GetSample(), GetSampleFromWavePool(), DLS::Region::Region(), DLS::Region::SetSample(), and DLS::Region::UpdateChunks().