aboutsummaryrefslogtreecommitdiff
path: root/audio/softsynth/mt32/LA32FloatWaveGenerator.cpp
diff options
context:
space:
mode:
authorColin Snover2016-11-24 09:24:00 -0600
committerColin Snover2016-11-25 12:14:13 -0600
commitb4dbd6d3c275097b4be964b7da4478ff930cbaa7 (patch)
treebb9039cb088654fc93a7048eae799d53b06f3aa9 /audio/softsynth/mt32/LA32FloatWaveGenerator.cpp
parentb5b5c4f341530c41c73cc0d97e7ddae9cbc1d926 (diff)
downloadscummvm-rg350-b4dbd6d3c275097b4be964b7da4478ff930cbaa7.tar.gz
scummvm-rg350-b4dbd6d3c275097b4be964b7da4478ff930cbaa7.tar.bz2
scummvm-rg350-b4dbd6d3c275097b4be964b7da4478ff930cbaa7.zip
MT32: Update Munt to 2.0.0
This changeset also removes unnecessary direct modifications to Munt code to ease future updates. To update Munt in the future: 1. Replace all source files in the `softsynth/mt32` directory with new files from the upstream `mt32emu/src` directory; 2. Update `config.h` with the correct version number for the new version of Munt; 3. Update `module.mk` to match the list of sources given in `mt32emu/CMakeLists.txt libmt32emu_SOURCES`.
Diffstat (limited to 'audio/softsynth/mt32/LA32FloatWaveGenerator.cpp')
-rw-r--r--audio/softsynth/mt32/LA32FloatWaveGenerator.cpp41
1 files changed, 21 insertions, 20 deletions
diff --git a/audio/softsynth/mt32/LA32FloatWaveGenerator.cpp b/audio/softsynth/mt32/LA32FloatWaveGenerator.cpp
index 42d820ebad..824204e81b 100644
--- a/audio/softsynth/mt32/LA32FloatWaveGenerator.cpp
+++ b/audio/softsynth/mt32/LA32FloatWaveGenerator.cpp
@@ -1,5 +1,5 @@
/* Copyright (C) 2003, 2004, 2005, 2006, 2008, 2009 Dean Beeler, Jerome Fisher
- * Copyright (C) 2011, 2012, 2013, 2014 Dean Beeler, Jerome Fisher, Sergey V. Mikayev
+ * Copyright (C) 2011-2016 Dean Beeler, Jerome Fisher, Sergey V. Mikayev
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
@@ -15,10 +15,11 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-//#include <cmath>
-#include "mt32emu.h"
+#ifndef MT32EMU_LA32_WAVE_GENERATOR_CPP
+#error This file should be included from LA32WaveGenerator.cpp only.
+#endif
+
#include "mmath.h"
-#include "internals.h"
namespace MT32Emu {
@@ -38,10 +39,10 @@ float LA32WaveGenerator::getPCMSample(unsigned int position) {
return ((pcmSample & 32768) == 0) ? sampleValue : -sampleValue;
}
-void LA32WaveGenerator::initSynth(const bool sawtoothWaveform, const Bit8u pulseWidth, const Bit8u resonance) {
- this->sawtoothWaveform = sawtoothWaveform;
- this->pulseWidth = pulseWidth;
- this->resonance = resonance;
+void LA32WaveGenerator::initSynth(const bool useSawtoothWaveform, const Bit8u usePulseWidth, const Bit8u useResonance) {
+ sawtoothWaveform = useSawtoothWaveform;
+ pulseWidth = usePulseWidth;
+ resonance = useResonance;
wavePos = 0.0f;
lastFreq = 0.0f;
@@ -50,24 +51,24 @@ void LA32WaveGenerator::initSynth(const bool sawtoothWaveform, const Bit8u pulse
active = true;
}
-void LA32WaveGenerator::initPCM(const Bit16s * const pcmWaveAddress, const Bit32u pcmWaveLength, const bool pcmWaveLooped, const bool pcmWaveInterpolated) {
- this->pcmWaveAddress = pcmWaveAddress;
- this->pcmWaveLength = pcmWaveLength;
- this->pcmWaveLooped = pcmWaveLooped;
- this->pcmWaveInterpolated = pcmWaveInterpolated;
+void LA32WaveGenerator::initPCM(const Bit16s * const usePCMWaveAddress, const Bit32u usePCMWaveLength, const bool usePCMWaveLooped, const bool usePCMWaveInterpolated) {
+ pcmWaveAddress = usePCMWaveAddress;
+ pcmWaveLength = usePCMWaveLength;
+ pcmWaveLooped = usePCMWaveLooped;
+ pcmWaveInterpolated = usePCMWaveInterpolated;
pcmPosition = 0.0f;
active = true;
}
+// ampVal - Logarithmic amp of the wave generator
+// pitch - Logarithmic frequency of the resulting wave
+// cutoffRampVal - Composed of the base cutoff in range [78..178] left-shifted by 18 bits and the TVF modifier
float LA32WaveGenerator::generateNextSample(const Bit32u ampVal, const Bit16u pitch, const Bit32u cutoffRampVal) {
if (!active) {
return 0.0f;
}
- this->amp = amp;
- this->pitch = pitch;
-
float sample = 0.0f;
// SEMI-CONFIRMED: From sample analysis:
@@ -284,9 +285,9 @@ bool LA32WaveGenerator::isPCMWave() const {
return pcmWaveAddress != NULL;
}
-void LA32PartialPair::init(const bool ringModulated, const bool mixed) {
- this->ringModulated = ringModulated;
- this->mixed = mixed;
+void LA32PartialPair::init(const bool useRingModulated, const bool useMixed) {
+ ringModulated = useRingModulated;
+ mixed = useMixed;
masterOutputSample = 0.0f;
slaveOutputSample = 0.0f;
}
@@ -354,4 +355,4 @@ bool LA32PartialPair::isActive(const PairType useMaster) const {
return useMaster == MASTER ? master.isActive() : slave.isActive();
}
-}
+} // namespace MT32Emu