steffest / BassoonTracker

Webbased old-school Amiga music tracker in plain old javascript - Plays and edits Amiga Mod files and FastTracker XM files
http://www.stef.be/bassoontracker/
MIT License
994 stars 61 forks source link

XM Bugs - Arpeggio #11

Closed steffest closed 5 years ago

steffest commented 5 years ago

Split from #8

Some have issues with arpeggios:

maniac-disco zax.xm carter-dead feelings.xm med-halloween 2002.xm (seems that a 'note-off' technique isn't working here) lhs-brd keygen #2.mod and brd keygen #2.xm both don't work properly!

bryc commented 5 years ago

I am noticing this issue in another file: zalza-back to the chipland.mod (pattern 15 in bassoon). This MOD was likely made in FastTracker II (since it plays properly there) and the arpeggio effect doesn't play back properly on ProTracker 2.3d. These files use an extended note frequency range, which might be why (the DOS TakeTracker/FastTracker 'wrap around' the arpeggio command. Some possible clues in OpenMPT manual and this page of Weasel JavaScript audio library.

steffest commented 5 years ago

Should be all fixed now. Those mod files that are converted XM files I'm going to ignore. For example lhs-brd2.mod not only goes out of range in the arpeggio, but also uses notes that are outside the .mod scope. (displayed as ??? in protracker) I don't want to stuff the tracker with options to cater for every little quirk in every browser. There will always be little differences in playback routines so I'll settle for "normal" protracker and fasttracker playback compatibility.

bryc commented 5 years ago

Nice work! Those XM files work nicely now.

The ??? notes originate in FastTracker 1.0 from 1992 along with the 8xx and E8x panning commands. FastTracker 2 supports saving .MOD in the same way. I understand not supporting features that only work in one tracker, etc. In fact ProTracker 3.x doesn't even play some MODs made in PT1 or PT2 properly! It is all a headache.

But your XM player is in itself a MOD player that supports these extended features. A user can simply switch to XM mode at any time if he/she wants to play those problematic MOD files! The only issue is, the ??? notes are stripped away from the pattern data so the XM mode cannot access it.

Perhaps make the MOD player simply ignore those notes outside range, but keep the data there for XM mode?