aboutsummaryrefslogtreecommitdiff
path: root/src/adlmidi_cvt.hpp
diff options
context:
space:
mode:
authorVitaly Novichkov <Wohlstand@users.noreply.github.com>2020-08-30 14:00:15 +0200
committerGitHub <noreply@github.com>2020-08-30 14:00:15 +0200
commit82fa5cb3e0859942fc6b353a3138aae8c10520a3 (patch)
tree28e99c08b430742c719f6b9bda236d29b650ffd8 /src/adlmidi_cvt.hpp
parent678be9ff7eb835087a426684a24f0e0172c9178d (diff)
parent6223286c01b83748f5c92cd21612e9eecc3d7525 (diff)
downloadlibADLMIDI-82fa5cb3e0859942fc6b353a3138aae8c10520a3.tar.gz
libADLMIDI-82fa5cb3e0859942fc6b353a3138aae8c10520a3.tar.bz2
libADLMIDI-82fa5cb3e0859942fc6b353a3138aae8c10520a3.zip
Merge pull request #232 from Wohlstand/wip-new-embedded-banks
Brand new embedded banks database format
Diffstat (limited to 'src/adlmidi_cvt.hpp')
-rw-r--r--src/adlmidi_cvt.hpp16
1 files changed, 5 insertions, 11 deletions
diff --git a/src/adlmidi_cvt.hpp b/src/adlmidi_cvt.hpp
index 3b2e07d..74b9f78 100644
--- a/src/adlmidi_cvt.hpp
+++ b/src/adlmidi_cvt.hpp
@@ -78,17 +78,11 @@ static void cvt_FMIns_to_generic(WOPLI &ins, const adlinsdata2 &in)
double voice2_fine_tune = in.voice2_fine_tune;
if(voice2_fine_tune != 0)
{
- if(voice2_fine_tune > 0 && voice2_fine_tune <= 0.000025)
- ins.second_voice_detune = 1;
- else if(voice2_fine_tune < 0 && voice2_fine_tune >= -0.000025)
- ins.second_voice_detune = -1;
- else
- {
- long value = static_cast<long>(round(voice2_fine_tune * (1000.0 / 15.625)));
- value = (value < -128) ? -128 : value;
- value = (value > +127) ? +127 : value;
- ins.second_voice_detune = static_cast<int8_t>(value);
- }
+ int m = (int)(voice2_fine_tune * 32.0);
+ m += 64;
+ m <<= 1;
+ m -= 128;
+ ins.second_voice_detune = (uint8_t)m;
}
ins.midi_velocity_offset = in.midi_velocity_offset;