I was surprised by the best answer as it seems to me to be more or less wrong.<p>Let's ignore the discussion about dynamic range and bit depth etc., and assume that the volume control on your operating system controls the DAC rather than doing the stupid thing of digital volume reduction. The fundamental issue is signal to noise ratio on the analog line. If you turn the volume too far down on the computer and turn the volume up on your speakers, the sound on the analog line is too low with regard to the electrical noise and will be hissy. If you turn the volume up too much on the computer and turn the volume down on your speakers, then the signal will be so loud as to produce distortion either in the DAC or on the line itself. You're looking for a middle ground: as loud an output from the computer that you can produce without causing distortion in your loudest music parts. Once you've got that set, change the volume on the speakers to compensate.
Let's try to put this discussion on the right track. (There doesn't seem to be any posts here from people who actually design analog circuits.) The SO post reduces to comparing two versions of noise: One from (A) software control of the DAC and the other (B) from hardware.<p>(A) Pretend that everything except the DAC was noiseless: The noise would be due to the nonlinearities and quantization in the DAC.<p>(B) Pretend that the DAC was perfect: The noise would be dominated by the noise-equivalent input-power introduced by the resistance present in the components (including the transistors used for amps).<p>In short: (A) is a function of how wide the range of bitcodes that you use. The smaller the range, the larger the noise component relative to the signal.<p>OTOH: (B) is a function of temperature: All of the noise power before the final dial to your amp is passed through as is the signal, so the ratio stays constant. There is also a constant noise power introduced after that final amp, but I would guess it is negligible compared to the amplified noise power.<p>So tl;dr = For a decent sound card, maximize the software volume and then use the analog dial.
Garbage in, Garbage out.<p>Max your software (usually this is 80% to prevent clipping and distortion), then attenuate speakers to 50% (analog boost is much worse than digital as it raises the noise floor).<p>Source: Mixing at studios for last 10 years
The best answer neglects to address something I've noticed in the past: Many phones and portable media players seem to clip when you set their volume to maximum -- that is to say, what reads as "100%" sounds more like "120%". I haven't measured this effect, and I've never seen it documented anywhere, so I don't know whether or not it's just my imagination -- but I've personally observed it with pretty much every phone I've owned.<p>On the PC, though, I rarely set my system volume to anything other than 100%.
The "best" answer seems wrong or at best misleading -- I would be very very surprised if the user-visible OS master volume control, which typically controls the sound card directly, was not directly controlling op-amp gain at some later stage of the sound card.<p>Assuming this is true, the correct option would be to maximize any application volumes (e.g. YouTube), to maximize master volume to a level just below the sound clips (distorts) at the amplifier input, and to reduce the amplifier's pre-gain (if it has any) so the master volume control has a reasonable range.<p>This method will minimize the <i>three</i> (not just one) culprits of poor computer audio quality: quantization at the application layer, electronic interference over the physical connection, and clipping at the pre-amp.
Why do you guys think every sound application bothers to put a volume control? Wouldn't they figure every device that plays sound already have its own volume control?<p>For example if you built the YouTube player, what makes you think you need a volume control?
From "best" answer: <i>Reducing volume in software is basically equivalent to reducing the bit depth</i><p>This is really only true when The Audio System represents samples as integers and not floats like CoreAudio does.
I'm surprised no one has discussed battery life yet.<p>One of my 'weird unverified theories of life' is that turning the volume on portable device down (laptop/phone/mp3 player) and the volume on the speakers up saves the battery of the device itself. (For example when you're in a car.)
If you're on a mac, you can obviate a lot of bit depth issues by opening /Applications/Utilities/Audio MIDI Setup.app. From there you can see all your audio input and output devices, and set their frequency and bit-rates. Most default to 44kHz/16-bit, but a saner setting is 44kHz/24-bit.<p>You can see the objective differences between 16-bit and 24-bit output in NwAvGuy's measurements of the 2011 MacBook Air's DAC: <a href="http://nwavguy.blogspot.com/2011/12/apple-macbook-air-5g.html" rel="nofollow">http://nwavguy.blogspot.com/2011/12/apple-macbook-air-5g.htm...</a>
This seems like it should be a simple straightforward issue, but I still have problems with ocassionally getting clipped audio (or some kind of distortion, I'm no audio expert) on Windows 7 with Realtek's "HD Audio" chipset/driver.<p>As far as I can tell, I rarely if ever have this problem with the same hardware in Linux with PulseAudio (though I can intentionally cause it using alsamixer by pushing "Master" to 100%) and didn't have this problem in the past on Windows with Creative Labs soundblaster cards.
This gets even more different when devices contain a digitally controlled potentiometer between the DAC and the amp. I believe Macs do this, with the main system volume control actually stepping down the voltage of the signal being fed to the amp. Since this is an analog control one doesn't lose bit depth when turning down the volume and thus this is a fine system to use.<p>Not all machines work this way, though. One way to check is to hook up an external amp and headphones, turn the computer's volume way down and the amp up to listen levels. If the quality is crap the it's probably just decreasing the bit depth. Or you can do a teardown on the sound pathway.<p>(Oh, if it isn't clear by this point, keep all your apps turned all the way up for best quality. Only turn them down on an individual, as-needed basis. All-software stuff has to decrease bit depth to decrease volume on a per-app basis.)
Other posts here are making the point that the range in digital controls often includes some dB gain by the time you get to MAX. That digital boost can be very useful when using a laptop with barely audible speakers. I like how VLC makes it explicit with a volume control that goes up to 200%. It would be nice if OS level volume knobs worked the same way so you could always chose your level of distortion vs gain.
In the software. Noise early in the signal chain counts for more than noise later. If you can get noise-free gain by changing a scalar value in a register, it'd be a mistake to turn it down in favor of increasing the gain in an analog stage later on.<p>For the case where an analog potentiometer immediately follows the DAC, of course, there's no practical difference.
Stupid idiot answers all.<p>Volume should always be controlled as close to the source as possible. Anything else is simply inefficient and a waste of processing power.<p>There is no reduction of bit depth. total hoo-eee.
if you have some cheap speakers, set hardware volume somewhere over 50% and then never touch it. Use the software volume. That's because the hardware volume button will almost certainly break (mine were Logitech).