Function volume


there is no doc what the parameters are
-100 through +200
Set(VOLUME(TX)=??)
what is the range thank you

That’s an interesting question. The documentation of the core function says the value is in dB ( a logarithmic scale, of power):

but that isn’t what is actually implemented. The domain is the full floating point range, which is treated rather strangely. 0 is interpreted as no change. positive numbers are treated simple multipliers, so [0,1] will actually reduce the volume, and 1 will leave it unchanged. Negative values are divided as divisors. Again values in the range [0,1) will not really have the expected effect.

In practice the useful values are significantly less than 32767 (and, on the other side, -32767).

Unless I’ve completely misread the code, it looks to me as though the person who wrote it had no understanding of what a decibel was, and that hearing is a logarithmic process.

The problem I see now is that people must be relying on the incorrect behaviour, so I’m not sure that it can be fixed until the next major version.

Of the values you have given, and using the normal approximation for factors of 2, -100 is -40dB and +200 is +46dB.