furnace
furnace copied to clipboard
OPM LFO issue
OPM initialization does not contain "LFO Disable" (write 02 into register 01) which causes instruments with AMS/PMS set to behave differently in Furnace than Deflemask. This is due to the fact that the OPM LFO has a non-zero frequency even at LFO FREQ=0. Over time, the value of the oscillator drifts upwards, distorting any voices having AMS/PMS enabled.
Deflemask includes an LFO disable in its initialization, and whenever LFO frequency is set (effect 17xx), it writes register 01 with 02 if LFO freq=0, else writes register 01 with 00 (LFO enable) along with the LFO frequency value into register 0x18.
Furnace does not do these accompanying writes, leading to inaccuracies in playback of affected tunes, and in the VGMs produced.
I am coding a fix for this issue. Opened the issue to correlate with the PR.
Here is a dmf that demonstrates the issue. Compare playback in Deflemask vs Furnace. lfo_test.zip (WAV outputs included)
Marking as done after merge.