tildearrow / furnace

a multi-system chiptune tracker compatible with DefleMask modules
GNU General Public License v2.0
2.08k stars 188 forks source link

[2a03] 0Axy does not persist after reaching target, breaking pretty much all of my famitracker files #1935

Closed Dowotdashdotdot closed 3 weeks ago

Dowotdashdotdot commented 3 weeks ago

I'm not sure if i'm just missing some compatibility flag, or if this is a wont-fix/intended behavior, but nobody's mentioned it here before. When using 0Axy, once it hits zero it then does not persist the effect and I can find no way to change this behavior. In famitracker, the volume slide persists, and if at a later point the channel volume is set again it will sweep down/up from that point again. This behavior is very common in most of the files I've found as well as in the files I've made. it makes it incredibly quick to make, say, a hihat on the noise channel just by putting values in the volume column. However, Furnace doesn't Do That. most of the stuff I've tried importing just sounds absolutely wrecked, and is difficult to go in and fix, since doing so would require adding effects to every single volume command. the compat flag "Don't Persist volume macro after it finishes" sounds exactly like what I want except the inverse. Regardless of if i enable it or not it doesn't effect anything.

Demo: This sequence in Furnace image

which is ~identical to this sequence in Famitracker image

does not behave the same at all diagram of expected behavior: (i drew this on a trackpad) image

fami output: https://drive.google.com/file/d/1MOZ4EI6DjU3ybM9WQuDf8mdGrdU0dDfL/view?usp=sharing

furnace output: https://drive.google.com/file/d/1CPkNW3JJDDtErwqH2V6hRc6HMYcVSKqb/view?usp=sharing

i hope this all made sense, I'm slowly losing my mind. Thank you!

Dowotdashdotdot commented 3 weeks ago

to be clear: as far as I can tell this isn't a problem with the FamiTracker import itself, and this is on Furnace 0.6.3

tildearrow commented 3 weeks ago

This is intentional. In Furnace, volume slides stop upon reaching zero or max volume.

I may add a compatibility flag in the future though...