diff options
author | Wohlstand <admin@wohlnet.ru> | 2020-10-12 13:42:21 +0300 |
---|---|---|
committer | Wohlstand <admin@wohlnet.ru> | 2020-10-12 13:42:21 +0300 |
commit | 736df6495ba6e80dad46e058140bf0693819f3bd (patch) | |
tree | 30c3fac6ebb653dedbadd7d7db52dd1351f7e5a9 /src/adlmidi_opl3.cpp | |
parent | c962230d253e8a6d1ee59fd0f5b3ab7afcc53a9c (diff) | |
download | libADLMIDI-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.cpp | 8 |
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]; |