libgig  4.0.0
gig::Instrument Class Reference

Provides access to a Gigasampler/GigaStudio instrument. More...

#include <gig.h>

Inheritance diagram for gig::Instrument:
DLS::Instrument DLS::Resource DLS::Articulator

Public Member Functions

RegionGetFirstRegion ()
 Returns the first Region of the instrument. More...
 
RegionGetNextRegion ()
 Returns the next Region of the instrument. More...
 
RegionAddRegion ()
 
void DeleteRegion (Region *pRegion)
 
void MoveTo (Instrument *dst)
 Move this instrument at the position before. More...
 
virtual void UpdateChunks (progress_t *pProgress)
 Apply Instrument with all its Regions to the respective RIFF chunks. More...
 
virtual void CopyAssign (const Instrument *orig)
 Make a (semi) deep copy of the Instrument object given by orig and assign it to this object. More...
 
RegionGetRegion (unsigned int Key)
 Returns the appropriate Region for a triggered note. More...
 
MidiRuleGetMidiRule (int i)
 Returns a MIDI rule of the instrument. More...
 
MidiRuleCtrlTriggerAddMidiRuleCtrlTrigger ()
 Adds the "controller trigger" MIDI rule to the instrument. More...
 
MidiRuleLegatoAddMidiRuleLegato ()
 Adds the legato MIDI rule to the instrument. More...
 
MidiRuleAlternatorAddMidiRuleAlternator ()
 Adds the alternator MIDI rule to the instrument. More...
 
void DeleteMidiRule (int i)
 Deletes a MIDI rule from the instrument. More...
 
ScriptGetScriptOfSlot (uint index)
 Get instrument script (gig format extension). More...
 
void AddScriptSlot (Script *pScript, bool bypass=false)
 Add new instrument script slot (gig format extension). More...
 
void SwapScriptSlots (uint index1, uint index2)
 Flip two script slots with each other (gig format extension). More...
 
void RemoveScriptSlot (uint index)
 Remove script slot. More...
 
void RemoveScript (Script *pScript)
 Remove reference to given Script (gig format extension). More...
 
uint ScriptSlotCount () const
 Instrument's amount of script slots. More...
 
bool IsScriptSlotBypassed (uint index)
 Whether script execution shall be skipped. More...
 
void SetScriptSlotBypassed (uint index, bool bBypass)
 Defines whether execution shall be skipped. More...
 

Public Attributes

int32_t Attenuation
 in dB More...
 
uint16_t EffectSend
 
int16_t FineTune
 in cents More...
 
uint16_t PitchbendRange
 Number of semitones pitchbend controller can pitch (default is 2). More...
 
bool PianoReleaseMode
 
range_t DimensionKeyRange
 0-127 (where 0 means C1 and 127 means G9) More...
 

Protected Types

typedef std::list< Region * > RegionList
 
typedef std::list< Articulation * > ArticulationList
 

Protected Member Functions

 Instrument (File *pFile, RIFF::List *insList, progress_t *pProgress=NULL)
 
 ~Instrument ()
 Destructor. More...
 
void CopyAssign (const Instrument *orig, const std::map< Sample *, Sample *> *mSamples)
 Make a (semi) deep copy of the Instrument object given by orig and assign it to this object. More...
 
void UpdateRegionKeyTable ()
 
void LoadScripts ()
 
void UpdateScriptFileOffsets ()
 
void DeleteRegion (Region *pRegion)
 
virtual void CopyAssign (const Instrument *orig)
 Make a (semi) deep copy of the Instrument 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...
 
void CopyAssignCore (const Instrument *orig)
 
virtual void LoadRegions ()
 
ResourceGetParent ()
 
const ResourceGetParent () const
 
void GenerateDLSID ()
 Generates a new DLSID for the resource. More...
 
Articulation * GetFirstArticulation ()
 
Articulation * GetNextArticulation ()
 
void LoadArticulations ()
 

