messmerd / dmf2mod

Deflemask Game Boy DMF to ProTracker MOD converter

Home Page:https://messmerd.github.io/dmf2mod

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Module Simplifier

messmerd opened this issue · comments

Investigate the potential for a module file "simplifier" or "optimizer" which uses State data to reconstruct ModuleData.

The simplification would trim away unused samples/instruments, effects that don't do anything, unused effect columns, and add good practice choices like stopping a portamento before it reaches its min/max pitch rather than relying on quirky behavior, etc.

Module simplification could probably be implemented relatively easily for any modules/systems with Import/Export and GenerateData implemented for them.

I imagine using it like this:

const auto input_type = Utils::GetTypeFromFilename(input_file);
auto input = Factory<Module>::Create(input_type);
input->Import(input_file);
input->Simplify();
input->Export(output_file);