diff options
author | Vitaly Novichkov <admin@wohlnet.ru> | 2018-06-04 03:30:28 +0300 |
---|---|---|
committer | Vitaly Novichkov <admin@wohlnet.ru> | 2018-06-04 03:30:28 +0300 |
commit | 51a7cb19a8656c91baf616df5986d8e4c4cce97d (patch) | |
tree | 353a701b0e27e9d68eac6bb8aa6295abbda9091a /src/adlmidi_private.hpp | |
parent | 4c9532c688bf535a6327c31978d66b3a3ef27e51 (diff) | |
download | libADLMIDI-51a7cb19a8656c91baf616df5986d8e4c4cce97d.tar.gz libADLMIDI-51a7cb19a8656c91baf616df5986d8e4c4cce97d.tar.bz2 libADLMIDI-51a7cb19a8656c91baf616df5986d8e4c4cce97d.zip |
Fixed bend sensitivity processing
Diffstat (limited to 'src/adlmidi_private.hpp')
-rw-r--r-- | src/adlmidi_private.hpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/adlmidi_private.hpp b/src/adlmidi_private.hpp index 0584587..c720fc2 100644 --- a/src/adlmidi_private.hpp +++ b/src/adlmidi_private.hpp @@ -504,6 +504,7 @@ public: //! Is note aftertouch has any non-zero value bool noteAfterTouchInUse; char ____padding[6]; + double bendSrc; double bend, bendsense; int bendsense_lsb, bendsense_msb; double vibpos, vibspeed, vibdepth; @@ -698,6 +699,7 @@ public: } void resetAllControllers() { + bendSrc = 0.0; bend = 0.0; bendsense_msb = 2; bendsense_lsb = 0; @@ -722,8 +724,9 @@ public: } void updateBendSensitivity() { - int cent = bendsense_msb * 100 + bendsense_lsb; - bendsense = cent * (0.01 / 8192.0); + int cent = bendsense_msb + static_cast<int>(static_cast<double>(bendsense_lsb) * (1.0 / 128.0)); + bendsense = static_cast<double>(cent) / 8192.0; + bend = bendSrc * bendsense; } MIDIchannel() { |