Protected Attributes

RegionRegionKeyTable [128]
 fast lookup for the corresponding Region of a MIDI key More...
 
bool IsDrum
 Indicates if the Instrument is a drum type, as they differ in the synthesis model of DLS from melodic instruments. More...
 
uint16_t MIDIBank
 Reflects combination of MIDIBankCoarse and MIDIBankFine (bank 1 - bank 16384). Do not change this value, it will not be saved! Change MIDIBankCoarse and MIDIBankFine instead (we might change that in future). More...
 
uint8_t MIDIBankCoarse
 Reflects the MIDI Bank number for MIDI Control Change 0 (bank 1 - 128). More...
 
uint8_t MIDIBankFine
 Reflects the MIDI Bank number for MIDI Control Change 32 (bank 1 - 128). More...
 
uint32_t MIDIProgram
 Specifies the MIDI Program Change Number this Instrument should be assigned to. More...
 
uint32_t Regions
 Reflects the number of Region defintions this Instrument has. More...
 
RIFF::ListpCkInstrument
 
RegionListpRegions
 
RegionList::iterator RegionsIterator
 
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...
 
ResourcepParent
 
RIFF::ListpResourceList
 
RIFF::ListpParentList
 
ArticulationListpArticulations
 
ArticulationList::iterator ArticulationsIterator
 

Friends

class File
 
class Region
 

Detailed Description

Provides access to a Gigasampler/GigaStudio instrument.

This class provides access to Gigasampler/GigaStudio instruments contained in .gig files. A gig instrument is merely a set of keyboard ranges (called Region), plus some additional global informations about the instrument. The major part of the actual instrument definition used for the synthesis of the instrument is contained in the respective Region object (or actually in the respective DimensionRegion object being, see description of Region for details).

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

Definition at line 1073 of file gig.h.

Member Typedef Documentation

◆ ArticulationList

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

Definition at line 295 of file DLS.h.

◆ RegionList

typedef std::list<Region*> DLS::Instrument::RegionList
protectedinherited

Definition at line 475 of file DLS.h.

Constructor & Destructor Documentation

◆ Instrument()

◆ ~Instrument()

gig::Instrument::~Instrument ( )
protectedvirtual

Destructor.

Removes RIFF chunks associated with this Instrument and frees all memory occupied by this instrument.

Reimplemented from DLS::Instrument.

Definition at line 4452 of file gig.cpp.

Member Function Documentation

◆ AddMidiRuleAlternator()

MidiRuleAlternator * gig::Instrument::AddMidiRuleAlternator ( )

Adds the alternator MIDI rule to the instrument.

Returns
the new MIDI rule

Definition at line 4742 of file gig.cpp.

◆ AddMidiRuleCtrlTrigger()

MidiRuleCtrlTrigger * gig::Instrument::AddMidiRuleCtrlTrigger ( )

Adds the "controller trigger" MIDI rule to the instrument.

Returns
the new MIDI rule

Definition at line 4716 of file gig.cpp.

◆ AddMidiRuleLegato()

MidiRuleLegato * gig::Instrument::AddMidiRuleLegato ( )

Adds the legato MIDI rule to the instrument.

Returns
the new MIDI rule

Definition at line 4729 of file gig.cpp.

◆ AddRegion()

◆ AddScriptSlot()

void gig::Instrument::AddScriptSlot ( Script pScript,
bool  bypass = false 
)

Add new instrument script slot (gig format extension).

Add the given real-time instrument script reference to this instrument, which shall be executed by the sampler for for this instrument. The script will be added to the end of the script list of this instrument. The positions of the scripts in the Instrument's Script list are relevant, because they define in which order they shall be executed by the sampler. For this reason it is also legal to add the same script twice to an instrument, for example you might have a script called "MyFilter" which performs an event filter task, and you might have another script called "MyNoteTrigger" which triggers new notes, then you might for example have the following list of scripts on the instrument:

  1. Script "MyFilter"
  2. Script "MyNoteTrigger"
  3. Script "MyFilter"

