On Sun, 12 Aug 2012 15:01:06 +0000 Fons Adriaensen <fons@xxxxxxxxxxxxxx> wrote: > On Sun, Aug 12, 2012 at 04:00:47PM +0200, Tom Gundersen wrote: > > > On Sun, Aug 12, 2012 at 3:07 PM, Fons Adriaensen <fons@xxxxxxxxxxxxxx> > > wrote: > > > it's just extremely clumsy to use a mixer > > > that way, you'd need ten hands. For it means that whenever you want > > > to adjust a single channnel you may have to adjust *all* others and > > > the master at the same time. > > > > Unlike humans, computers does not have a limited number of hands. This > > is not a priori a problem. > > It's still like trying to start a 10-ton truck in 5th gear. > If you do that on your first day on the job you'll be fired, > not because your boss likes to show his authority but because > you have shown your incompetence. And if a computerized system > tries to do that (and maybe it could if it has very fine control > over the engine and clutch) then there's clearly something wrong > with it. > > > > Things will still work well when (A) happens to contribute nothing > > > (i.e. while it outputs silence). So things will still work well when > > > (A) isn't there at all. *There is no need to change anything at all* > > > when (A) goes away, even if all others have their volume set to lower > > > values. > > > > You have showed that it is unnecessary in one particular (very simple) > > case. However, you have not showed that it is unnecessary in all > > cases, so this is not really relevant (had we been talking about a > > human doing this, you'd have a point of course). > > It is never necessary. It it were that would imply that a sound > card without any gain controls (equivalent to a fixed 0 dB gain) > would fail in some cases. It doesn't. In fact many PRO cards are > just like that. > > If you have apps A, B, C with volumes a, b, c you can always > set the HW gain to unity gain (0dB), and send > > s = a * A + b * B + c * C (1) Let me see if I understand. Capital A, B and C are bare intensities (in watts or logarithmic scale) sent from an app? If those are arbitrarily large, how do you make sure your speaker is not going to blow up? > > to the soundcard. What would be the advantage of doing what > PA does, which is > > * m = maximum of a, b, c) > * Set the master to m, > * send > > s = a/m * A + b/m * B + c/m * C (2) > > ??? > > It can only generate trouble, basically you forfeit any > headroom the system would have. So, the intention is to normalize to the loudest app? > > > > > So PA will set the master output to > > > -20 dB. Now even if all of these apps are limited to contributing > > > -20 dB (but there is no reason why that should be), the sum of > > > them can be higher, but your soundcard can't handle that. > > > > That clearly would not work. Surely PA would need to adjust the master > > output to compensate for the number of channels? I don't know these > > implementation details, but I don't see how your arguments shows that > > this is impossible in general, just that the algorithm you outlined > > does not work. > > PA could leave some headroom and even adjust that in function > of the number of sources. But it could also just leave the master > gain alone, and compute (1) above instead of (2). Any advantage you > or any user have from using PA 'things just work' would remain the > same. But it's a lot simpler and doesn't have the problems (2) has. > -- Leonid Isaev GnuPG key: 0x164B5A6D Fingerprint: C0DF 20D0 C075 C3F1 E1BE 775A A7AE F6CB 164B 5A6D
Attachment:
signature.asc
Description: PGP signature