aboutsummaryrefslogtreecommitdiff
path: root/src/adlmidi_midiplay.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/adlmidi_midiplay.cpp')
-rw-r--r--src/adlmidi_midiplay.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/adlmidi_midiplay.cpp b/src/adlmidi_midiplay.cpp
index b226ce1..191021e 100644
--- a/src/adlmidi_midiplay.cpp
+++ b/src/adlmidi_midiplay.cpp
@@ -395,6 +395,7 @@ bool MIDIplay::realTime_NoteOn(uint8_t channel, uint8_t note, uint8_t velocity)
}
//uint16_t i[2] = { ains->adlno1, ains->adlno2 };
+ bool is_2op = !(ains->flags & (adlinsdata::Flag_Pseudo4op|adlinsdata::Flag_Real4op));
bool pseudo_4op = ains->flags & adlinsdata::Flag_Pseudo4op;
#ifndef __WATCOMC__
MIDIchannel::NoteInfo::Phys voices[MIDIchannel::NoteInfo::MaxNumPhysChans] =
@@ -457,7 +458,7 @@ bool MIDIplay::realTime_NoteOn(uint8_t channel, uint8_t note, uint8_t velocity)
if(ccount == 1 && static_cast<int32_t>(a) == adlchannel[0]) continue;
// ^ Don't use the same channel for primary&secondary
- if(voices[0].ains == voices[1].ains || pseudo_4op/*i[0] == i[1] || pseudo_4op*/)
+ if(is_2op || pseudo_4op)
{
// Only use regular channels
uint32_t expected_mode = 0;
@@ -1878,7 +1879,7 @@ ADLMIDI_EXPORT void AdlInstrumentTester::DoNote(int note)
}
double hertz = 172.00093 * std::exp(0.057762265 * (tone + 0.0));
int32_t adlchannel[2] = { 0, 3 };
- if(ains.adl[0] == ains.adl[1])
+ if((ains.flags & (adlinsdata::Flag_Pseudo4op|adlinsdata::Flag_Real4op)) == 0)
{
adlchannel[1] = -1;
adlchannel[0] = 6; // single-op
@@ -1960,7 +1961,7 @@ ADLMIDI_EXPORT void AdlInstrumentTester::NextAdl(int offset)
}
std::printf("%s%s%s%u\t",
ToneIndication,
- ains.adl[0] != ains.adl[1] ? "[2]" : " ",
+ (ains.flags & (adlinsdata::Flag_Pseudo4op|adlinsdata::Flag_Real4op)) ? "[2]" : " ",
(P->ins_idx == a) ? "->" : "\t",
i
);