At first , a constatation:
Forcing Lame to have some correct defaults settings for every parameter was quite hard, basically because many parameters interfer with each others.
The way it's done with alt abr is quite easy.
So here is what I think:
I 'd like to extend the dm_parameters struct, in order to also control missing parameters, like number of channels or resampling.
Those parameters are importants for lower bitrates. By adding some parameters, it would then be possible to have correct presets from 8 to 320kbps, in an easy to handle way.
Then, once this will be done, I'd like to map the std-presets to some alt-values.
Then promote the alt-presets to presets.
Once this will be done, we could start strongly advising users to use only presets (as in example in Lame manuals) instead of custom command-lines.
This way we'll preserve all the switches for "experimenters", and Lame will have the simplicity needed for the user for the whole range of bitrates.
Then, the last thing would be to create presets.h and presets.cpp, and to move the presets code from the frontend to inside libmp3lame. This way even with the lib or the dll, simplicity and quality will be easy to obtain.
Now, I'd like comments about all this.