Alsa-Devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: Ricard Wanderlof <ricard.wanderlof@axis.com>
Cc: alsa-devel <alsa-devel@alsa-project.org>
Subject: Re: [PATCH] [alsa-lib] pcm: softvol: Allow up to 90 dB of gain
Date: Fri, 20 Apr 2018 09:34:11 +0200	[thread overview]
Message-ID: <s5hlgdipc0c.wl-tiwai@suse.de> (raw)
In-Reply-To: <alpine.DEB.2.11.1804181632580.5586@lnxricardw1.se.axis.com>

On Wed, 18 Apr 2018 17:03:09 +0200,
Ricard Wanderlof wrote:
> 
> 
> The gain algorithm used in softvol can handle gain factors of up to
> 32767 which is slightly more than 90 dB, so allow a max_dB of 90 dB.
> This doesn't affect existing asound.conf files, but does allow a
> max_dB of up to 90 dB when needed.
> 
> Tested using Audacity that there is no undue distorsion or other
> artefacts when 90 dB of gain is applied to a suitable signal (i.e.
> a signal quiet enough not be clipped whan applying 90 dB of gain).
> 
> Signed-off-by: Ricard Wanderlof <ricardw@axis.com>
> ---
> 
> I discussed this with Takashi and Jaroslav back in January, but the 
> discussion petered out and didn't reach a conclusion on which maximum gain 
> would be acceptable, so I thought I'd send an actual patch and we can take 
> it from here.

Ah, this ended up to null just because I went to my vacation...

> We have a couple of usecases where we are using digital microphones, which 
> have 24 bit resolution, and with an acoustic overload point of about 120 
> dB SPL, the output level can be quite low when the sound source is a fair 
> distance form the microphone. The current softvol limit of 50 dB is 
> therefore a bit restrictive.
> 
> When studying the code, it becomes apparent that the limit of the actual 
> gain function is a gain factor of 32767, which corresponds to 90.3 dB. So 
> it makes sense to set the MAX_DB_UPPER_LIMIT (whose only function is to 
> cause _snd_pcm_softvol_open() to bail out and emit an error message if the 
> gain is set higher than this limit) to 90 dB as it corresponds to the 
> technical limitations of the gain algorithm. Granted, 90 dB is probably 
> more than most people need, but there's no real harm in allowing a large 
> gain; the user gain limit in a given application is still set by the 
> max_dB parameter in asound.conf . The worst that can happen is that the 
> signal becomes clipped as would happen with any signal if the applied gain 
> drives it over 0 dB. If in fact a signal is close to 0 dB to start with, 
> then the resulting clipping when increased by 90 dB is not much worse than 
> when increased by 50 dB.

Honestly speaking, I still don't like to change something just because
the number can reach.  But this is a minor issue and if any damage
happens, it can be said to be self-responsibility, so I applied as
is.


thanks,

Takashi

  reply	other threads:[~2018-04-20  7:34 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-18 15:03 [PATCH] [alsa-lib] pcm: softvol: Allow up to 90 dB of gain Ricard Wanderlof
2018-04-20  7:34 ` Takashi Iwai [this message]
2018-04-23  9:51   ` Ricard Wanderlof

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=s5hlgdipc0c.wl-tiwai@suse.de \
    --to=tiwai@suse.de \
    --cc=alsa-devel@alsa-project.org \
    --cc=ricard.wanderlof@axis.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox