-
Notifications
You must be signed in to change notification settings - Fork 54
Support additional MOD formats #27
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
base: master
Are you sure you want to change the base?
Conversation
electronoora
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Tested by playing some of Karsten Obarski's classic SoundTracker tunes - works great!
electronoora
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested with one of the songs from Dojo Dan and noticed that the looping flute sample sounds a bit odd:
https://mod-staging.haxor.fi/mod.ORIENTALEV3.CHIP
I'm not entirely familiar with the ChipTracker format or libxmp, but it seems like maybe the loop start point is calculated differently.
ChipTracker:
https://github.com/libxmp/libxmp/blob/master/src/loaders/chip_load.c#L130
ProTracker:
https://github.com/electronoora/webaudio-mod-player/blob/master/js/pt.js#L221
https://github.com/libxmp/libxmp/blob/master/src/loaders/mod_load.c#L521
|
Also - sorry for responding so late. Completely missed that there were open PRs. :) |
|
Seems like SoundTracker format uses also a loop start point in bytes, as opposed to words like in ProTracker. The looped samples here have the same issue as the Dojo Dan song: |
|
Thanks for the reply!
I totally agree with that issue. |
|
My fork actually got a little bit further - you can check out the I'm afraid I don't have time to work on this PR any more. Besides you've done the analysis, which is most of the work. If you're right, then the fix is trivial :) My next project is https://gamus.space/ and eats up hell lots of time... |
|
FWIW, Gamus doesn't seem to work at all on Chrome/Linux anymore. |
|
@sholwe fixed |
|
During recent days I've been playing with S3M and I found out that
Workaround - undoing this change restores proper notes: |
|
That's the proper solution to the note problem for S3M and XM: |
Add additional MOD format support
The classic MOD format is quite straightforward - file has no header and only 15 samples.
As a result, the data offsets are changed. Examples:
The Chiptracker MOD is more complex.
It used patterns per track, so the pattern structures are different. The adapted UI now shows data per song position, not per pattern number.
Also the 4-byte event encoding is much simpler, but on loading it gets encoded back to avoid major rework. Still it contains the same information.
Some resources about this format: