tewtal / mITroid

A tool for converting Impulse Tracker files into data for the N-SPC music engine used in Super Metroid, A Link to the Past and other games as well as creating stand-alone SPC files.
23 stars 1 forks source link

Tremolo and Vibrato #12

Closed lenorator closed 2 years ago

lenorator commented 2 years ago

If I try to start either a tremolo or a vibrato on the same row as a note, the effect won't occur for that note. It seems that these effects are supposed to occur before any notes that use them, and then be disabled with the corresponding "end" effect; however, with the way mlTroid converts files, the note always occurs first, and then the effect command, causing the effect to not work. Most of the time, this issue can be circumvented by starting the effect on a row prior to the note; however, unless I'm mistaken, if a note at the very start of the pattern that the song loops back to has either tremolo or vibrato, the effect will never work on that note when the song returns to that pattern (though it can trigger the first time if the effect is started in the pattern before).

It also seems that with the way mlTroid converts files, tremolo and vibrato only work on a single note at a time, and need to be stopped and retriggered for each note that uses the effect. I think tremolo and vibrato can be used on multiple notes and then disabled with the corresponding "end" command, but mlTroid requires that the effects be retriggered per note. This can be circumvented with the previous method I mentioned, but it isn't always practical. 1 tic per row may be required for a note to have the effect depending on when the note before it ends and when said previous note stops using the effect, but this is situational.

Lastly, I'd like to mention that I'm not sure if delayed tremolo or vibrato are possible with mlTroid. I'm also not sure if these issues are present with other effects such as slides and echos, as I haven't tested them. I'm not sure how difficult it would be to fix these issues, so forgive me if what I'm asking for is ridiculous. And if anything I say is wrong, please let me know. It's getting late as I write this, and I'm getting tired, so I apologize if I didn't explain things properly. Obviously, feel free to let me know if you need me to clarify anything. Thank you so much for making and updating mlTroid!

lenorator commented 2 years ago

In hindsight, these issues are very nitpicky and trivial. Having to retrigger the effect for each note, while not optimal, isn't really an issue unless it prompts a change in the tics per row, which isn't really an issue since it's easy to change that however you want. I guess the only valid issue is that the effects don't work on notes in the same row, but that's easy to work around since the effects can just be triggered in advance. The other issues I mentioned can be circumvented with simple hex edits.

lenorator commented 2 years ago

woops lol