aboutsummaryrefslogtreecommitdiff
path: root/audio/softsynth/mt32/mt32emu.h
diff options
context:
space:
mode:
Diffstat (limited to 'audio/softsynth/mt32/mt32emu.h')
-rw-r--r--audio/softsynth/mt32/mt32emu.h23
1 files changed, 15 insertions, 8 deletions
diff --git a/audio/softsynth/mt32/mt32emu.h b/audio/softsynth/mt32/mt32emu.h
index 091819b95c..ae5f4955b1 100644
--- a/audio/softsynth/mt32/mt32emu.h
+++ b/audio/softsynth/mt32/mt32emu.h
@@ -59,13 +59,18 @@
#define MT32EMU_MONITOR_TVA 0
#define MT32EMU_MONITOR_TVF 0
-
-// 0: Use LUTs to speedup WG
-// 1: Use precise float math
+// The WG algorithm involves dozens of transcendent maths, e.g. exponents and trigonometry.
+// Unfortunately, the majority of systems perform such computations inefficiently,
+// standard math libs and FPUs make no optimisations for single precision floats,
+// and use no LUTs to speedup computing internal taylor series. Though, there're rare exceptions,
+// and there's a hope it will become common soon.
+// So, this is the crucial point of speed optimisations. We have now eliminated all the transcendent maths
+// within the critical path and use LUTs instead.
+// Besides, since the LA32 chip is assumed to use similar LUTs inside, the overall emulation accuracy should be better.
+// 0: Use LUTs to speedup WG. Most common setting. You can expect about 50% performance boost.
+// 1: Use precise float math. Use this setting to achieve more accurate wave generator. If your system performs better with this setting, it is really notable. :)
#define MT32EMU_ACCURATE_WG 0
-#define MT32EMU_USE_EXTINT 0
-
// Configuration
// The maximum number of partials playing simultaneously
#define MT32EMU_MAX_PARTIALS 32
@@ -77,9 +82,10 @@
// If zero, keeps reverb buffers for all modes around all the time to avoid allocating/freeing in the critical path.
#define MT32EMU_REDUCE_REVERB_MEMORY 1
-// 0: Use standard Freeverb
-// 1: Use AReverb (currently not properly tuned)
-#define MT32EMU_USE_AREVERBMODEL 0
+// 0: Use legacy Freeverb
+// 1: Use Accurate Reverb model aka AReverb
+// 2: Use Bit-perfect Boss Reverb model aka BReverb (for developers, not much practical use)
+#define MT32EMU_USE_REVERBMODEL 1
namespace MT32Emu
{
@@ -109,6 +115,7 @@ const unsigned int MAX_PRERENDER_SAMPLES = 1024;
#include "TVF.h"
#include "Partial.h"
#include "Part.h"
+#include "ROMInfo.h"
#include "Synth.h"
#endif