Random, Desynced Previews?

You can use the spacebar on the song select screen to preview a chart using your current scroll options. However, some of them on my game (version 0.66.1) are desynced… and I have absolutely no idea why.

First off, I try to play with Xmods whenever I can, so I encountered this problem with an Xmod preview… but that apparently doesn’t matter, since even if I switch to a Cmod, the same desyncs show up.

Secondly, by “some”, I mean three (that I’ve noticed, at least), and my confusion stems from how unrelated they are. I ended up finding them by looking at MSD 0 charts, since that’s where I found the first of these.

At first, I thought that it was some negative BPM doing this, or the preview getting confused by stutters, due to the fact that these have off-sync previews:

Mellann (Red Fraction Pack)
The Device Has Been Modified (Community Keyboard Megapack Vol. 4)

…but the third desynced song completely destroys that logic, because the chart is a constant BPM with no BPM changes or stops at all (it’s a 6-key chart, but that’s probably irrelevant):

Kingdom of Silence (Stepping Stones 4, any difficulty)

To make this even weirder, it’s only the preview doing this (the song and chart are synced just fine when you’re actually playing), and if I manually go back far enough into the preview, the sync fixes itself (until I leave and come back to it, of course).

Refreshing my file lists has changed nothing. Is this something other people can also observe, or should I be worried that I somehow have corruption in my files? I’d love to report this, but I can’t really do that when I don’t understand the problem that’s breaking the previews in the first place.

All of these files are .sm files, so there’s no special weird warp garbage going on as far as I know (other than the usual fun xmod stuff). This doesn’t mean a file can’t be negbpm, in the case of the file out of these 3 that is negbpm (i forget which one it is even though i have the game opened and i literally just looked at it)

And I checked them all in Practice and in Chart Preview. I didn’t desync, but I know why. So basically, all 3 of these files have another thing in common that their audio files are all mp3s. Many mp3s can have a variable bitrate which the game really has a hard time dealing with. This is why if you go into ArrowVortex on an mp3 for some files (for example, Future Dominators in NBJS) and check out where the region for the sample music is, it definitely isn’t what plays when you check it ingame. The reason for this is that in our implementation of seeking in mp3s, an estimation is used in order to make it fast. Well, this estimation kind of assumes a constant bitrate. If we seek from the very start of the file instead, it’s entirely decoded and all accounted for correctly. And that’s an accurate seek. But it’s a slow seek. So for the next version I forced this slow seek for all Practice/Chart Previews but only for mp3s. The desync issue should be gone as long as it is caused by this.
This “slow seek” change should make no actual difference in scrolling on the music wheel or playing the game normally otherwise. There’s just a slightly longer delay when seeking by clicking positions in chart previews and practice mode.

relevant commit https://github.com/etternagame/etterna/commit/7f6148d5a93ea181bfa8de42f6cdef3e869c992d


Right, I should’ve looked more closely at the Github before leaping here. Apologies… all I should do is wait for the next Etterna version and make sure the problem vanishes.