I'm wondering though if a passive (resistor) attenuator might raise the average SNR because it would allow the DAC to run at a higher level for a given volume level?
If you need the output to be at lower level, some kind of external volume control or attenuation is necessary for good results. Decent SNR and good volume control are hard to achieve, and there is nothing that can be done about it in software.
I plan to have 3~4 remote headless players, using older analog (class A/B) amplifiers which have no built-in volume control, not like a receiver, and this was one of the first things I noticed.
The signal-to-noise ratio is already not the best, but at 0db or close, you just don't notice. At lower volumes, it is degrading what would otherwise be outstanding sound. If you have high-gain amplifiers like I do, or sensitive speakers, watch out. If you have the same DAC chip as the HiFiBerry DAC+, then there are some things you can do, but your results may vary.
The normal output of the DAC is 2V rms at 0db (in my case this overdrives the input stage on some of my amps). Fortunately the chip has a setting to reduce this to 1V rms 0db, so I would try this first.
[root@runeaudio ~]# amixer sset Analogue 0
Simple mixer control 'Analogue',0
Capabilities: pvolume
Playback channels: Front Left - Front Right
Limits: Playback 0 - 1
Mono:
Front Left: Playback 0 [0%] [-6.00dB]
Front Right: Playback 0 [0%] [-6.00dB]
Then work with the hardware volume setting, for example:
[root@runeaudio ~]# amixer sset Digital 183
Simple mixer control 'Digital',0
Capabilities: pvolume pswitch
Playback channels: Front Left - Front Right
Limits: Playback 0 - 207
Mono:
Front Left: Playback 183 [88%] [-12.00dB] [on]
Front Right: Playback 183 [88%] [-12.00dB] [on]
[root@runeaudio ~]#
Btw, watch for blown tweeters, a year ago I fried a pair with the tap of a finger on the UI...