On Sun, 12 Aug 2012 13:07:32 +0000 Fons Adriaensen <fons@xxxxxxxxxxxxxx> wrote: > On Sun, Aug 12, 2012 at 02:47:59AM +0200, Tom Gundersen wrote: > > > Argument by authority, nice. Care to elaborate? (Sorry to anyone who > > is sick of PA, but for once I'm seeing the chance to learn something > > from one of these threads ;-)). > > No authority needed here, 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. > > > If the problem is too complex to explain in layman terms, that's > > understandable. However, is the problem one that would be unacceptable > > in a professional setting (e.g. a recording studio, ...) as it would > > cause subtle issues. Or is it a problem that I should be able to > > observe on my crappy speakers at home? If so, what am I listening for? > > How would I go about reproducing it? > > [1] > > The first and sufficient argument is that is completely *unnecessary* > to do such things. > > Assume you have two or more apps producing sound, and one of them (A) > has its volume set to max, so PA will set the master fader to max. > Assume things are OK that way (which will probably be the case). > > 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. > > [2] > > As to technical arguments, I can try. First thing to know is that > you shouldn't confuse 'level' (a property of signal), and 'gain' > (the ratio of two levels, or difference if you think in dB). > Both are usually expressed in dB, but that doesn't make them the > same thing. Compare it to time: a instant (epoch) and a duration > are both expressed in the same units but they are different things. > For example the sum of two epochs doesn't have any meaning, while > the sum of two durations has. And if some activity has a duration > of 40 minutes, that doesn't mean it has to finish at 00:40. > > Similarly, if an apps has its gain set to -10 dB, that should not > be taken to imply that it can't output more than -10 dB. > > On 'real' mixers (digital or analog) you normally have considerable > 'headroom'. Setting your master fader to -20 dB does not mean you > can't output more than -20 dB. For digital ones that means that > they use internally a wider format (more bits) than on the external > interfaces. So you can actually trade off input gains and master > gain to some extent. > > Soundcard mixers are different. The PCM input to the mixer (i.e. > the samples the SW provides) usually has the same format as the > AD converter, e.g. 16 or 24 bits. That means that if the master > is set to e.g. -20 dB, the card can't output any signal that is > larger than -20 dB (w.r.t. its normal maximum level). > Which is wrong. Assume you have two or more apps, all of them have > their volume set to -20 dB. 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. > > It all amounts to this: unless the user is using the soundcard's > 'master' as his global volume control (similar to a volume knob > on an external amplifier) it should be left at 0 dB. No software > layer should ever touch it. > So... on my intel AD**** I have PCM and Master knobs (in alsa). Are you saying that I should set Master to max (-0dB) and control volume through PCM only? > [3] > > On many soundcards the master fader also controls the level of > things that PA or any software layer doesn't know about, e.g. > and external mic input. Which you'd use for karaoke, or to > hear yourself in your headphones while skyping. That level must > not depend on how other apps set their volume controls. Again > the software should not touch the master gain. > > [4] > > You can't apply a soundcard mixer gain change at some exact > point in a sample stream. So you can't change the master > gain and change your internal scaling to compensate at > exactly the same time. There will always be a glitch. > -- Leonid Isaev GnuPG key: 0x164B5A6D Fingerprint: C0DF 20D0 C075 C3F1 E1BE 775A A7AE F6CB 164B 5A6D
Attachment:
signature.asc
Description: PGP signature