On 14/06/2010, at 12:49 PM, Jacob Meuser wrote:

On Mon, Jun 14, 2010 at 11:37:52AM +1200, Paul M wrote:
I have a large amount of analog audio I need to digitize and
naturaly want to ensure best transfer quality. So I need to set
the analog level at the input to the adc as high as possible
without clipping. Ideally, I'll get the workstation hardware
set to certin defaults, then adjust the incomming audio as
required.
This leads to a couple of questions:
Are there (typicaly) any variable gain stages in the analog input
path in the computer.

varies depending on hardware, but often there is a gain
at the input and a gain at the ADC.

Looking at the mixerctl output again, this does appear to be the
case.


Mixerctl -av (full output below) shows a
node called 'record.adc'. It seems reasonable that this might
opperate on the analog input to the adc

generically speaking, yes.

However there is also
'record.volume', though I would assume this operates on the mixed
digital signals at the end of the chain.

no.  record.volume is essenially an alias.  on your hardware with the
configuration you've posted, it's a shortcut for setting both
record.adc and record.adc2.  this is explained in azalia(4) (though
maybe that info didn't make it into 4.6, the info in -current azalia(4)
is mostly relevant even for 4.6).

Also: a lot of the gain stages have defaults of 120.120. Would
it be reasonable to assume that this is the 0 gain setting?

no.  unfortunately, the mixer interface, like a lot of audio(4)
related stuff, is designed for "consumer usage".  so, we just have
a range that is essentially 0-100% - it has no relevance to anything
except the knob.  truly the  worst kind of knobs are those that
have no outside meaning, but apparently people like this.  *shrug*

http://marc.info/?l=openbsd-tech&m=123101323408867&w=2

Any thoughts appreciated.

if you really want to know how to do this right, your best bet is to
find the datasheet for your codec.

now, your codec is a Realtek, which is common for azalia(4), and
I happen to know them pretty well ...

inputs.line=85,85
this is a 0 (0), 10 (85), 20 (170), 30 (255) dB gain on the line-in
jack.  values in () are the corresponding mixerctl values.

record.adc=248,248
this is the ADC input gain.  0 dB should be around '88'.
0..255 here represents the hardware's -16.5 to 30 dB
in 1.5 dB steps.

these are the only gains on the recording path of your device.


Thanks Jacob, this is gold.
I'll try and find that datasheet, but what you've given me here is
probably enough for me to work out what I need.


Thanks again, and thanks to all who worked on giving the audio
subsystem the openBSD love.

paulm

Reply via email to