aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorWohlstand <admin@wohlnet.ru>2020-09-01 11:04:05 +0300
committerWohlstand <admin@wohlnet.ru>2020-09-01 11:04:05 +0300
commit735082ffbd1e96c6c59618035163b57815f0db80 (patch)
tree07199f0c9142339f0ca7eb398c7451c96b9bb585 /src
parent575fa74564c866ed4ed97c80a00d9ee4b90b6415 (diff)
downloadlibADLMIDI-735082ffbd1e96c6c59618035163b57815f0db80.tar.gz
libADLMIDI-735082ffbd1e96c6c59618035163b57815f0db80.tar.bz2
libADLMIDI-735082ffbd1e96c6c59618035163b57815f0db80.zip
Reduce the code duplication at OPL3::touchNote()
Diffstat (limited to 'src')
-rw-r--r--src/adlmidi_opl3.cpp13
1 files changed, 2 insertions, 11 deletions
diff --git a/src/adlmidi_opl3.cpp b/src/adlmidi_opl3.cpp
index b6f78b9..522d2fc 100644
--- a/src/adlmidi_opl3.cpp
+++ b/src/adlmidi_opl3.cpp
@@ -628,7 +628,8 @@ void OPL3::touchNote(size_t c,
mode += (i0->feedconn & 1) + (i1->feedconn & 1) * 2;
}
-
+ do_modulator = do_ops[mode][0] || m_scaleModulators;
+ do_carrier = do_ops[mode][1] || m_scaleModulators;
// ------ Compute the total level register output data ------
@@ -640,8 +641,6 @@ void OPL3::touchNote(size_t c,
m_volumeScale == Synth::VOLUME_APOGEE_FIXED)
{
// volume = ((64 * (velocity + 0x80)) * volume) >> 15;
- do_modulator = do_ops[mode][ 0 ] || m_scaleModulators;
- do_carrier = do_ops[mode][1] || m_scaleModulators;
if(do_carrier)
{
@@ -671,8 +670,6 @@ void OPL3::touchNote(size_t c,
}
else if(m_volumeScale == Synth::VOLUME_DMX && mode <= 1)
{
- do_modulator = do_ops[mode][ 0 ] || m_scaleModulators;
-
tlCar = (63 - volume);
if(do_modulator)
@@ -683,9 +680,6 @@ void OPL3::touchNote(size_t c,
}
else if(m_volumeScale == Synth::VOLUME_9X)
{
- do_modulator = do_ops[mode][0] || m_scaleModulators;
- do_carrier = do_ops[mode][1] || m_scaleModulators;
-
if(do_carrier)
tlCar += volume + W9X_volume_mapping_table[velocity >> 2];
if(do_modulator)
@@ -698,9 +692,6 @@ void OPL3::touchNote(size_t c,
}
else
{
- do_modulator = do_ops[ mode ][ 0 ] || m_scaleModulators;
- do_carrier = do_ops[ mode ][ 1 ] || m_scaleModulators;
-
if(do_modulator)
tlMod = 63 - volume + (volume * tlMod) / 63;
if(do_carrier)