aboutsummaryrefslogtreecommitdiff
path: root/src/adlmidi_private.hpp
diff options
context:
space:
mode:
authorJP Cimalando <jpcima@users.noreply.github.com>2018-05-10 15:03:47 +0200
committerJP Cimalando <jpcima@users.noreply.github.com>2018-05-10 15:20:02 +0200
commit6545b648cded507215be777864194f4cc961f877 (patch)
tree827b47cc0c72e08943fff5aa7c7c10262a9ebf32 /src/adlmidi_private.hpp
parentf729563b683c3ac7adcf07d2f4dffcdfa49fd605 (diff)
downloadlibADLMIDI-6545b648cded507215be777864194f4cc961f877.tar.gz
libADLMIDI-6545b648cded507215be777864194f4cc961f877.tar.bz2
libADLMIDI-6545b648cded507215be777864194f4cc961f877.zip
meaningful handling of pitch bend sensitivity
Diffstat (limited to 'src/adlmidi_private.hpp')
-rw-r--r--src/adlmidi_private.hpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/adlmidi_private.hpp b/src/adlmidi_private.hpp
index 9fd6f97..5ac6ebc 100644
--- a/src/adlmidi_private.hpp
+++ b/src/adlmidi_private.hpp
@@ -599,6 +599,7 @@ public:
uint8_t panning, vibrato, sustain;
char ____padding[6];
double bend, bendsense;
+ int bendsense_lsb, bendsense_msb;
double vibpos, vibspeed, vibdepth;
int64_t vibdelay;
uint8_t lastlrpn, lastmrpn;
@@ -791,7 +792,9 @@ public:
void resetAllControllers()
{
bend = 0.0;
- bendsense = 2 / 8192.0;
+ bendsense_msb = 2;
+ bendsense_lsb = 0;
+ updateBendSensitivity();
volume = 100;
expression = 127;
sustain = 0;
@@ -803,6 +806,11 @@ public:
portamento = 0;
brightness = 127;
}
+ void updateBendSensitivity()
+ {
+ int cent = bendsense_msb * 100 + bendsense_lsb;
+ bendsense = cent * (0.01 / 8192.0);
+ }
MIDIchannel()
{
activenotes_clear();