diff options
author | Wohlstand <admin@wohlnet.ru> | 2020-09-13 19:01:30 +0300 |
---|---|---|
committer | Wohlstand <admin@wohlnet.ru> | 2020-09-13 19:01:30 +0300 |
commit | be5cdf28369da49f316e08dca0e51c24f37cfe84 (patch) | |
tree | 3ac091873325e2a00950c01a423a5a2f979fc48a /src/adlmidi_cvt.hpp | |
parent | 10ee01dbcab85c3b2828b0551e017a2c2963a41b (diff) | |
download | libADLMIDI-be5cdf28369da49f316e08dca0e51c24f37cfe84.tar.gz libADLMIDI-be5cdf28369da49f316e08dca0e51c24f37cfe84.tar.bz2 libADLMIDI-be5cdf28369da49f316e08dca0e51c24f37cfe84.zip |
Refactor internal instrument data structures
Diffstat (limited to 'src/adlmidi_cvt.hpp')
-rw-r--r-- | src/adlmidi_cvt.hpp | 60 |
1 files changed, 30 insertions, 30 deletions
diff --git a/src/adlmidi_cvt.hpp b/src/adlmidi_cvt.hpp index 74b9f78..de25253 100644 --- a/src/adlmidi_cvt.hpp +++ b/src/adlmidi_cvt.hpp @@ -26,7 +26,7 @@ #include <cmath> template <class WOPLI> -static void cvt_generic_to_FMIns(adlinsdata2 &ins, const WOPLI &in) +static void cvt_generic_to_FMIns(OplInstMeta &ins, const WOPLI &in) { ins.voice2_fine_tune = 0.0; int voice2_fine_tune = in.second_voice_detune; @@ -37,42 +37,42 @@ static void cvt_generic_to_FMIns(adlinsdata2 &ins, const WOPLI &in) ins.voice2_fine_tune = (double)(((voice2_fine_tune + 128) >> 1) - 64) / 32.0; } - ins.midi_velocity_offset = in.midi_velocity_offset; - ins.tone = in.percussion_key_number; - ins.flags = (in.inst_flags & WOPL_Ins_4op) && (in.inst_flags & WOPL_Ins_Pseudo4op) ? adlinsdata::Flag_Pseudo4op : 0; - ins.flags|= (in.inst_flags & WOPL_Ins_4op) && ((in.inst_flags & WOPL_Ins_Pseudo4op) == 0) ? adlinsdata::Flag_Real4op : 0; - ins.flags|= (in.inst_flags & WOPL_Ins_IsBlank) ? adlinsdata::Flag_NoSound : 0; + ins.midiVelocityOffset = in.midi_velocity_offset; + ins.drumTone = in.percussion_key_number; + ins.flags = (in.inst_flags & WOPL_Ins_4op) && (in.inst_flags & WOPL_Ins_Pseudo4op) ? OplInstMeta::Flag_Pseudo4op : 0; + ins.flags|= (in.inst_flags & WOPL_Ins_4op) && ((in.inst_flags & WOPL_Ins_Pseudo4op) == 0) ? OplInstMeta::Flag_Real4op : 0; + ins.flags|= (in.inst_flags & WOPL_Ins_IsBlank) ? OplInstMeta::Flag_NoSound : 0; ins.flags|= in.inst_flags & WOPL_RhythmModeMask; for(size_t op = 0, slt = 0; op < 4; op++, slt++) { - ins.adl[slt].carrier_E862 = + ins.op[slt].carrier_E862 = ((static_cast<uint32_t>(in.operators[op].waveform_E0) << 24) & 0xFF000000) //WaveForm | ((static_cast<uint32_t>(in.operators[op].susrel_80) << 16) & 0x00FF0000) //SusRel | ((static_cast<uint32_t>(in.operators[op].atdec_60) << 8) & 0x0000FF00) //AtDec | ((static_cast<uint32_t>(in.operators[op].avekf_20) << 0) & 0x000000FF); //AVEKM - ins.adl[slt].carrier_40 = in.operators[op].ksl_l_40;//KSLL + ins.op[slt].carrier_40 = in.operators[op].ksl_l_40;//KSLL op++; - ins.adl[slt].modulator_E862 = + ins.op[slt].modulator_E862 = ((static_cast<uint32_t>(in.operators[op].waveform_E0) << 24) & 0xFF000000) //WaveForm | ((static_cast<uint32_t>(in.operators[op].susrel_80) << 16) & 0x00FF0000) //SusRel | ((static_cast<uint32_t>(in.operators[op].atdec_60) << 8) & 0x0000FF00) //AtDec | ((static_cast<uint32_t>(in.operators[op].avekf_20) << 0) & 0x000000FF); //AVEKM - ins.adl[slt].modulator_40 = in.operators[op].ksl_l_40;//KSLL + ins.op[slt].modulator_40 = in.operators[op].ksl_l_40;//KSLL } - ins.adl[0].finetune = static_cast<int8_t>(in.note_offset1); - ins.adl[0].feedconn = in.fb_conn1_C0; - ins.adl[1].finetune = static_cast<int8_t>(in.note_offset2); - ins.adl[1].feedconn = in.fb_conn2_C0; + ins.op[0].noteOffset = static_cast<int8_t>(in.note_offset1); + ins.op[0].feedconn = in.fb_conn1_C0; + ins.op[1].noteOffset = static_cast<int8_t>(in.note_offset2); + ins.op[1].feedconn = in.fb_conn2_C0; - ins.ms_sound_kon = in.delay_on_ms; - ins.ms_sound_koff = in.delay_off_ms; + ins.soundKeyOnMs = in.delay_on_ms; + ins.soundKeyOffMs = in.delay_off_ms; } template <class WOPLI> -static void cvt_FMIns_to_generic(WOPLI &ins, const adlinsdata2 &in) +static void cvt_FMIns_to_generic(WOPLI &ins, const OplInstMeta &in) { ins.second_voice_detune = 0; double voice2_fine_tune = in.voice2_fine_tune; @@ -85,16 +85,16 @@ static void cvt_FMIns_to_generic(WOPLI &ins, const adlinsdata2 &in) ins.second_voice_detune = (uint8_t)m; } - ins.midi_velocity_offset = in.midi_velocity_offset; - ins.percussion_key_number = in.tone; - ins.inst_flags = (in.flags & (adlinsdata::Flag_Pseudo4op|adlinsdata::Flag_Real4op)) ? WOPL_Ins_4op : 0; - ins.inst_flags|= (in.flags & adlinsdata::Flag_Pseudo4op) ? WOPL_Ins_Pseudo4op : 0; - ins.inst_flags|= (in.flags & adlinsdata::Flag_NoSound) ? WOPL_Ins_IsBlank : 0; - ins.inst_flags |= in.flags & adlinsdata::Mask_RhythmMode; + ins.midi_velocity_offset = in.midiVelocityOffset; + ins.percussion_key_number = in.drumTone; + ins.inst_flags = (in.flags & (OplInstMeta::Flag_Pseudo4op|OplInstMeta::Flag_Real4op)) ? WOPL_Ins_4op : 0; + ins.inst_flags|= (in.flags & OplInstMeta::Flag_Pseudo4op) ? WOPL_Ins_Pseudo4op : 0; + ins.inst_flags|= (in.flags & OplInstMeta::Flag_NoSound) ? WOPL_Ins_IsBlank : 0; + ins.inst_flags |= in.flags & OplInstMeta::Mask_RhythmMode; for(size_t op = 0; op < 4; op++) { - const adldata &in2op = in.adl[(op < 2) ? 0 : 1]; + const OplTimbre &in2op = in.op[(op < 2) ? 0 : 1]; uint32_t regE862 = ((op & 1) == 0) ? in2op.carrier_E862 : in2op.modulator_E862; uint8_t reg40 = ((op & 1) == 0) ? in2op.carrier_40 : in2op.modulator_40; @@ -105,11 +105,11 @@ static void cvt_FMIns_to_generic(WOPLI &ins, const adlinsdata2 &in) ins.operators[op].ksl_l_40 = reg40; } - ins.note_offset1 = in.adl[0].finetune; - ins.fb_conn1_C0 = in.adl[0].feedconn; - ins.note_offset2 = in.adl[1].finetune; - ins.fb_conn2_C0 = in.adl[1].feedconn; + ins.note_offset1 = in.op[0].noteOffset; + ins.fb_conn1_C0 = in.op[0].feedconn; + ins.note_offset2 = in.op[1].noteOffset; + ins.fb_conn2_C0 = in.op[1].feedconn; - ins.delay_on_ms = in.ms_sound_kon; - ins.delay_off_ms = in.ms_sound_koff; + ins.delay_on_ms = in.soundKeyOnMs; + ins.delay_off_ms = in.soundKeyOffMs; } |