/[svn]/libgig/trunk/src/gig.h
ViewVC logotype

Diff of /libgig/trunk/src/gig.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 933 by schoenebeck, Fri Nov 24 12:50:05 2006 UTC revision 1093 by schoenebeck, Sun Mar 11 17:44:31 2007 UTC
# Line 2  Line 2 
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  *
# Line 210  namespace gig { Line 210  namespace gig {
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)
# Line 324  namespace gig { Line 326  namespace gig {
326      class Region;      class Region;
327      class Group;      class Group;
328    
329      /** Encapsulates articulation information of a dimension region.      /** @brief Encapsulates articulation information of a dimension region.
330       *       *
331       *  Every Gigasampler Instrument has at least one dimension region       *  Every Gigasampler Instrument has at least one dimension region
332       *  (exactly then when it has no dimension defined).       *  (exactly then when it has no dimension defined).
# Line 338  namespace gig { Line 340  namespace gig {
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).
# Line 422  namespace gig { Line 424  namespace gig {
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;
# Line 710  namespace gig { Line 713  namespace gig {
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
# Line 727  namespace gig { Line 731  namespace gig {
731              std::list<Group*>::iterator GroupsIterator;              std::list<Group*>::iterator GroupsIterator;
732      };      };
733    
734      /** Will be thrown whenever a gig specific error occurs while trying to access a Gigasampler File. */      /**
735         * Will be thrown whenever a gig specific error occurs while trying to
736         * access a Gigasampler File. Note: In your application you should
737         * better catch for RIFF::Exception rather than this one, except you
738         * explicitly want to catch and handle gig::Exception, DLS::Exception
739         * and RIFF::Exception independently, which usually shouldn't be
740         * necessary though.
741         */
742      class Exception : public DLS::Exception {      class Exception : public DLS::Exception {
743          public:          public:
744              Exception(String Message);              Exception(String Message);

Legend:
Removed from v.933  
changed lines
  Added in v.1093

  ViewVC Help
Powered by ViewVC