aboutsummaryrefslogtreecommitdiff
path: root/src/adlmidi_opl3.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/adlmidi_opl3.cpp')
-rw-r--r--src/adlmidi_opl3.cpp68
1 files changed, 35 insertions, 33 deletions
diff --git a/src/adlmidi_opl3.cpp b/src/adlmidi_opl3.cpp
index 18488b3..09e1a19 100644
--- a/src/adlmidi_opl3.cpp
+++ b/src/adlmidi_opl3.cpp
@@ -285,39 +285,41 @@ void OPL3::setEmbeddedBank(uint32_t bank)
BanksDump::InstrumentEntry instIn = g_embeddedBanksInstruments[bankData.insts[instId]];
adlinsdata2 &instOut = bankTarget.ins[instId];
- instOut.voice2_fine_tune = 0.0;
- if(instIn.secondVoiceDetune != 0)
- {
- if(instIn.secondVoiceDetune == 1)
- instOut.voice2_fine_tune = 0.000025;
- else if(instIn.secondVoiceDetune == -1)
- instOut.voice2_fine_tune = -0.000025;
- else
- instOut.voice2_fine_tune = instIn.secondVoiceDetune * (15.625 / 1000.0);
- }
-
- instOut.midi_velocity_offset = instIn.midiVelocityOffset;
- instOut.tone = instIn.percussionKeyNumber;
- instOut.flags = (instIn.instFlags & WOPL_Ins_4op) && (instIn.instFlags & WOPL_Ins_Pseudo4op) ? adlinsdata::Flag_Pseudo4op : 0;
- instOut.flags|= (instIn.instFlags & WOPL_Ins_4op) && ((instIn.instFlags & WOPL_Ins_Pseudo4op) == 0) ? adlinsdata::Flag_Real4op : 0;
- instOut.flags|= (instIn.instFlags & WOPL_Ins_IsBlank) ? adlinsdata::Flag_NoSound : 0;
- instOut.flags|= instIn.instFlags & WOPL_RhythmModeMask;
-
- for(size_t op = 0; op < 2; op++)
- {
- if((instIn.ops[(op * 2) + 0] < 0) || (instIn.ops[(op * 2) + 1] < 0))
- break;
- const BanksDump::Operator &op1 = g_embeddedBanksOperators[instIn.ops[(op * 2) + 0]];
- const BanksDump::Operator &op2 = g_embeddedBanksOperators[instIn.ops[(op * 2) + 1]];
- instOut.adl[op].modulator_E862 = op1.d_E862;
- instOut.adl[op].modulator_40 = op1.d_40;
- instOut.adl[op].carrier_E862 = op2.d_E862;
- instOut.adl[op].carrier_40 = op2.d_40;
- instOut.adl[op].feedconn = (instIn.fbConn >> (op * 8)) & 0xFF;
- instOut.adl[op].finetune = static_cast<int8_t>(op == 0 ? instIn.noteOffset1 : instIn.noteOffset2);
- }
- instOut.ms_sound_kon = instIn.delay_on_ms;
- instOut.ms_sound_koff = instIn.delay_off_ms;
+ adlFromInstrument(instIn, instOut);
+
+// instOut.voice2_fine_tune = 0.0;
+// if(instIn.secondVoiceDetune != 0)
+// {
+// if(instIn.secondVoiceDetune == 1)
+// instOut.voice2_fine_tune = 0.000025;
+// else if(instIn.secondVoiceDetune == -1)
+// instOut.voice2_fine_tune = -0.000025;
+// else
+// instOut.voice2_fine_tune = instIn.secondVoiceDetune * (15.625 / 1000.0);
+// }
+
+// instOut.midi_velocity_offset = instIn.midiVelocityOffset;
+// instOut.tone = instIn.percussionKeyNumber;
+// instOut.flags = (instIn.instFlags & WOPL_Ins_4op) && (instIn.instFlags & WOPL_Ins_Pseudo4op) ? adlinsdata::Flag_Pseudo4op : 0;
+// instOut.flags|= (instIn.instFlags & WOPL_Ins_4op) && ((instIn.instFlags & WOPL_Ins_Pseudo4op) == 0) ? adlinsdata::Flag_Real4op : 0;
+// instOut.flags|= (instIn.instFlags & WOPL_Ins_IsBlank) ? adlinsdata::Flag_NoSound : 0;
+// instOut.flags|= instIn.instFlags & WOPL_RhythmModeMask;
+
+// for(size_t op = 0; op < 2; op++)
+// {
+// if((instIn.ops[(op * 2) + 0] < 0) || (instIn.ops[(op * 2) + 1] < 0))
+// break;
+// const BanksDump::Operator &op1 = g_embeddedBanksOperators[instIn.ops[(op * 2) + 0]];
+// const BanksDump::Operator &op2 = g_embeddedBanksOperators[instIn.ops[(op * 2) + 1]];
+// instOut.adl[op].modulator_E862 = op1.d_E862;
+// instOut.adl[op].modulator_40 = op1.d_40;
+// instOut.adl[op].carrier_E862 = op2.d_E862;
+// instOut.adl[op].carrier_40 = op2.d_40;
+// instOut.adl[op].feedconn = (instIn.fbConn >> (op * 8)) & 0xFF;
+// instOut.adl[op].finetune = static_cast<int8_t>(op == 0 ? instIn.noteOffset1 : instIn.noteOffset2);
+// }
+// instOut.ms_sound_kon = instIn.delay_on_ms;
+// instOut.ms_sound_koff = instIn.delay_off_ms;
}
}
}