aboutsummaryrefslogtreecommitdiff
path: root/sound/softsynth/mt32/partial.h
diff options
context:
space:
mode:
authorJerome Fisher2005-03-20 16:24:55 +0000
committerJerome Fisher2005-03-20 16:24:55 +0000
commit7f83c4786045bd438ff76cea2c6189a62774798b (patch)
tree0f9a2500a01a19102f386ecd2dddbb8147300292 /sound/softsynth/mt32/partial.h
parent9880288669414537d290aef70199e213fe868df1 (diff)
downloadscummvm-rg350-7f83c4786045bd438ff76cea2c6189a62774798b.tar.gz
scummvm-rg350-7f83c4786045bd438ff76cea2c6189a62774798b.tar.bz2
scummvm-rg350-7f83c4786045bd438ff76cea2c6189a62774798b.zip
Merged with latest Munt CVS.
* Added support for most of the extended capabilities of the CM-32L/LAPC-I (more rhythm timbres, more rhythm key mappings, more PCM samples). * The control ROM is now identified by searching for matching ID strings at various locations in the file. There are now a lot of safety checks to help ensure that a bad ROM will not crash the emulator. * Three control ROM versions are now identified and mapped out - an original MT-32 control ROM, an original CM-32L ROM, and the Blue Ridge modified MT-32 ROM. * Now supports the expression controller properly. * Sustain is now turned off correctly again. * "All Notes Off" no longer stops notes held by the sustain controller. * Implemented "Reset all controllers". * Stereo pan positions are no longer inverted. * Volume, pitch, filter and envelopes are now more accurately calculated. Overall, the sound emulation is much more accurate. * Waveforms are now slightly more accurate (in terms of pitch), necessitating a regeneration. * Handling of unusual sysex messages has been improved (fixes sysex messages from Java's MIDI classes on Windows). * Fixed a reverb bug during periods of silence. svn-id: r17188
Diffstat (limited to 'sound/softsynth/mt32/partial.h')
-rw-r--r--sound/softsynth/mt32/partial.h16
1 files changed, 11 insertions, 5 deletions
diff --git a/sound/softsynth/mt32/partial.h b/sound/softsynth/mt32/partial.h
index 0834a64c15..93d8bcd985 100644
--- a/sound/softsynth/mt32/partial.h
+++ b/sound/softsynth/mt32/partial.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2003-2004 Various contributors
+/* Copyright (c) 2003-2005 Various contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to
@@ -60,8 +60,6 @@ private:
Bit16s myBuffer[MAX_SAMPLE_OUTPUT];
- bool play;
-
// Keyfollowed note value
#if MT32EMU_ACCURATENOTES == 1
NoteLookup noteLookupStorage;
@@ -71,12 +69,15 @@ private:
int fineShift;
#endif
const NoteLookup *noteLookup; // LUTs for this noteVal
+ const KeyLookup *keyLookup; // LUTs for the clamped (12..108) key
// Keyfollowed filter values
int realVal;
int filtVal;
- EnvelopeStatus envs[3];
+ // Only used for PCM partials
+ int pcmNum;
+ PCMWaveEntry *pcmWave;
int pulsewidth;
@@ -109,6 +110,9 @@ private:
public:
const PatchCache *patchCache;
+ EnvelopeStatus envs[3];
+ bool play;
+
PatchCache cachebackup;
Partial *pair;
@@ -118,7 +122,9 @@ public:
Partial(Synth *synth);
~Partial();
- int getOwnerPart();
+ int getOwnerPart() const;
+ int getKey() const;
+ const dpoly *getDpoly() const;
bool isActive();
void activate(int part);
void deactivate(void);