Which would make sense, because the 2nd script launched new events, which you might need to filter as well.

There are two ways to disable / "bypass" scripts. You can either disable a script locally for the respective script slot on an instrument (i.e. by passing false to the 2nd argument of this method, or by calling SetScriptBypassed()). Or you can disable a script globally for all slots and all instruments by setting Script::Bypass.

Note
This is an own format extension which did not exist i.e. in the GigaStudio 4 software. It will currently only work with LinuxSampler and gigedit.
Parameters
pScript- script that shall be executed for this instrument
bypass- if enabled, the sampler shall skip executing this script (in the respective list position)
See also
SetScriptBypassed()

Definition at line 4844 of file gig.cpp.

References LoadScripts().

◆ CopyAssign() [1/5]

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/5]

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/5]

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

Make a (semi) deep copy of the Instrument 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 Instrument object to be copied from

Definition at line 1381 of file DLS.cpp.

References DLS::Instrument::AddRegion(), DLS::Region::CopyAssign(), DLS::Instrument::CopyAssignCore(), DLS::Instrument::DeleteRegion(), DLS::Instrument::GetFirstRegion(), DLS::Instrument::pRegions, and DLS::Instrument::Regions.

◆ CopyAssign() [4/5]

void gig::Instrument::CopyAssign ( const Instrument orig)
virtual

Make a (semi) deep copy of the Instrument 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 Instrument object to be copied from

Definition at line 4977 of file gig.cpp.

Referenced by gig::File::AddContentOf(), and gig::File::AddDuplicateInstrument().

◆ CopyAssign() [5/5]

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

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

Parameters
orig- original Instrument object to be copied from
mSamples- crosslink map between the foreign file's samples and this file's samples

Definition at line 4989 of file gig.cpp.

References AddRegion(), Attenuation, gig::Region::CopyAssign(), DLS::Instrument::CopyAssignCore(), DeleteRegion(), DimensionKeyRange, EffectSend, FineTune, GetFirstRegion(), PianoReleaseMode, PitchbendRange, DLS::Instrument::pRegions, DLS::Instrument::Regions, and UpdateRegionKeyTable().

◆ CopyAssignCore()

◆ DeleteMidiRule()

void gig::Instrument::DeleteMidiRule ( int  i)

Deletes a MIDI rule from the instrument.

Parameters
i- MIDI rule number

Definition at line 4755 of file gig.cpp.

◆ DeleteRegion() [1/2]

void DLS::Instrument::DeleteRegion ( Region pRegion)
inherited

Definition at line 1291 of file DLS.cpp.

References DLS::Instrument::pRegions, and DLS::Instrument::Regions.

Referenced by DLS::Instrument::CopyAssign(), and DeleteRegion().

◆ DeleteRegion() [2/2]

void gig::Instrument::DeleteRegion ( Region pRegion)

Definition at line 4633 of file gig.cpp.

References DLS::Instrument::DeleteRegion(), DLS::Instrument::pRegions, and UpdateRegionKeyTable().

Referenced by CopyAssign().

◆ 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().

◆ GetFirstArticulation()

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

Definition at line 176 of file DLS.cpp.

◆ GetFirstRegion()

Region * gig::Instrument::GetFirstRegion ( )

Returns the first Region of the instrument.

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

Returns
pointer address to first region or NULL if there is none
See also
GetNextRegion()

Definition at line 4599 of file gig.cpp.

References DLS::Instrument::pRegions, and DLS::Instrument::RegionsIterator.

Referenced by CopyAssign().

◆ GetMidiRule()

MidiRule * gig::Instrument::GetMidiRule ( int  i)

Returns a MIDI rule of the instrument.

