vampirefrog / mdxtools

A bunch of tools for handling the MDX music format (music for the Sharp x68000)
GNU General Public License v3.0
68 stars 14 forks source link

mdx2vgm is not perfect #2

Open LeonardoDemartino opened 7 years ago

LeonardoDemartino commented 7 years ago

Hello! Delek here! :) Awesome work btw!

On mdx2vgm I can hear wrong portamentos and instrument changes on some conversions. I know it is on WIP and I want to help, could you please list the stuff I should aim in order to fix this little issues with the converter?

vampirefrog commented 7 years ago

the problem is simply that it tries to translate MDX commands directly to VGM commands, so portamento and vibrato do not work, as they would require generating more than one set of VGM commands. The converter needs to be rewritten in such a way that it would generate pitch bend VGM commands every N samples, similar to how the driver would. It shouldn't be hard, I think it needs a function that would be called every sample, and it would determine whether or not to output VGM data.

vampirefrog commented 7 years ago

In handleRest(), instead of outputting a VGM wait command, it needs to use a state machine and output the portamento command every MDX tick. The state machine would be altered by MDX portamento commands.

https://github.com/vampirefrog/mdxtools/blob/master/mdx2vgm.cpp#L109