summaryrefslogtreecommitdiff
path: root/muse2/synti/deicsonze2/deicsonzepreset.h
diff options
context:
space:
mode:
authorNil Geisweiller <a-lin@sourceforge.net>2010-11-14 07:41:38 +0000
committerNil Geisweiller <a-lin@sourceforge.net>2010-11-14 07:41:38 +0000
commit2a079213ac507ab4866d9e27c5cf86ddcb7a3c6d (patch)
tree1b31e3bd10a3937c0eb249407530d00c7de4c1e5 /muse2/synti/deicsonze2/deicsonzepreset.h
parent17d8ce85ca5ee2a3b3e0b3c9c8af745da8117e40 (diff)
see ChangeLog
Diffstat (limited to 'muse2/synti/deicsonze2/deicsonzepreset.h')
-rw-r--r--muse2/synti/deicsonze2/deicsonzepreset.h567
1 files changed, 0 insertions, 567 deletions
diff --git a/muse2/synti/deicsonze2/deicsonzepreset.h b/muse2/synti/deicsonze2/deicsonzepreset.h
deleted file mode 100644
index 3c005c8d..00000000
--- a/muse2/synti/deicsonze2/deicsonzepreset.h
+++ /dev/null
@@ -1,567 +0,0 @@
-//===========================================================================
-//
-// DeicsOnze an emulator of the YAMAHA DX11 synthesizer
-//
-// Version 0.5.5
-//
-// deicsonzepreset.h
-//
-//
-// Copyright (c) 2004-2006 Nil Geisweiller
-//
-//
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-// 02111-1307, USA or point your web browser to http://www.gnu.org.
-//===========================================================================
-
-#ifndef __DEICSONZEPRESET_H
-#define __DEICSONZEPRESET_H
-
-#include <string>
-#include <vector>
-
-#include <qdom.h>
-
-#include "muse/xml.h"
-
-#define NBROP 4 //do not change
-#define MAXCHARTAG 64
-
-#define PROG_NBR 128
-#define LBANK_NBR 128
-#define HBANK_NBR 128
-
-//---------------------------------------------------------
-// define strings of the parameter names for load save and ctrl interface
-// number of ctrl
-// following the internal DX11 organization (c.f T81Z manual)
-//---------------------------------------------------------
-#define CTRLOFFSET 0x100
-#define DECAPAR1 13
-#define ARSTR "AR"
-#define ARLONGSTR "AttackRate"
-#define CTRL_AR 0+CTRLOFFSET
-#define MAXAR 31
-#define D1RSTR "D1R"
-#define D1RLONGSTR "Decay1Rate"
-#define CTRL_D1R 1+CTRLOFFSET
-#define MAXD1R 31
-#define D2RSTR "D2R"
-#define D2RLONGSTR "Decay2Rate"
-#define CTRL_D2R 2+CTRLOFFSET
-#define MAXD2R 31
-#define RRSTR "RR"
-#define RRLONGSTR "ReleaseRate"
-#define CTRL_RR 3+CTRLOFFSET
-#define MAXRR 15
-#define D1LSTR "D1L"
-#define D1LLONGSTR "Decay1Level"
-#define CTRL_D1L 4+CTRLOFFSET
-#define MAXD1L 15
-#define LSSTR "LS"
-#define LSLONGSTR "LevelScaling"
-#define CTRL_LS 5+CTRLOFFSET
-#define MAXLS 99
-#define RSSTR "RS"
-#define RSLONGSTR "RateScaling"
-#define CTRL_RS 6+CTRLOFFSET
-#define MAXRS 3
-#define EBSSTR "EBS"
-#define EBSLONGSTR "EGBiasSensitivity"
-#define CTRL_EBS 7+CTRLOFFSET
-#define MAXEBS 7
-#define AMESTR "AME"
-#define AMELONGSTR "AmplitudeModulationEnable"
-#define CTRL_AME 8+CTRLOFFSET
-#define KVSSTR "KVS"
-#define KVSLONGSTR "KeyVelocitySensitivity"
-#define CTRL_KVS 9+CTRLOFFSET
-#define MAXKVS 7
-#define OUTSTR "OUT"
-#define OUTLONGSTR "OperatorOutputLevel"
-#define CTRL_OUT 10+CTRLOFFSET
-#define MAXOUT 99
-#define RATIOSTR "Ratio"
-#define RATIOLONGSTR "Ratio"
-#define CTRL_RATIO 11+CTRLOFFSET
-#define MAXRATIO 64
-#define DETSTR "DET"
-#define DETLONGSTR "Detune"
-#define CTRL_DET 12+CTRLOFFSET
-#define MAXDET 3
-#define ALGSTR "ALG"
-#define ALGLONGSTR "Algorithm"
-#define CTRL_ALG 52+CTRLOFFSET
-#define MAXALG 7
-#define FEEDBACKSTR "Feedback"
-#define CTRL_FEEDBACK 53+CTRLOFFSET
-#define MAXFEEDBACK 7
-#define SPEEDSTR "Speed"
-#define SPEEDLONGSTR "LFOSpeed"
-#define CTRL_SPEED 54+CTRLOFFSET
-#define MAXSPEED 99
-#define DELAYSTR "Delay" //TODO LFOD
-#define DELAYLONGSTR "LFODelay"
-#define CTRL_DELAY 55+CTRLOFFSET
-#define MAXDELAY 99
-#define PMODDEPTHSTR "PModDepth"
-#define PMODDEPTHLONGSTR "PitchModulationDepth"
-#define CTRL_PMODDEPTH 56+CTRLOFFSET
-#define MAXPMODDEPTH 99
-#define AMODDEPTHSTR "AModDepth"
-#define AMODDEPTHLONGSTR "AmplitudeModulationDepth"
-#define CTRL_AMODDEPTH 57+CTRLOFFSET
-#define MAXAMODDEPTH 99
-#define SYNCSTR "Sync"
-#define SYNCLONGSTR "LFOSync"
-#define CTRL_SYNC 58+CTRLOFFSET
-#define WAVESTR "Wave"
-#define WAVELONGSTR "LFOWave"
-#define CTRL_WAVE 59+CTRLOFFSET
-#define MAXWAVE 3
-#define PMODSENSSTR "PModSens"
-#define PMODSENSLONGSTR "PitchModulationSensitivity"
-#define CTRL_PMODSENS 60+CTRLOFFSET
-#define MAXPMODSENS 7
-#define AMSSTR "AMS"
-#define AMSLONGSTR "AmplitudeModulationSensitivity"
-#define CTRL_AMS 61+CTRLOFFSET
-#define MAXAMS 3
-#define TRANSPOSESTR "Transpose"
-#define CTRL_TRANSPOSE 62+CTRLOFFSET
-#define MAXTRANSPOSE 24
-#define POLYMODESTR "PolyMode"
-#define CTRL_POLYMODE 63+CTRLOFFSET
-#define PBENDRANGESTR "PBendRange"
-#define PBENDRANGELONGSTR "PitchBendRange"
-#define CTRL_PBENDRANGE 64+CTRLOFFSET
-#define MAXPBENDRANGE 12
-#define PORTAMODESTR "PortaMode"
-#define PORTAMODELONGSTR "PortamentoMode"
-#define CTRL_PORTAMODE 65+CTRLOFFSET
-#define PORTATIMESTR "PortaTime"
-#define PORTATIMELONGSTR "PortamentoTime"
-#define CTRL_PORTATIME 66+CTRLOFFSET
-#define MAXPROTATIME 99
-#define FCVOLUMESTR "FCVolume"
-#define FCVOLUMELONGSTR "FootControllerVolume"
-#define CTRL_FCVOLUME 67+CTRLOFFSET
-#define MAXFCVOLUME 99
-#define FSWSTR "FSW"
-#define FSWLONGSTR "FootSwitch"
-#define CTRL_FSW 68+CTRLOFFSET
-#define MAXFSW 99
-#define MWPITCHSTR "MWPitch"
-#define MWPITCHLONGSTR "ModulationWheelPitch"
-#define CTRL_MWPITCH 71+CTRLOFFSET
-#define MAXMWPITCH 99
-#define MWAMPLITUDESTR "MWAmplitude"
-#define MWAMPLITUDELONGSTR "ModulationWheelAmplitude"
-#define CTRL_MWAMPLITUDE 72+CTRLOFFSET
-#define MAXMWAMPLITUDE 99
-#define BCPITCHSTR "BCPitch"
-#define BCPITCHLONGSTR "BreathControlPitch"
-#define CTRL_BCPITCH 73+CTRLOFFSET
-#define MAXBCPITCH 99
-#define BCAMPLITUDESTR "BCAmplitude"
-#define BCAMPLITUDELONGSTR "BreathControlAmplitude"
-#define CTRL_BCAMPLITUDE 74+CTRLOFFSET
-#define MAXBCAMPLITUDE 99
-#define BCPITCHBIASSTR "BCPitchBias"
-#define BCPITCHBIASLONGSTR "BreathControlPitchBias"
-#define CTRL_BCPITCHBIAS 75+CTRLOFFSET
-#define MAXBCPITCHBIAS 50
-#define BCEGBIASSTR "BCEGBias"
-#define BCEGBIASLONGSTR "BreathControlEGBias"
-#define CTRL_BCEGBIAS 76+CTRLOFFSET
-#define MAXBCEGBIAS 99
-#define MIDATTACK 64
-#define ATPITCHSTR "ATPitch"
-#define ATPITCHLONGSTR "AfterTouchPitch"
-#define CTRL_ATPITCH 77+CTRLOFFSET
-#define MAXATPITCH 99
-#define ATAMPLITUDESTR "ATAmplitude"
-#define ATAMPLITUDELONGSTR "AfterTouchAmplitude"
-#define CTRL_ATAMPLITUDE 78+CTRLOFFSET
-#define MAXATAMPLITUDE 99
-#define ATPITCHBIASSTR "ATPitchBias"
-#define ATPITCHBIASLONGSTR "AfterTouchPitchBias"
-#define CTRL_ATPITCHBIAS 79+CTRLOFFSET
-#define MAXATPITCHBIAS 50
-#define ATEGBIASSTR "ATEGBias"
-#define ATEGBIASLONGSTR "AfterTouchEGBias"
-#define CTRL_ATEGBIAS 80+CTRLOFFSET
-#define MAXATEGBIAS 99
-#define PR1STR "PR1"
-#define PR1LONGSTR "PitchRateEG1"
-#define CTRL_PR1 81+CTRLOFFSET
-#define MAXPR 99
-#define PR2STR "PR2"
-#define PR2LONGSTR "PitchRateEG2"
-#define CTRL_PR2 82+CTRLOFFSET
-#define PR3STR "PR3"
-#define PR3LONGSTR "PitchRateEG3"
-#define CTRL_PR3 83+CTRLOFFSET
-#define PL1STR "PL1"
-#define PL1LONGSTR "PitchLevelEG1"
-#define CTRL_PL1 84+CTRLOFFSET
-#define MAXPL 99
-#define PL2STR "PL2"
-#define PL2LONGSTR "PitchLevelEG2"
-#define CTRL_PL2 85+CTRLOFFSET
-#define PL3STR "PL3"
-#define PL3LONGSTR "PitchLevelEG3"
-#define CTRL_PL3 86+CTRLOFFSET
-#define DECAPAR2 5
-#define FIXSTR "FIX"
-#define FIXLONGSTR "FixedFrequency"
-#define CTRL_FIX 100+CTRLOFFSET
-#define FIXRANGESTR "FixRange"
-#define FIXRANGELONGSTR "FixedFrequencyRange"
-#define CTRL_FIXRANGE 101+CTRLOFFSET
-#define MAXFIXRANGE 255
-#define OSWSTR "OSW"
-#define OSWLONGSTR "OperatorWaveform"
-#define CTRL_OSW 103+CTRLOFFSET
-#define MAXOSW 7
-#define SHFTSTR "SHFT"
-#define SHFTLONGSTR "EGShift"
-#define CTRL_SHFT 104+CTRLOFFSET
-#define MAXSHFT 3
-#define REVERBRATESTR "ReverbRate"
-#define CTRL_REVERBRATE 120+CTRLOFFSET
-#define MAXREVERBRATE 7
-#define FCPITCHSTR "FCPitch"
-#define FCPITCHLONGSTR "FootControllerPitch"
-#define CTRL_FCPITCH 121+CTRLOFFSET
-#define MAXFCPITCH 99
-#define FCAMPLITUDESTR "FCAmplitude"
-#define FCAMPLITUDELONGSTR "FootControllerAmplitude"
-#define CTRL_FCAMPLITUDE 122+CTRLOFFSET
-#define MAXFCAMPLITUDE 99
-#define CHANNELPANSTR "ChannelPan"
-#define CTRL_CHANNELPAN 123+CTRLOFFSET
-#define MAXCHANNELPAN 127
-#define CHANNELDETUNESTR "ChannelDetune"
-#define CTRL_CHANNELDETUNE 124+CTRLOFFSET
-#define MAXCHANNELDETUNE 63
-#define CHANNELVOLUMESTR "ChannelVolume"
-#define CTRL_CHANNELVOLUME 125+CTRLOFFSET
-#define MAXCHANNELVOLUME 255
-#define FINEBRIGHTNESSSTR "FineBrightness"
-#define CTRL_FINEBRIGHTNESS 126+CTRLOFFSET
-#define MAXFINEBRIGHTNESS 4095
-#define MIDFINEBRIGHTNESS (MAXFINEBRIGHTNESS+1)/2
-#define BRIGHTNESSSTR "Brightness"
-#define MAXBRIGHTNESS 127
-#define MIDBRIGHTNESS 64
-#define MAXMODULATION 127
-#define MODULATIONSTR "Modulation"
-#define ATTACKSTR "Attack"
-#define MAXATTACK 127
-#define MIDATTACK 64
-#define RELEASESTR "Attack"
-#define MAXRELEASE 127
-#define MIDRELEASE 64
-#define NBRVOICESSTR "NumberOfVoices"
-#define MINNBRVOICES 1
-#define CTRL_NBRVOICES 127+CTRLOFFSET
-#define CHANNELENABLESTR "ChannelEnable"
-#define MAXCHANNELENABLE 1
-#define MINCHANNELENABLE 0
-#define CTRL_CHANNELENABLE 128+CTRLOFFSET
-
-class Preset;
-class Subcategory;
-class Category;
-class Set;
-
-//---------------------------------------------------------
-// Algorithm
-//---------------------------------------------------------
-
-enum Algorithm {
- FIRST, // Op 0 modulated by Op 1 modulated by Op 2 modulated by Op3
- SECOND, // Op 0 modulated by Op 1 modulated by both Op 2 and Op 3
- THIRD, // Op 0 modulated by both Op 3 and Op 1 modulated by Op 2
- FOURTH, // Op 0 modulated by both Op 1 and Op 2 modulated by Op 3
- FIFTH, // (Op 0 modulated by Op 1) add to (Op 2 modulated by Op 3)
- SIXTH, // addition of the three Op 0, 1, 2 all modulated by Op 3
- SEVENTH, // addition of the three Op 0, 1, 2 with 2 modulated by Op3
- EIGHTH // addition of the four Op 0, 1, 2, 3
-};
-
-//---------------------------------------------------------
-// Wave of the low frequency modulation
-//---------------------------------------------------------
-enum Wave {
- SAWUP,
- SQUARE,
- TRIANGL,
- SHOLD
-};
-
-//---------------------------------------------------------
-// Lfo, low frequency modulation
-//---------------------------------------------------------
-struct Lfo {
- Wave wave;
- unsigned char speed; //0 to 99
- unsigned char delay; //0 to 99
- unsigned char pModDepth; //0 to 99
- unsigned char aModDepth; //0 to 99
- bool sync;
-};
-
-//---------------------------------------------------------
-// Sensitivity
-// of the frequency and amplitude of the lfo
-// and the key velocity
-//---------------------------------------------------------
-struct Sensitivity {
- unsigned char pitch; //0 to 7
- unsigned char amplitude; //0 to 3
- bool ampOn[NBROP];
- unsigned char egBias[NBROP]; //O to 7
- unsigned char keyVelocity[NBROP]; //0 to 7
-};
-
-//---------------------------------------------------------
-// Frequency
-//---------------------------------------------------------
-struct Frequency {
- double ratio;
- bool isFix; //if isFix no ratio but frequency
- double freq;
-};
-
-//---------------------------------------------------------
-// OscWave
-//---------------------------------------------------------
-enum OscWave {
- W1, //sine wave
- W2, //sine² relative
- W3, //half sine
- W4, //half sine² relative
- W5,
- W6,
- W7,
- W8
-};
-
-enum egShiftValue {VOF, V48, V24, V12};
-
-//---------------------------------------------------------
-// Eg
-// Envelope
-//---------------------------------------------------------
-struct Eg {
- unsigned char ar; //0 to 31 speed attack
- unsigned char d1r; //0 to 31 speed decay
- unsigned char d1l; //0 to 15 level sustain
- unsigned char d2r; //0 to 31 speed of sustain
- unsigned char rr; //1 to 15
- egShiftValue egShift;
-};
-
-//---------------------------------------------------------
-// PitchEg
-//---------------------------------------------------------
-struct PitchEg {
- unsigned char pr1;//0 to 99
- unsigned char pr2;//0 to 99
- unsigned char pr3;//0 to 99
- unsigned char pl1;//0 to 99
- unsigned char pl2;//0 to 99
- unsigned char pl3;//0 to 99
-};
-
-//---------------------------------------------------------
-// Scaling
-//---------------------------------------------------------
-struct Scaling {
- unsigned char rate[NBROP];//0 to 3
- unsigned char level[NBROP];//0 to 99
-};
-
-//---------------------------------------------------------
-// Mode
-//---------------------------------------------------------
-enum Mode {
- POLY,
- MONO
-};
-
-//---------------------------------------------------------
-// Portamento
-//---------------------------------------------------------
-enum Portamento {
- FINGER,
- FULL
-};
-
-//---------------------------------------------------------
-// FootSw
-//---------------------------------------------------------
-enum FootSw {
- POR,
- SUS
-};
-//---------------------------------------------------------
-// Function
-//---------------------------------------------------------
-struct Function {
- int transpose;
- Mode mode;
- unsigned char pBendRange;//0 to 12
- Portamento portamento;
- unsigned char portamentoTime;//0 to 99
- FootSw footSw;
- unsigned char fcVolume;//0 to 99
- unsigned char fcPitch;//0 to 99
- unsigned char fcAmplitude;//0 to 99
- unsigned char mwPitch;//0 to 99
- unsigned char mwAmplitude;//0 to 99
- unsigned char bcPitch;//0 to 99
- unsigned char bcAmplitude;//0 to 99
- signed char bcPitchBias;//-50 to 50
- unsigned char bcEgBias;//0 to 99
- unsigned char atPitch;//0 to 99
- unsigned char atAmplitude;//0 to 99
- signed char atPitchBias;//-50 to 50
- unsigned char atEgBias;//0 to 99
- signed char reverbRate;//O=off, 1 to 7
-};
-
-//---------------------------------------------------------
-// Preset class
-//---------------------------------------------------------
-
-class Preset {
- public:
- Subcategory* _subcategory; //subcategory parent
- bool _isUsed; //false if the preset has never been used or modified,
- //in this case the preset is not going to be
- //save with the project
- //Attributes
- Algorithm algorithm;
- unsigned char feedback; //0 to 7
- Lfo lfo;
- Sensitivity sensitivity;
- Frequency frequency[NBROP];
- OscWave oscWave[NBROP];
- signed char detune[NBROP]; //-3 to 3
- Eg eg[NBROP];
- PitchEg pitchEg;
- unsigned char outLevel[NBROP]; //0 to 99
- Scaling scaling;
- Function function;
- //int globalDetune; //-31 to 31 //now to the channel
- std::string name;
- //unsigned char modulation; //0 to 127
- int prog; //0 to 127
- //Methods
- void printPreset();
- void initPreset();
- void readPreset(QDomNode qdn);
- void writePreset(Xml* xml, bool onlyUsed);
- void linkSubcategory(Subcategory* sub);
- void merge(Preset* p); //copy the data of p in the preset
- void setIsUsed(bool b); //set flag _isUsed and transmit in the parents
- void getHBankLBankProg(int* h, int* l, int* p); //return the hbank, lbank and prog of the preset
- //Constructor destructor
- Preset();
- Preset(Subcategory* sub);
- Preset(Subcategory* sub, int prog);
- ~Preset();
-};
-
-//---------------------------------------------------------------
-// Bank, organized by a tree of category, subcategory, preset
-//---------------------------------------------------------------
-class Subcategory {
- public:
- Category* _category;//parent category
- bool _isUsed; //false if the subcategory has never been used or modified,
- //in this case the subcategory is not going to be
- //save with the project
- std::string _subcategoryName;
- int _lbank; //0 to 127
- std::vector<Preset*> _presetVector;
- Preset* findPreset(int prog);
- void readSubcategory(QDomNode subNode);
- void writeSubcategory(Xml* xml, bool onlyUsed);
- void printSubcategory();
- void linkCategory(Category* cat);
- void unlink();
- bool isFreeProg(int prog);
- int firstFreeProg();
- void merge(Preset*);
- //Constructor destructor
- Subcategory();
- Subcategory(Category* cat);
- Subcategory(const std::string name);
- Subcategory(Category* cat, const std::string name, int lbank);
- ~Subcategory();
-};
-
-class Category {
- public:
- Set* _set;//parent set
- bool _isUsed; //false if the category has never been used or modified,
- //in this case the category is not going to be
- //save with the project
- std::string _categoryName;
- int _hbank; //0 to 127
- std::vector<Subcategory*> _subcategoryVector;
- Subcategory* findSubcategory(int lbank);
- Preset* findPreset(int lbank, int prog);
- void readCategory(QDomNode catNode);
- void writeCategory(Xml* xml, bool onlyUsed);
- void printCategory();
- void linkSet(Set* s);
- void unlink();
- bool isFreeLBank(int lbank);
- int firstFreeLBank(); //return -1 if no free
- void merge(Subcategory*);
- //Constructor Destructor
- Category();
- Category(Set* s);
- Category(Set* s,const std::string name, int hbank);
- ~Category();
-};
-
-class Set {
- public:
- std::string _setName;
- std::vector<Category*> _categoryVector;
- Preset* findPreset(int hbank, int lbank, int prog);
- Subcategory* findSubcategory(int hbank, int lbank);
- Category* findCategory(int hbank);
- void readSet(QDomNode setNode);
- void writeSet(Xml* xml, bool onlyUsed);
- void printSet();
- bool isFreeHBank(int hbank);
- int firstFreeHBank();
- void merge(Category*);
- //Constructor Destructor
- Set(const std::string name){_setName=name;}
- ~Set() {
- while(!_categoryVector.empty()) delete(*_categoryVector.begin());
- }
-};
-
-#endif /* __DEICSONZE_H */