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);