That is kind of you to say!
As mentioned already, I personally support having choices. Though I also understand that some people might find too much choice paralyzing...
The option to enable/disable the limiter could be added to the "Audio Output" screen - that would be the easy part.
Regarding autogain, note here that it is not only EQ and RoomFit which can cause output overload, but there's also the Pre-Gain control in the "Audio Input" screen. So to avoid
any chance of overload it's needed to ensure that a combination of per-input pre-gain, EQ boost, and RoomFit boost never runs the signal into 0dBFS (but also taking into account Volume Limit).
This makes things a little bit more complicated, since no single control can universally take all of this into account - given that all WiiM devices have multiple inputs and outputs which can be used in various combinations (I'll call these 'pipelines'), causing differences in internal gain-staging.
As such, the "autogain" function could be implemented in several different ways:
- Independent autogain for EQ and RoomFit screens, with values linked to the specific EQ/RoomFit profile.
- This is the most intuitive option, but may result in wasted headroom since total boost of EQ+RoomFit could be less than the sum of their individual boosts (i.e. one of them could cut where the other boosts).
- One common autogain that is based on combined EQ and RoomFit total boost level. This would probably belong to the "Audio Output" menu.
- This better optimizes total headroom, but is not very intuitive to manage.
- One common autogain that takes into account all level-affecting controls in the current signal processing pipeline (pre-gain, EQ, RoomFit, volume, volume limit). This would probably belong to the "Audio Output" menu.
- This is best from overall headroom optimization perspective, but unfortunately the least intuitive to manage.
IMHO each of the above options have their benefits and I suspect different users might have different preferences between them.
In case autogain is implemented, there should IMHO also be some kind of overview screen that makes it easier for the user to understand the entire signal processing pipeline. Given that there are several features which influence signal level, and the frequency-dependent nature of some of them (EQ and RoomFit) it should be clear that this is not a trivial task - but it is of course doable.
As you suggested, inter-sample peaks (ISP) can also cause overload when volume is at (or close to) 100%, but ISP is track-dependent so difficult to address universally. The
recent article by Archimago you linked to suggests that about 2-3dB of headroom would be more than enough to handle inter-sample peaks of 99% of tracks in most music genres.
Worst example track he found had inter-sample peaks reaching +7,75dB. Of course we should note that any music with such high inter-sample peaks simply isn't well produced anyway, meaning that just compensating for inter-sample peaks won't be enough to make such tracks sound good.
This also suggests that the audible impact of inter-sample peaks (ISP) may be overstated in practice - tracks that are considered "audiophile quality" will usually have very low (or no) ISP, while high ISP is a result of tracks being severely dynamically squashed.
A quote from
the same Archimago article (underlines are mine):
Personally I fully agree with Archimago's conclusion here. Note that by keeping volume less than about 95% we're sure to avoid ISP-related overload completely in the vast majority of cases.
If I ever find the time I might try to measure ISP overload handling in WiiM Mini - but I can't promise it.
That being said, in general I'd also like to see output signal overload indication somewhere in the WiiM Home app, or even on the WiiM devices themselves (using LEDs or on the screen where available). This would make it easier to determine if the combination of settings in use (per-input pre-gain, EQ, RoomFit) and content (ISO/ISP) results in overload, without any guesswork.
All this being said, I personally still don't find this crucial - so even if current implementation remains that would be OK with me.
As you can see, implementing this optimally while keeping it all easy to use may not be trivial at all. There's a lot of dependency to existing functionality, and UI/UX would IMHO be challenging as well.

But it is doable, IMO!