18 #ifndef MT32EMU_STRUCTURES_H 19 #define MT32EMU_STRUCTURES_H 28 #define MT32EMU_MEMADDR(x) ((((x) & 0x7f0000) >> 2) | (((x) & 0x7f00) >> 1) | ((x) & 0x7f)) 29 #define MT32EMU_SYSEXMEMADDR(x) ((((x) & 0x1FC000) << 2) | (((x) & 0x3F80) << 1) | ((x) & 0x7f)) 32 #define MT32EMU_ALIGN_PACKED __declspec(align(1)) 34 #define MT32EMU_ALIGN_PACKED __attribute__((packed)) 41 #if defined(_MSC_VER) || defined(__MINGW32__) 50 Bit8u partialStructure12;
51 Bit8u partialStructure34;
54 } MT32EMU_ALIGN_PACKED common;
61 Bit8u pitchBenderEnabled;
65 Bit8u pulseWidthVeloSensitivity;
66 } MT32EMU_ALIGN_PACKED wg;
70 Bit8u veloSensitivity;
74 } MT32EMU_ALIGN_PACKED pitchEnv;
80 } MT32EMU_ALIGN_PACKED pitchLFO;
89 Bit8u envVeloSensitivity;
90 Bit8u envDepthKeyfollow;
91 Bit8u envTimeKeyfollow;
94 } MT32EMU_ALIGN_PACKED tvf;
98 Bit8u veloSensitivity;
103 Bit8u envTimeKeyfollow;
104 Bit8u envTimeVeloSensitivity;
107 } MT32EMU_ALIGN_PACKED tva;
108 } MT32EMU_ALIGN_PACKED partial[4];
109 } MT32EMU_ALIGN_PACKED;
120 } MT32EMU_ALIGN_PACKED;
122 const unsigned int SYSTEM_MASTER_TUNE_OFF = 0;
123 const unsigned int SYSTEM_REVERB_MODE_OFF = 1;
124 const unsigned int SYSTEM_REVERB_TIME_OFF = 2;
125 const unsigned int SYSTEM_REVERB_LEVEL_OFF = 3;
126 const unsigned int SYSTEM_RESERVE_SETTINGS_START_OFF = 4;
127 const unsigned int SYSTEM_RESERVE_SETTINGS_END_OFF = 12;
128 const unsigned int SYSTEM_CHAN_ASSIGN_START_OFF = 13;
129 const unsigned int SYSTEM_CHAN_ASSIGN_END_OFF = 21;
130 const unsigned int SYSTEM_MASTER_VOL_OFF = 22;
141 } MT32EMU_ALIGN_PACKED patchTemp[9];
148 } MT32EMU_ALIGN_PACKED rhythmTemp[85];
150 TimbreParam timbreTemp[8];
152 PatchParam patches[128];
158 } MT32EMU_ALIGN_PACKED timbres[64 + 64 + 64 + 64];
165 Bit8u reserveSettings[9];
168 } MT32EMU_ALIGN_PACKED system;
172 Bit8u timbreNumberTableAddrLow;
173 Bit8u timbreNumberTableAddrHigh;
174 Bit8u displayPosition;
178 } MT32EMU_ALIGN_PACKED;
180 #if defined(_MSC_VER) || defined(__MINGW32__) 187 unsigned int quirkBasePitchOverflow : 1;
188 unsigned int quirkPitchEnvelopeOverflow : 1;
189 unsigned int quirkRingModulationNoMix : 1;
190 unsigned int quirkTVAZeroEnvLevels : 1;
191 unsigned int quirkPanMult : 1;
192 unsigned int quirkKeyShift : 1;
193 unsigned int quirkTVFBaseCutoffLimit : 1;
194 unsigned int quirkFastPitchChanges : 1;
195 unsigned int quirkDisplayCustomMessagePriority : 1;
196 unsigned int oldMT32DisplayFeatures : 1;
199 unsigned int defaultReverbMT32Compatible : 1;
200 unsigned int oldMT32AnalogLPF : 1;
204 const char *shortName;
209 Bit16u timbreAOffset;
210 bool timbreACompressed;
212 Bit16u timbreBOffset;
213 bool timbreBCompressed;
216 Bit16u rhythmSettings;
217 Bit16u rhythmSettingsCount;
218 Bit16u reserveSettings;
220 Bit16u programSettings;
221 Bit16u rhythmMaxTable;
222 Bit16u patchMaxTable;
223 Bit16u systemMaxTable;
224 Bit16u timbreMaxTable;
225 Bit16u soundGroupsTable;
226 Bit16u soundGroupsCount;
227 Bit16u startupMessage;
228 Bit16u sysexErrorMessage;
253 int structurePosition;
270 #endif // #ifndef MT32EMU_STRUCTURES_H Definition: Structures.h:47
Definition: Structures.h:111
Definition: Structures.h:132
Definition: Structures.h:231
Definition: Structures.h:186
Definition: Structures.h:76
Definition: Structures.h:238
Definition: Structures.h:136
Definition: Structures.h:171
Definition: Structures.h:60
Definition: Structures.h:246
Definition: Structures.h:160
Definition: Structures.h:143
Definition: Structures.h:40
Definition: Structures.h:203
Definition: Structures.h:155
Definition: Structures.h:96
Definition: Structures.h:57
Definition: Structures.h:82
Definition: Structures.h:56