aboutsummaryrefslogtreecommitdiff
path: root/src/adlmidi_opl3.cpp
diff options
context:
space:
mode:
authorWohlstand <admin@wohlnet.ru>2020-10-12 13:42:21 +0300
committerWohlstand <admin@wohlnet.ru>2020-10-12 13:42:21 +0300
commit736df6495ba6e80dad46e058140bf0693819f3bd (patch)
tree30c3fac6ebb653dedbadd7d7db52dd1351f7e5a9 /src/adlmidi_opl3.cpp
parentc962230d253e8a6d1ee59fd0f5b3ab7afcc53a9c (diff)
downloadlibADLMIDI-736df6495ba6e80dad46e058140bf0693819f3bd.tar.gz
libADLMIDI-736df6495ba6e80dad46e058140bf0693819f3bd.tar.bz2
libADLMIDI-736df6495ba6e80dad46e058140bf0693819f3bd.zip
DMX: A small fix of SynthBass2 G-bug
When playing SynthBass2 the G note of any octaves, result will sound distorted Fix by @nukeykt
Diffstat (limited to 'src/adlmidi_opl3.cpp')
-rw-r--r--src/adlmidi_opl3.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/adlmidi_opl3.cpp b/src/adlmidi_opl3.cpp
index a3ec71b..0a41569 100644
--- a/src/adlmidi_opl3.cpp
+++ b/src/adlmidi_opl3.cpp
@@ -403,14 +403,16 @@ static inline double s_dmxFreq(double tone)
int_fast32_t oct = 0;
int_fast32_t freqIndex = (noteI << 5) + bendI;
+#define MAX_FREQ_IDX 283 // 284 - with the DMX side bug
if(freqIndex < 0)
freqIndex = 0;
- else if(freqIndex >= 284)
+ else if(freqIndex >= MAX_FREQ_IDX)
{
- freqIndex -= 284;
+ freqIndex -= MAX_FREQ_IDX;
oct = freqIndex / 384;
- freqIndex = (freqIndex % 384) + 284;
+ freqIndex = (freqIndex % 384) + MAX_FREQ_IDX;
}
+#undef MAX_FREQ_IDX
outHz = s_dmx_freq_table[freqIndex];