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

losing loop points (.it .mod .xm .s3m) #33

Closed
esaruoho opened this issue Jul 7, 2023 · 13 comments
Closed

losing loop points (.it .mod .xm .s3m) #33

esaruoho opened this issue Jul 7, 2023 · 13 comments

Comments

@esaruoho
Copy link

esaruoho commented Jul 7, 2023

so i just dumped 4600 modules to wav-samples, and realized all the loop-points are gone.
is there a way of using xmodits so that the loop-points are not lost? i'm trying to load the samples into ST3/IT2.

@B0ney
Copy link
Owner

B0ney commented Jul 7, 2023

Hi,

Yes, xmodits should do this automatically if it finds valid loop points in a sample (for versions 0.10.0 and over).

But if the trackers do have valid loops, then this sounds very strange. Can you provide a screenshot of the settings you used?

like this:
parmeters

If you can provide an example module, that would also help.

Thanks!

@esaruoho
Copy link
Author

esaruoho commented Jul 7, 2023

the screenshots you provided are very similar to what i'm using. i had thousands of chipsounds (20 bytes etc) without loop points. is the issue that i'm saving them as wav instead of raw? will raw have the "module loop-points"? @B0ney

@B0ney
Copy link
Owner

B0ney commented Jul 7, 2023

the screenshots you provided are very similar to what i'm using. i had thousands of chipsounds (20 bytes etc) without loop points. is the issue that i'm saving them as wav instead of raw? will raw have the "module loop-points"? @B0ney

No, saving the samples as raw will only store the pcm. All associated metadata will be discarded.

When you were configuring the program, did you happen to uncheck "Self Contained"?

Disabling this would mean that all of the ripped samples are placed in the destination folder.

But since most of the samples have similar names (01.wav, 02.wav, etc), there's an extremely high chance that those names would collide, resulting in data being overwritten.

This can be mitigated by checking "prefix samples", which will prefix the ripped samples with the tracker's filename:

example for enigma.mod:

enigma - 01 - kick.wav

This was a UX issue I've recently fixed.

Was that the case for you?

@esaruoho
Copy link
Author

esaruoho commented Jul 7, 2023

i haven't had any issues with the file naming itself. just the loops going missing. from my pov, the file naming tickboxes are already great, and there was no overwriting. :)

@B0ney
Copy link
Owner

B0ney commented Jul 7, 2023

@esaruoho Okay, I think I found the source of the problem.

Scream Tracker 3 and Impulse Tracker will only read sample data from a WAV file. So additional metadata such as loop points are ignored.

To load samples with looping, you would need to load an S3I and ITS file respectively, which, xmodits doesn't support yet.

They were originally planned for version 0.10.0 but was prosponed for a later release.

They're not that hard to implement, so S3I and ITS support can be included for version 0.11.0.

@esaruoho
Copy link
Author

esaruoho commented Jul 8, 2023

wow, hey, thanks for looking at it! so in theory, in a future release, i'll be able to load .its files? how near or far is that from 8th july 2023? :)

@B0ney
Copy link
Owner

B0ney commented Jul 8, 2023

Yes, here's what I currently have planned for version 0.11.0 (subject to change):

  • New export formats:
    • Scream Tracker 3 Instrument - S3I
    • Impulse Tracker Instrument - ITS
  • [CLI] Display progress
  • [CLI] Support wildcard "*" operator for Windows (Done, needs polishing)
  • More platform support (currently testing, see Adding more architectures #28 for experimental builds):
    • 32-bit Windows,
    • Mac OS,
    • Linux ARM, i386

The next release is relatively small, so it shouldn't take long.

Supporting more platforms for the GUI version is quite finicky, so I may end up removing some targets.

Not making any promises, but you should expect a release some time between late July and August.

@B0ney B0ney added this to the 0.11.0 milestone Jul 14, 2023
@B0ney
Copy link
Owner

B0ney commented Jul 25, 2023

@esaruoho Hi, I've published the first release candidate for version 0.11.0. Options to export samples as .its and .s3i are available, but need a bit of testing. Especially for .s3i.

You can download the builds here.

Do let me know if the samples load properly under Impulse Tracker 2 and Scream Tracker 3.

Thanks!

@esaruoho
Copy link
Author

ok i finally have a method for transferring files easily from mac to windows 98 se / dospc. so i can finally try the build and see if the files will have loop points.

btw any chance of providing ARM architecture macOS builds too?
not sure what to think of these failed ones but in the grand order of things, doesn't matter one whit.

2023-08-25T17:06:06.809908Z  INFO xmodits_gui::core::xmodits: Started ripping
2023-08-25T17:06:10.130312Z ERROR xmodits_gui::core::xmodits: Failed: /Users/esaruoho/Downloads/mods/JS-SHRT1.MOD, reason: Invalid Module: Module doesn't have any valid samples.
2023-08-25T17:06:10.503473Z ERROR xmodits_gui::core::xmodits: Failed: /Users/esaruoho/Downloads/mods/CLAUSTR2.XM, reason: Unsupported module: Extended Module is below version 0104
2023-08-25T17:06:10.617514Z ERROR xmodits_gui::core::xmodits: Failed: /Users/esaruoho/Downloads/mods/SHELCOMB.XM, reason: Unsupported module: Extended Module is below version 0104
2023-08-25T17:06:15.156805Z  INFO xmodits_gui::core::xmodits: Done!

result:
Screenshot 2023-08-25 at 20 07 38

you have fixed it! i can now get loops in! this is awesome!!! thank you so much!!

@B0ney B0ney removed this from the 0.11.0 milestone Aug 25, 2023
@B0ney
Copy link
Owner

B0ney commented Aug 25, 2023

Awesome!

btw any chance of providing ARM architecture macOS builds too?

Yes. The next release will have a single universal .dmg that can run on both Apple Silicon and Intel Macs.

Currently, only the command line version has builds for Apple Silicon, so you can use that for the time being:
https://github.com/B0ney/xmodits-cli/releases/tag/v0.11.0

And regarding the logs you provided:

2023-08-25T17:06:06.809908Z  INFO xmodits_gui::core::xmodits: Started ripping
2023-08-25T17:06:10.130312Z ERROR xmodits_gui::core::xmodits: Failed: /Users/esaruoho/Downloads/mods/JS-SHRT1.MOD, reason: Invalid Module: Module doesn't have any valid samples.
2023-08-25T17:06:10.503473Z ERROR xmodits_gui::core::xmodits: Failed: /Users/esaruoho/Downloads/mods/CLAUSTR2.XM, reason: Unsupported module: Extended Module is below version 0104
2023-08-25T17:06:10.617514Z ERROR xmodits_gui::core::xmodits: Failed: /Users/esaruoho/Downloads/mods/SHELCOMB.XM, reason: Unsupported module: Extended Module is below version 0104
2023-08-25T17:06:15.156805Z  INFO xmodits_gui::core::xmodits: Done!

I am most interested in JS-SHRT1.MOD. That error is quite rare from my testing. It could be a non-standard .mod file.

I am not too concerned with the last 2 errors though. The .xm format has scarce documentation, so it was quite difficult to implement correctly. Versions before 0104 have a very different structure (and even rarer documentation), so I chose not to support it.

@B0ney
Copy link
Owner

B0ney commented Aug 25, 2023

Also, do you have any more loop-point related issues? If not, I'll consider it done and close this issue.

Thanks for testing it out :)

@esaruoho
Copy link
Author

And regarding the logs you provided:
I am most interested in JS-SHRT1.MOD. That error is quite rare from my testing. It could be a non-standard .mod file.

JS-SHRT1.ZIP

of course. here it is. i don't know what it is.

Also, do you have any more loop-point related issues? If not, I'll consider it done and close this issue.
Thanks for testing it out :)

no loop-point issues at all anymore. i was glad to see that you enabling .its allowed me to get going and that .its files can actually be keyjazzed in the impulsetracker f3 sample loader, which is super-important. i was worried i needed to do it from the F4 instrument loader, which would be completely different and probably unjazzable.

so, yes, the original issue can now be considered fixed and ticket can be closed. much appreciated. sorry it took me a month to try the build!

@B0ney
Copy link
Owner

B0ney commented Aug 25, 2023

Cheers!

Btw, I checked out the file you've uploaded. After a bit of analysis, it's actually a zip file with its extension changed to .MOD for some reason 😅

Just change its extension back to .zip and extract it. The program should be able to rip samples from it now.

@B0ney B0ney closed this as completed Aug 25, 2023
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