The list of MIDI rules, at least in gig v3, always contains at most two rules. The second rule can only be the DEF filter (which currently isn't supported by libgig).

Parameters
i- MIDI rule number
Returns
pointer address to MIDI rule number i or NULL if there is none

Definition at line 4707 of file gig.cpp.

◆ GetNextArticulation()

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

Definition at line 183 of file DLS.cpp.

◆ GetNextRegion()

Region * gig::Instrument::GetNextRegion ( )

Returns the next Region of the instrument.

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

Returns
pointer address to the next region or NULL if end reached
See also
GetFirstRegion()

Definition at line 4613 of file gig.cpp.

References DLS::Instrument::pRegions, and DLS::Instrument::RegionsIterator.

◆ GetParent() [1/2]

◆ GetParent() [2/2]

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

Definition at line 351 of file DLS.h.

◆ GetRegion()

Region * gig::Instrument::GetRegion ( unsigned int  Key)

Returns the appropriate Region for a triggered note.

Parameters
KeyMIDI Key number of triggered note / key (0 - 127)
Returns
pointer adress to the appropriate Region or NULL if there there is no Region defined for the given Key

Definition at line 4581 of file gig.cpp.

References DLS::Instrument::pRegions, and RegionKeyTable.

◆ GetScriptOfSlot()

Script * gig::Instrument::GetScriptOfSlot ( uint  index)

Get instrument script (gig format extension).

Returns the real-time instrument script of instrument script slot index.

Note
This is an own format extension which did not exist i.e. in the GigaStudio 4 software. It will currently only work with LinuxSampler and gigedit.
Parameters
index- instrument script slot index
Returns
script or NULL if index is out of bounds

Definition at line 4803 of file gig.cpp.

References LoadScripts().

◆ IsScriptSlotBypassed()

bool gig::Instrument::IsScriptSlotBypassed ( uint  index)

Whether script execution shall be skipped.

Defines locally for the Script reference slot in the Instrument's Script list, whether the script shall be skipped by the sampler regarding execution.

It is also possible to ignore exeuction of the script globally, for all slots and for all instruments by setting Script::Bypass.

Note
This is an own format extension which did not exist i.e. in the GigaStudio 4 software. It will currently only work with LinuxSampler and gigedit.
Parameters
index- index of the script slot on this instrument
See also
Script::Bypass

Definition at line 4940 of file gig.cpp.

References ScriptSlotCount().

◆ LoadArticulations()

◆ LoadRegions()

◆ LoadScripts()

◆ MoveTo()

void gig::Instrument::MoveTo ( Instrument dst)

Move this instrument at the position before.

  • dst.

This method can be used to reorder the sequence of instruments in a .gig file. This might be helpful especially on large .gig files which contain a large number of instruments within the same .gig file. So grouping such instruments to similar ones, can help to keep track of them when working with such complex .gig files.

When calling this method, this instrument will be removed from in its current position in the instruments list and moved to the requested target position provided by

Parameters
dst.You may also pass NULL as argument to this method, in that case this intrument will be moved to the very end of the .gig file's instrument list.

You have to call Save() to make the order change persistent to the .gig file.

Currently this method is limited to moving the instrument within the same .gig file. Trying to move it to another .gig file by calling this method will throw an exception.

Parameters
dst- destination instrument at which this instrument will be moved to, or pass NULL for moving to end of list
Exceptions
gig::Exceptionif this instrument and target instrument are not part of the same file

Definition at line 4667 of file gig.cpp.

References DLS::Resource::GetParent(), RIFF::List::GetSubList(), LIST_TYPE_LINS, RIFF::List::MoveSubChunk(), DLS::Instrument::pCkInstrument, DLS::File::pInstruments, and DLS::File::pRIFF.

◆ RemoveScript()

void gig::Instrument::RemoveScript ( Script pScript)

Remove reference to given Script (gig format extension).

This will remove all script slots on the instrument which are referencing the given script.

Note
This is an own format extension which did not exist i.e. in the GigaStudio 4 software. It will currently only work with LinuxSampler and gigedit.
Parameters
pScript- script reference to remove from this instrument
See also
RemoveScriptSlot()

Definition at line 4897 of file gig.cpp.

References LoadScripts().

Referenced by gig::Script::RemoveAllScriptReferences().

◆ RemoveScriptSlot()

void gig::Instrument::RemoveScriptSlot ( uint  index)

Remove script slot.

Removes the script slot with the given slot index.

Parameters
index- index of script slot to remove

Definition at line 4879 of file gig.cpp.

References LoadScripts().

◆ ScriptSlotCount()

uint gig::Instrument::ScriptSlotCount ( ) const

Instrument's amount of script slots.

This method returns the amount of script slots this instrument currently uses.

A script slot is a reference of a real-time instrument script to be executed by the sampler. The scripts will be executed by the sampler in sequence of the slots. One (same) script may be referenced multiple times in different slots.

Note
This is an own format extension which did not exist i.e. in the GigaStudio 4 software. It will currently only work with LinuxSampler and gigedit.

Definition at line 4920 of file gig.cpp.

Referenced by IsScriptSlotBypassed(), SetScriptSlotBypassed(), and UpdateChunks().

◆ SetScriptSlotBypassed()

void gig::Instrument::SetScriptSlotBypassed ( uint  index,
bool  bBypass 
)

Defines whether execution shall be skipped.

You can call this method to define locally whether or whether not the given script slot shall be executed by the sampler.

Note
This is an own format extension which did not exist i.e. in the GigaStudio 4 software. It will currently only work with LinuxSampler and gigedit.
Parameters
index- script slot index on this instrument
bBypass- if true, the script slot will be skipped by the sampler
See also
Script::Bypass

Definition at line 4960 of file gig.cpp.

References ScriptSlotCount().

◆ SwapScriptSlots()

void gig::Instrument::SwapScriptSlots ( uint  index1,
uint  index2 
)

Flip two script slots with each other (gig format extension).

Swaps the position of the two given scripts in the Instrument's Script list. The positions of the scripts in the Instrument's Script list are relevant, because they define in which order they shall be executed by the sampler.

Note
This is an own format extension which did not exist i.e. in the GigaStudio 4 software. It will currently only work with LinuxSampler and gigedit.
Parameters
index1- index of the first script slot to swap
index2- index of the second script slot to swap

Definition at line 4864 of file gig.cpp.

References LoadScripts().

◆ UpdateChunks()

void gig::Instrument::UpdateChunks ( progress_t pProgress)
virtual

Apply Instrument with all its Regions 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::Instrument.

Definition at line 4470 of file gig.cpp.

References RIFF::List::AddSubChunk(), RIFF::List::AddSubList(), Attenuation, CHUNK_ID_3EWG, CHUNK_ID_SCSL, RIFF::List::DeleteSubChunk(), DimensionKeyRange, EffectSend, FineTune, DLS::Resource::GetParent(), RIFF::Chunk::GetSize(), RIFF::List::GetSubChunk(), RIFF::List::GetSubList(), gig::range_t::high, LIST_TYPE_3LS, LIST_TYPE_LART, RIFF::Chunk::LoadChunkData(), LoadScripts(), gig::range_t::low, DLS::version_t::major, DLS::Instrument::pCkInstrument, PianoReleaseMode, PitchbendRange, DLS::Instrument::pRegions, DLS::File::pVersion, RIFF::Chunk::Resize(), ScriptSlotCount(), DLS::Instrument::UpdateChunks(), and gig::MidiRule::UpdateChunks().

◆ UpdateRegionKeyTable()

void gig::Instrument::UpdateRegionKeyTable ( )
protected

◆ UpdateScriptFileOffsets()

Friends And Related Function Documentation

◆ File

friend class File
friend

Definition at line 1129 of file gig.h.

◆ Region

friend class Region
friend

Definition at line 1130 of file gig.h.

Referenced by AddRegion(), and Instrument().

Member Data Documentation

◆ ArticulationsIterator

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

Definition at line 298 of file DLS.h.

◆ Attenuation

int32_t gig::Instrument::Attenuation

in dB

Definition at line 1086 of file gig.h.

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

◆ DimensionKeyRange

range_t gig::Instrument::DimensionKeyRange

0-127 (where 0 means C1 and 127 means G9)

Definition at line 1091 of file gig.h.

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

◆ EffectSend

uint16_t gig::Instrument::EffectSend

Definition at line 1087 of file gig.h.

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

◆ FineTune

int16_t gig::Instrument::FineTune

in cents

Definition at line 1088 of file gig.h.

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

◆ IsDrum

bool DLS::Instrument::IsDrum
inherited

Indicates if the Instrument is a drum type, as they differ in the synthesis model of DLS from melodic instruments.

Definition at line 461 of file DLS.h.

Referenced by DLS::Instrument::CopyAssignCore(), DLS::Instrument::Instrument(), and DLS::Instrument::UpdateChunks().

◆ MIDIBank

uint16_t DLS::Instrument::MIDIBank
inherited

Reflects combination of MIDIBankCoarse and MIDIBankFine (bank 1 - bank 16384). Do not change this value, it will not be saved! Change MIDIBankCoarse and MIDIBankFine instead (we might change that in future).

Definition at line 462 of file DLS.h.

Referenced by DLS::Instrument::CopyAssignCore(), DLS::Instrument::Instrument(), and DLS::Instrument::UpdateChunks().

◆ MIDIBankCoarse

uint8_t DLS::Instrument::MIDIBankCoarse
inherited

Reflects the MIDI Bank number for MIDI Control Change 0 (bank 1 - 128).

Definition at line 463 of file DLS.h.

Referenced by DLS::Instrument::CopyAssignCore(), DLS::Instrument::Instrument(), and DLS::Instrument::UpdateChunks().

◆ MIDIBankFine

uint8_t DLS::Instrument::MIDIBankFine
inherited

Reflects the MIDI Bank number for MIDI Control Change 32 (bank 1 - 128).

Definition at line 464 of file DLS.h.

Referenced by DLS::Instrument::CopyAssignCore(), DLS::Instrument::Instrument(), and DLS::Instrument::UpdateChunks().

◆ MIDIProgram

uint32_t DLS::Instrument::MIDIProgram
inherited

Specifies the MIDI Program Change Number this Instrument should be assigned to.

Definition at line 465 of file DLS.h.

Referenced by DLS::Instrument::CopyAssignCore(), DLS::Instrument::Instrument(), and DLS::Instrument::UpdateChunks().

◆ pArticulations

ArticulationList* DLS::Articulator::pArticulations
protectedinherited

Definition at line 297 of file DLS.h.

◆ pCkInstrument

◆ 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.

◆ PianoReleaseMode

bool gig::Instrument::PianoReleaseMode

Definition at line 1090 of file gig.h.

Referenced by CopyAssign(), Instrument(), and 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(), Instrument(), and gig::Sample::Sample().

◆ PitchbendRange

uint16_t gig::Instrument::PitchbendRange

Number of semitones pitchbend controller can pitch (default is 2).

Definition at line 1089 of file gig.h.

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

◆ pParent

Resource* DLS::Resource::pParent
protectedinherited

◆ pParentList

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

Definition at line 296 of file DLS.h.

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

◆ pRegions

◆ pResourceList

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

Definition at line 357 of file DLS.h.

◆ RegionKeyTable

Region* gig::Instrument::RegionKeyTable[128]
protected

fast lookup for the corresponding Region of a MIDI key

Definition at line 1121 of file gig.h.

Referenced by GetRegion(), Instrument(), and UpdateRegionKeyTable().

◆ Regions

uint32_t DLS::Instrument::Regions
inherited

◆ RegionsIterator

RegionList::iterator DLS::Instrument::RegionsIterator
protectedinherited

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