aboutsummaryrefslogtreecommitdiff
path: root/src/adlmidi_midiplay.cpp
diff options
context:
space:
mode:
authorWohlstand <admin@wohlnet.ru>2020-08-21 00:02:52 +0300
committerWohlstand <admin@wohlnet.ru>2020-08-21 00:02:52 +0300
commit75637f387b2d91bf81ee2558244c030c3f7df26d (patch)
treea429ea9766f62c8617a56c06850083389df3306b /src/adlmidi_midiplay.cpp
parentbaf7ea95709451989f02e0d2e2f27750e3ce74e5 (diff)
parent5ab3afa77e91ea4f7a64769ac8a1ac016e29bfeb (diff)
downloadlibADLMIDI-75637f387b2d91bf81ee2558244c030c3f7df26d.tar.gz
libADLMIDI-75637f387b2d91bf81ee2558244c030c3f7df26d.tar.bz2
libADLMIDI-75637f387b2d91bf81ee2558244c030c3f7df26d.zip
Merge branch 'master' into wip-new-embedded-banks
Diffstat (limited to 'src/adlmidi_midiplay.cpp')
-rw-r--r--src/adlmidi_midiplay.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/adlmidi_midiplay.cpp b/src/adlmidi_midiplay.cpp
index 9342d55..697a264 100644
--- a/src/adlmidi_midiplay.cpp
+++ b/src/adlmidi_midiplay.cpp
@@ -709,8 +709,13 @@ void MIDIplay::realTime_ChannelAfterTouch(uint8_t channel, uint8_t atVal)
void MIDIplay::realTime_Controller(uint8_t channel, uint8_t type, uint8_t value)
{
Synth &synth = *m_synth;
+
+ if(value > 127) // Allowed values 0~127 only
+ value = 127;
+
if(static_cast<size_t>(channel) > m_midiChannels.size())
channel = channel % 16;
+
switch(type)
{
case 1: // Adjust vibrato
@@ -1316,8 +1321,8 @@ void MIDIplay::noteUpdate(size_t midCh,
case Synth::VOLUME_DMX:
{
- volume = 2 * (m_midiChannels[midCh].volume * m_midiChannels[midCh].expression * m_masterVolume / 16129) + 1;
- //volume = 2 * (Ch[MidCh].volume) + 1;
+ volume = (m_midiChannels[midCh].volume * m_midiChannels[midCh].expression * m_masterVolume) / 16129;
+ volume = (DMX_volume_mapping_table[volume] + 1) << 1;
volume = (DMX_volume_mapping_table[(vol < 128) ? vol : 127] * volume) >> 9;
}
break;