may I suggest an addition to the onboard volume control which may prevent shattered windows and bleeding ears. Within the settings area, would it be possible to set an explicit, user defined, upperlimit that the volume control cannot exceed, eg. -30dB. What this should then do is prevent the volume slider control from physically rising any further than that value.
Yes, this is a good idea. And just because it is a good idea I thought maybe I could have a better idea myself.
...
And I just had ... (coming from outside at -12C hehe)
Somehow Russ's idea brought me the solution to a problem I have been seeking since the volume control is there ... how to prevent the huge blast which really really isn't something you ever want to meet again, once you had it unexpectedly. And it is so simple ...
When we set the digital volume to a certain level, this actually means that the output voltage is limited to "a" level. This has a 1:1 relation with the digital data. Thus, suppose we want to set the volume to a certain level, we actually decrease the numbers of the digital data which causes the output voltage to drop. Yeah yeah yeah, we all knew that.
sort of.
When we want to protect ourselves from accidentally setting the volume too high, indeed we could have a Settings Parameter, where we tell the system to not allow the Volume Slider to go above e.g. -24dB. Nice feature to jump to the maximum in one go too (just slide the Volume all the way up, where it will stop at the maximum set setting).
Because the whole idea is a kind of stupid (read : overdone) when we're working with the rough steps as we have currently (and because of which I shouldn't have mentioned the mouse wheel at all), I am merely thinking in the domain of the much higher resolution, like the 384 steps I have been testing with. These steps (if achieveable without loss and what I assume so far) imply a level of "detail" which wasn't in my mind before, and which now -in combination of Russ's idea- brought me to this :
When we are setting a maximum level, we should do this in dB. Or better : -dB. Or even better and for some more understandable : in SPL (Sound Pressure Level);
The output voltage is an absolute phenomenon, and e.g. 1.5V output will create an SPL in your room which is always the same, no matter what track you are playing. This is not competely true, or said differently : the SPL cannot be measured in advance because it is a stack of things happening, e.g. bass output creating more SPL than higher frequency output. But it is not about that. It is about setting a maximum voltage output of the DAC, mimicing very much the same as SPL, and probably the closest to that compared to other means.
Still with me ?
Other means ? yes, like the analogue volume knob, or the way the digital volume works now (and everywhere not accounting the losses other software implies). What I actually mean is this :
When you set the analogue volume knob to a so called absolute maximum, this is always relative to the track, and the percentage of the dynamic range it is using. Thus, modern recordings use 100% of the dynamic range (up to -0dB) and older recordings often not more than 60-70% (-30dB). This is why you actually don't have this absolute maximum on your analogue volume knob, and the latter recording requires a higher output volume to reach the "100%".
On a sidenote : this is how/why other software applies "Replay Gain", which actually levels everything (from a playlist to play or album) up to the same level of output.
Well, it took a longish introduction, but what it comes down to is that we should not set the volume slider to a value which is related to the total dynamic range we have (as is happening currently and everwhere, also the analogue volume) but it should be set related to the dynamic range used in the music data.
This actually must use the Replay Gain phenomenon (see below), but what it is about is that we set the volume according to the maximum level occurring in the Playlist, and not according to our perception of what our DAC->Preamp->Mainamp will output, without knowing the level of input (which varies).
Ok, before everybody thinks I am way off topic ... I am not. I am not because the single thing *I* thought about with the idea of Russ in my mind, is that we shouldn't set the maximum volume to a volume slider setting, but to a DAC voltage setting. Why ?
Because it will for once and for all prevent the shattered windows and blown tweeters. IOW, if we tell the DAC not to output more than 1.2V (it being capable of 2V), each single sample exceeding the 1.2V will incur for an "Out of Range Detect" situation and music will just stop.
This is completely justified, because of the digital data having a 1:1 relation to the voltage output. And I never thought of tackling the shattered windows problem this super simple way ...
Replay Gain ?This never has been my objection because it molests the data. However, and obviously, if the Replay Gain could work in the (stepped) range of the volume steps we are using right now, it would just be justified. As obviously however, these steps are far too rough to let this be workable.
But not if I can create the steps much smaller ...
Please note this part is not related to the Digital Volume only, and it applies just the same when you are using analogue volume only.
Replay Gain normally is used to level out the maximum output of a selected bunch of tracks. Say, those in the Playlist Area to play;
To me this would be the most wrong, because if you level out all the tracks from one album, the intended differences in output per track will be vanished. Thus, if one track uses the full 100% and all the others 70% only, this is intended, and the others should not play at 100%.
The above is different over different albums. One is receorded using (at least one track) 100%, and the other using 70%, and it is most probable that we want to perceive those two albums as loud. Normally this is the time when we start running to our volume knob, and with the current most rough digital volume this is the time when we get unsatisfied when a next album is way louder than a previous one, but notching down the volume one step makes it too soft related to what we were just used to from the other album.
Note that this implies that any album reaching e.g. 80% only (observing all the tracks) the volume of that album will be uplevelled to 100% (otherwise the whole Replay Gain thing can't work), and that this 100% will be related to the set Digital Volume again.
Concluded : If you have followed the above, and assuming I can get the detailed volume steps in without losses (a 100% prerequisite) XXHighEnd will be setting the maximum required output voltage of the DAC. No, we will not be told "what is the voltage" because it will just be a slider with relative positions, with two known things only : minimum has an output of 0 voltage, and maximum has an output of the maximum output voltage of your DAC, whatever that is.
So this is Russ's parameter.
Besides that the Digital Volume will work in the range as implied by the parameter. This will not imply that it's physical maximum will be at the top always, but it will just not slider up any further than the parameter told (otherwise granularity must change). Thus, the number of steps are limited at the upper boundary.
Completely separated to this, we will be able to say "replay gain please", which will output the different albums at the same level, as described.
Lastly for newcommers here :
The digital volume in XXHighEnd does not operate in any 48 or 64 bit float whatever domain requiering dithering and all. Instead it operates in the domain of the output bitdepth itself, which is the one and only way not creating roundings and losses knowing that in the end this output bit depth *will* be used by the DAC. It intelligently uses digital volume steps of which is known in advance that no roundings etc. will occur, and while the steps used so far are very rough, I thought of another method allowing for much finer steps. This method works in a simulation model (program), but I couldn't get it to work in practice so far;
If my theories are right this is just a matter of the complexity and the dozens of thinking errors one can make in a real life program, and if my theories are wrong all of the above is never going to work.
In the latter case the Settings Parameter of the Maximum Volume seems overdone to me BUT will come off handy once remote control is in action.
Peter