diff options
author | Vitaly Novichkov <admin@wohlnet.ru> | 2019-07-08 03:13:54 +0300 |
---|---|---|
committer | Vitaly Novichkov <admin@wohlnet.ru> | 2019-07-08 03:13:54 +0300 |
commit | 9cf0445116c8e69dc3d4c2768af74af9281914d1 (patch) | |
tree | 169a45545a041f6ea1d5c5cb5caf59a8ef7b5f5b /utils/gen_adldata | |
parent | bfd932874f5e107eaf81c40b87d5c722170a5ace (diff) | |
download | libADLMIDI-9cf0445116c8e69dc3d4c2768af74af9281914d1.tar.gz libADLMIDI-9cf0445116c8e69dc3d4c2768af74af9281914d1.tar.bz2 libADLMIDI-9cf0445116c8e69dc3d4c2768af74af9281914d1.zip |
Minor fixes
Looks like need to correct 4-op sounding, looks like it really silent inside measurer when it must give an actual sound!
Diffstat (limited to 'utils/gen_adldata')
-rw-r--r-- | utils/gen_adldata/measurer.cpp | 11 | ||||
-rw-r--r-- | utils/gen_adldata/progs_cache.cpp | 2 |
2 files changed, 8 insertions, 5 deletions
diff --git a/utils/gen_adldata/measurer.cpp b/utils/gen_adldata/measurer.cpp index 4e47723..9dd5e68 100644 --- a/utils/gen_adldata/measurer.cpp +++ b/utils/gen_adldata/measurer.cpp @@ -253,7 +253,7 @@ struct TinySynth m_noteOffsets[1] = ins.noteOffset2; if(isPseudo4ops) m_voice1Detune = ins.secondVoiceDetune; - m_chip->writeReg(0x104, is4ops ? (1 << 6) - 1 : 0x00); + m_chip->writeReg(0x104, is4ops ? 0x3F : 0x00); //For cleaner measurement, disable tremolo and vibrato ops[0].d_E862 &= 0xFFFFFF3F; @@ -730,7 +730,7 @@ DurationInfo MeasureDurations(BanksDump &db, const BanksDump::InstrumentEntry &i result.ms_sound_kon = (int64_t)(quarter_amplitude_time * 1000.0 / interval); result.ms_sound_koff = (int64_t)(keyoff_out_time * 1000.0 / interval); - result.nosound = (peak_amplitude_value < 0.5) || ((sound_min >= -1) && (sound_max <= 1)); + result.nosound = (peak_amplitude_value < 0.5) || ((sound_min >= -19) && (sound_max <= 18)); db.instruments[ins.instId].delay_on_ms = result.ms_sound_kon; db.instruments[ins.instId].delay_off_ms = result.ms_sound_koff; @@ -748,7 +748,7 @@ DurationInfo MeasureDurations(BanksDump &db, const BanksDump::InstrumentEntry &i if(silent1 != silent2) { std::fprintf(stdout, - "\n\n%04lu - %s AN=%u NN=%u -- con1=%lu, con2=%lu\n%s computed - %s actual (%g peak)\n\n", + "\n\n%04lu - %s AN=%u NN=%u -- con1=%lu, con2=%lu\n%s computed - %s actual (%g peak, %d<%d)\n\n", ins.instId, synth.m_isPseudo4op ? "pseudo4op" : synth.m_isReal4op ? "4op" : "2op", synth.m_actualNotesNum, @@ -757,13 +757,16 @@ DurationInfo MeasureDurations(BanksDump &db, const BanksDump::InstrumentEntry &i (ins.fbConn >> 8) & 0x01, silent2 ? "silent" : "sound", silent1 ? "silent" : "sound", - peak_amplitude_value); + peak_amplitude_value, + sound_min, + sound_max); for(auto &sss : ins.instMetas) std::fprintf(stdout, "%s\n", sss.c_str()); BanksDump::isSilent(db, ins, true); std::fprintf(stdout, "\n\n"); std::fflush(stdout); assert(silent1 == silent2); + exit(1); } } diff --git a/utils/gen_adldata/progs_cache.cpp b/utils/gen_adldata/progs_cache.cpp index d4ba10e..0e087d3 100644 --- a/utils/gen_adldata/progs_cache.cpp +++ b/utils/gen_adldata/progs_cache.cpp @@ -420,7 +420,7 @@ struct OpCheckData attack = static_cast<uint_fast8_t>((d_E862 >> 12) & 0x0F); release = static_cast<uint_fast8_t>((d_E862 >> 16) & 0x0F); sustain = static_cast<uint_fast8_t>((d_E862 >> 20) & 0x0F); - level = static_cast<uint_fast8_t>(d_40); + level = static_cast<uint_fast8_t>(d_40 & 0x3F); } bool isOpSilent(bool moreInfo) |