-
Notifications
You must be signed in to change notification settings - Fork 61
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
More player bugs #56
Comments
Interesting!
Indeed. It appears at the "note-off" command, the volume envelope doesn't jump to the correct sustain point. That's an interesting one as it appears to be a bug.
This is because the L command (set envelope point) is not implemented yet. It's listed in the readme as missing feature. Still on the todolist, but not very high priority. (First time I see this used actually, but I'm sure there are other XM files that use this)
Yes... the F20 command was a proper bug, that is fixed in c30d8cc The other issue are related to the rather extreme tempo switches that influence the - also rather extreme - arpeggio commands on the small loops.
Yeah.. Sountdtracker is a bit "supported by accident" Thanks! |
Commands D and E are Volume Slide Up/Down in TJC/DFJ. DOC scrapped them and used D as "pattern break". Command "A" was added later for volume slide, so OpenMPT translates it D>A. It seems they accomplish this by counting how many D commands are used, or how much empty space is after a D command. Since 'high byte' is full of D commands, it can be inferred "wait, this is not a pattern break". But these are heuristics and considered hacky/inelegant. Specially crafted files, or even the odd wild one, may defeat heuristics. This page explains the entire changelog of ST better than I can. It's basically up to you how far you want to go down the rabbit hole ;). I imagine a perfect solution for every case would be quite verbose and labor intensive to test. While some of the later STK files are very close to MOD.
Wow, nice simple fix!
Yeah I was worried about that since some XM features aren't implemented. At least one was a real bug :) I'll keep your unimplemented feature list at hand when checking further XMs. |
Doing more testing with another XM player and found yours had the same issue: dune&orange - mark a.j. pisses off.xm
|
Ah! Excellent example - Thanks. |
Also here is a test case that BassoonTracker fails: InsChangeEnvNotChangeNoteOff.zip If a lone instrument without a note plays after a previous instrument with a note has played, it should retrigger or reset envelope of the last instrument with a note, and ignore the actual specified instrument value. The actual sample position must be retained, and not reset to 0. BassoonTracker seems to both ignore retriggering the envelope, but seems to react to a different sample map in a changed instrument. In a different library I am testing, it retriggers the envelope using the new instrument's envelope (wrong), as well as uses the new instrument's AutoVibrato (also wrong). |
Here is a list so far of modules that are played wrong in some way. I'll add more as I find them
XM
MOD
STK
I'm not sure if any of these use quirks that you don't wish to support, so just
crossany out that are intentionally broken. :-)The text was updated successfully, but these errors were encountered: