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

Desync issue when combined with Maxmod #20

Open
copyrat90 opened this issue Feb 20, 2023 · 2 comments
Open

Desync issue when combined with Maxmod #20

copyrat90 opened this issue Feb 20, 2023 · 2 comments

Comments

@copyrat90
Copy link

copyrat90 commented Feb 20, 2023

I tried combined_maxmod example for my song, but there's a slight desync (slight off?) with it.

Here's the unsplit s3m file if you want to check it out.
https://cdn.discordapp.com/attachments/831589248239009832/1076882958721490954/unsplit_creepy_castle_back_door.s3m
(It's discord attachment link because github doesn't support s3m format)

For example, the lead melody (channel 6)
is slightly late for the 0:31 ~ 0:32 on the gba playback video,
but it matches 0:09 ~ 0:10 on the openmpt playback video.

GBA playback

combined_maxmod.mp4

OpenMPT playback (trimmed for the noticeable part, matches from 0:22 on the video above)

openmpt_playback.mp4
@copyrat90
Copy link
Author

copyrat90 commented Mar 14, 2023

More noticeable example here.

This one is also related with #19, as I switch the lead melody from Ch1 to Ch6 in order to use the pitch bend (Exx, Gxx),
which is currently unsupported on GBT.

You can hear the slight off on the melody from the GBA playback, where this channel switch takes place.

OpenMPT playback

melody_ch1_to_ch6.mp4

GBA playback

combined.mp4

GBA playback (with drums, more mess)

drum_mess.mp4

I could move this melody to the Channel 6 entirely, but it would be nice if any of #20 or #19 is fixed.

@AntonioND
Copy link
Owner

Hmmm ok, I think that I notice it better here.

The problem is that the only way I see to make this more reliable is to modify maxmod to add a hook that is called each tick. In reality, maxmod advances ticks whenever the song requires it based on the BPM, but GBT can't do that, so even a tiny difference means that at some point GBT will have to catch up, or wait for a frame to update.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants