Closed Cacodemon345 closed 1 month ago
Done.
libxmp's output shouldn't require float conversion on any merits; it already internally clamps the output to avoid clipping problems and was tested specifically for that.
It also employs additional safeguards to not cause clipping problems IIRC. So it doesn't make sense to convert the output to float and apply the master volume like that when the library can already do it without any problems.
Switched to float output anyways.
That's better.
I think we should add an option to select the default module player as a user setting and as a song setting, similar to $mididevice. XMP tends to sound a little different than Dumb and some people may prefer Dumb. I'll look into that.
I don't really believe DUMB should be made available anymore; the author tells people to use libopenmpt because of it having similar or better playback quality than it, and it's not exactly maintained.
It can be maybe left as an option anyways, but libxmp should remain the default for now.
Our Dumb version hasn't been updated for 10 years or so, so it doesn't really matter what the author says - but the fact remains that it can sound different and some people may be bothered by it. The option doesn't cost much except for a new entry in the menu, so why not?
This PR switches to libxmp (the 4.6.0 release) for most tracker formats (DUMB was officially declared dead in April of this year).
DSM still needs foo_DUMB for playback since libxmp does not support it so it has been left there.
What is supported:
What isn't supported: