Artefact2 / libxm

A small XM (FastTracker II Extended Module) player library.
Do What The F*ck You Want To Public License
142 stars 14 forks source link

Playback inaccuracies #1

Open 9001 opened 9 years ago

9001 commented 9 years ago

Gave it a spin with some tricky songs, and unfortunately I noticed some bugs that also appear in several other player libs. Note that it might be the songs that are at fault, with certain libs (xmplay/bassmod, openmpt/modplug, milkytracker/milkyplay) taking steps to cover it up. I don't know enough about the file format to judge. . binary_world.xm goes bad 39sec in, and OpenMPT has slight issues too http://modarchive.org/module.php?138953 http://clyp.it/hhp3pfex . around 51sec, the lead echo in colond.xm is played at a slightly different pitch than the main lead, resulting in phasing http://modarchive.org/module.php?174415 http://clyp.it/gfuaa1do . as jt_strng.xm hits the higher notes at 35sec, they go off-pitch. libxm gets a fair bit of static as well but I suppose that's intended http://modarchive.org/module.php?46508 http://clyp.it/nh15rq5h . synthetic_attack.xm plays correctly but segfaults at the end: (fixed in ac0bbdb, the module file is unsane. Opening then resaving the module in MilkyTracker fixes it.) http://modarchive.org/module.php?142503

0 xm_row (ctx=0x7f8d92832010, output=, numsamples=128) at /libxm-master/src/play.c:847

1 xm_tick (ctx=0x7f8d92832010, output=, numsamples=128) at /libxm-master/src/play.c:948

2 xm_sample (ctx=0x7f8d92832010, output=, numsamples=128) at /libxm-master/src/play.c:1293

3 xm_generate_samples (ctx=0x7f8d92832010, output=, numsamples=128) at /libxm-master/src/play.c:1340

. zalza-tequila_groove.xm throws assertion failures, (fixed in f24bcab) and some static at the 49sec and 58sec marks: http://modarchive.org/module.php?66518 xm_sample(): final sample value is 136597905678638606450688.000000, this is a bug xm_sample(): final sample value is 296616456960244306673664.000000, this is a bug xm_sample(): final sample value is 144714319948683478564864.000000, this is a bug . All tests done with master as of writing. Also, what are those (*) in the effects table?

Artefact2 commented 9 years ago

Thanks for submitting these problematic modules. I use Milkytracker as a reference so if these sound different there are definitely bugs in libxm.

The * in the effects table mean they remember the last nonzero parameter. It came from the original table but I should remove it in the readme.

Artefact2 commented 9 years ago

Found another one: aurora_dawn.xm. The tone portamento in the intro is wrong. (fixed in 467d31262cbf09b27a464a56650d06d719e35750)

Artefact2 commented 3 years ago

jt_strng.xm playback has been fixed as of 013d8140a8374684eca6be064754d769a8bcaf87. Thanks @rasky

Artefact2 commented 3 years ago

colond.xm phasing has been fixed as of 21144fcc636b7a39dbef429c10637d4fb12894e4. Thanks @rasky again!