2 |
* * |
* * |
3 |
* libgig - C++ cross-platform Gigasampler format file access library * |
* libgig - C++ cross-platform Gigasampler format file access library * |
4 |
* * |
* * |
5 |
* Copyright (C) 2003-2006 by Christian Schoenebeck * |
* Copyright (C) 2003-2007 by Christian Schoenebeck * |
6 |
* <cuse@users.sourceforge.net> * |
* <cuse@users.sourceforge.net> * |
7 |
* * |
* * |
8 |
* This library is free software; you can redistribute it and/or modify * |
* This library is free software; you can redistribute it and/or modify * |
210 |
dimension_none = 0x00, ///< Dimension not in use. |
dimension_none = 0x00, ///< Dimension not in use. |
211 |
dimension_samplechannel = 0x80, ///< If used sample has more than one channel (thus is not mono). |
dimension_samplechannel = 0x80, ///< If used sample has more than one channel (thus is not mono). |
212 |
dimension_layer = 0x81, ///< For layering of up to 8 instruments (and eventually crossfading of 2 or 4 layers). |
dimension_layer = 0x81, ///< For layering of up to 8 instruments (and eventually crossfading of 2 or 4 layers). |
213 |
dimension_velocity = 0x82, ///< Key Velocity (this is the only dimension where the ranges can exactly be defined). |
dimension_velocity = 0x82, ///< Key Velocity (this is the only dimension in gig2 where the ranges can exactly be defined). |
214 |
dimension_channelaftertouch = 0x83, ///< Channel Key Pressure |
dimension_channelaftertouch = 0x83, ///< Channel Key Pressure |
215 |
dimension_releasetrigger = 0x84, ///< Special dimension for triggering samples on releasing a key. |
dimension_releasetrigger = 0x84, ///< Special dimension for triggering samples on releasing a key. |
216 |
dimension_keyboard = 0x85, ///< Dimension for keyswitching |
dimension_keyboard = 0x85, ///< Dimension for keyswitching |
217 |
dimension_roundrobin = 0x86, ///< Different samples triggered each time a note is played, dimension regions selected in sequence |
dimension_roundrobin = 0x86, ///< Different samples triggered each time a note is played, dimension regions selected in sequence |
218 |
dimension_random = 0x87, ///< Different samples triggered each time a note is played, random order |
dimension_random = 0x87, ///< Different samples triggered each time a note is played, random order |
219 |
|
dimension_smartmidi = 0x88, ///< For MIDI tools like legato and repetition mode |
220 |
|
dimension_roundrobinkeyboard = 0x89, ///< Different samples triggered each time a note is played, any key advances the counter |
221 |
dimension_modwheel = 0x01, ///< Modulation Wheel (MIDI Controller 1) |
dimension_modwheel = 0x01, ///< Modulation Wheel (MIDI Controller 1) |
222 |
dimension_breath = 0x02, ///< Breath Controller (Coarse, MIDI Controller 2) |
dimension_breath = 0x02, ///< Breath Controller (Coarse, MIDI Controller 2) |
223 |
dimension_foot = 0x04, ///< Foot Pedal (Coarse, MIDI Controller 4) |
dimension_foot = 0x04, ///< Foot Pedal (Coarse, MIDI Controller 4) |
340 |
*/ |
*/ |
341 |
class DimensionRegion : protected DLS::Sampler { |
class DimensionRegion : protected DLS::Sampler { |
342 |
public: |
public: |
343 |
uint8_t VelocityUpperLimit; ///< Defines the upper velocity value limit of a velocity split (only if an user defined limit was set, thus a value not equal to 128/NumberOfSplits, else this value is 0). |
uint8_t VelocityUpperLimit; ///< Defines the upper velocity value limit of a velocity split (only if an user defined limit was set, thus a value not equal to 128/NumberOfSplits, else this value is 0). Only for gig2, otherwise the DimensionUpperLimts are used instead. |
344 |
Sample* pSample; ///< Points to the Sample which is assigned to the dimension region. |
Sample* pSample; ///< Points to the Sample which is assigned to the dimension region. |
345 |
// Sample Amplitude EG/LFO |
// Sample Amplitude EG/LFO |
346 |
uint16_t EG1PreAttack; ///< Preattack value of the sample amplitude EG (0 - 1000 permille). |
uint16_t EG1PreAttack; ///< Preattack value of the sample amplitude EG (0 - 1000 permille). |
424 |
bool MSDecode; ///< Gigastudio flag: defines if Mid Side Recordings should be decoded. |
bool MSDecode; ///< Gigastudio flag: defines if Mid Side Recordings should be decoded. |
425 |
uint16_t SampleStartOffset; ///< Number of samples the sample start should be moved (0 - 2000). |
uint16_t SampleStartOffset; ///< Number of samples the sample start should be moved (0 - 2000). |
426 |
double SampleAttenuation; ///< Sample volume (calculated from DLS::Sampler::Gain) |
double SampleAttenuation; ///< Sample volume (calculated from DLS::Sampler::Gain) |
427 |
|
uint8_t DimensionUpperLimits[8]; ///< gig3: defines the upper limit of the dimension values for this dimension region |
428 |
|
|
429 |
// derived attributes from DLS::Sampler |
// derived attributes from DLS::Sampler |
430 |
DLS::Sampler::UnityNote; |
DLS::Sampler::UnityNote; |
713 |
Group* GetGroup(uint index); |
Group* GetGroup(uint index); |
714 |
Group* AddGroup(); |
Group* AddGroup(); |
715 |
void DeleteGroup(Group* pGroup); |
void DeleteGroup(Group* pGroup); |
716 |
|
void DeleteGroupOnly(Group* pGroup); |
717 |
virtual ~File(); |
virtual ~File(); |
718 |
protected: |
protected: |
719 |
// overridden protected methods from DLS::File |
// overridden protected methods from DLS::File |