From 7f83c4786045bd438ff76cea2c6189a62774798b Mon Sep 17 00:00:00 2001 From: Jerome Fisher Date: Sun, 20 Mar 2005 16:24:55 +0000 Subject: 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 --- sound/softsynth/mt32/partial.h | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'sound/softsynth/mt32/partial.h') 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); -- cgit v1.2.3