Skip to content
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

Playback inaccuracies #1

Open
9001 opened this issue Dec 10, 2014 · 4 comments · May be fixed by #36
Open

Playback inaccuracies #1

9001 opened this issue Dec 10, 2014 · 4 comments · May be fixed by #36
Labels

Comments

@9001
Copy link

9001 commented Dec 10, 2014

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
Copy link
Owner

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 Artefact2 added the bug label Dec 10, 2014
@Artefact2
Copy link
Owner

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

@Artefact2
Copy link
Owner

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

@Artefact2
Copy link
Owner

Artefact2 commented Apr 20, 2021

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

rasky added a commit to rasky/libxm that referenced this issue Nov 24, 2021
In Artefact2#27, we refactored xm_frequency to split arpeggio (note offset) from
vibrato (period offset). Unfortunately, we did test it properly only
for amiga frequencies.

It turns out the linear frequency implementation is wrong. The note
offset cannot be added to the period, but must be added to the note
itself. In case of linear frequencies, that's trivial to do once we
get the frequency, as we can simply scale it.

This fixes binary_world.xm and so finally...

Closes Artefact2#1
@rasky rasky linked a pull request Nov 24, 2021 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants