Mod Archive Forums

Community => Project / Coder's Corner => Topic started by: zzo38 on May 26, 2015, 09:56:31

Title: XM optimization and playback
Post by: zzo38 on May 26, 2015, 09:56:31
I now try to write program that can optimize XM file and another program that can render XM file, both as filter-type command-line programs. (I have partially written xmopt already, but hardly any part of xmrender so far)

For rendering, I did look at LibXM codes (although mine would be a standalone program instead), so it might help, but that might not be perfect either; I can look at other codes too (such as OpenMPT), and documentations, and replies on here.

For optimizations I have many idea such as to figure out how much of each sample is actually played (and truncate the samples if they are too long, or if it ends with silence), and to trace the rows that are executed to do some other optimizations too, so it would unroll and then reroll loops. Duplicate samples and duplicate instruments can also be put together. Default volumes can be set up. Unused channels can be deleted. There are others. I don't quite know perfectly though; replies on here might help a bit too.

I mean you can pipe like this (although you could use it with any XM file; it doesn't have to be one made with AmigaMML):
Code: [Select]
amigamml < song.mml | xmopt > song.xm