Start documenting some of the new sound stuff. More is on the way.
Probably also needs some more mdoc love. Reviewed by: ariff
This commit is contained in:
parent
c9f1e38a85
commit
2014806da9
@ -25,7 +25,7 @@
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd June 1, 2009
|
||||
.Dd June 22, 2009
|
||||
.Dt SOUND 4
|
||||
.Os
|
||||
.Sh NAME
|
||||
@ -178,6 +178,12 @@ Equivalent to a symlink from
|
||||
.Pa /dev/dsp
|
||||
to
|
||||
.Pa /dev/dsp Ns Va ${hw.snd.default_unit} .
|
||||
.It Va hw.snd.feeder_eq_exact_rate
|
||||
Only certain rates are allowed for precise processing.
|
||||
The default behavior is however to allow sloppy processing for all rates,
|
||||
even the unsupported ones.
|
||||
Enable to toggle this requirement and only allow processing for supported
|
||||
rates.
|
||||
.It Va hw.snd.feeder_rate_max
|
||||
Maximum allowable sample rate.
|
||||
.It Va hw.snd.feeder_rate_min
|
||||
@ -188,6 +194,40 @@ cost of accuracy.
|
||||
All requested sample rates will be rounded to the nearest threshold value.
|
||||
Possible values range between 0 (disabled) and 500.
|
||||
Default is 25.
|
||||
.It Va hw.snd.feeder_polyphase_max
|
||||
Adjust to set the maximum number of allowed polyphase entries during the
|
||||
process of building resampling filters.
|
||||
Only applicable when the SINC interpolator is used.
|
||||
Default value is 183040.
|
||||
Set to 0 to disable polyphase resampling.
|
||||
.It Va hw.snd.feeder_quality
|
||||
Sample rate converter quality.
|
||||
Default value is 1, linear interpolation.
|
||||
Available options include:
|
||||
.Bl -tag -width 2n
|
||||
.It 0
|
||||
Zero Order Hold, ZOH.
|
||||
Very fast, but with poor quality.
|
||||
.It 1
|
||||
Linear interpolation.
|
||||
Fast, quality is subject to personal preference.
|
||||
Technically the quality is poor however, due to the lack of anti-aliasing
|
||||
filtering.
|
||||
.It 2
|
||||
Bandlimited SINC interpolator.
|
||||
Implements polyphase banking to boost the conversion speed, at the cost of
|
||||
memory usage, with multiple high quality polynomial interpolators to improve
|
||||
the conversion accuracy.
|
||||
100% fixed point, 64bit accumulator with 32bit coefficients and high precision
|
||||
sample buffering.
|
||||
Quality values are 100dB stopband, 8 taps and 85% bandwidth.
|
||||
.It 3
|
||||
Continuation of the bandlimited SINC interpolator, with 100dB stopband, 36
|
||||
taps and 90% bandwidth as quality values.
|
||||
.It 4
|
||||
Continuation of the bandlimited SINC inteprolator, with 100dB stopband, 164
|
||||
taps and 97% bandwidth as quality values.
|
||||
.El
|
||||
.It Va hw.snd.latency
|
||||
Configure the buffering latency.
|
||||
Only affects applications that do not explicitly request
|
||||
@ -208,7 +248,7 @@ The default value is 1, which is considered a moderate/safe latency profile.
|
||||
Global
|
||||
.Tn VCHAN
|
||||
setting that only affects devices with at least one playback or recording channel available.
|
||||
The sound system will dynamically create up this many
|
||||
The sound system will dynamically create up to this many
|
||||
.Tn VCHANs .
|
||||
Set to
|
||||
.Dq 0
|
||||
@ -221,6 +261,10 @@ Controls the internal format conversion if it is
|
||||
available transparently to the application software.
|
||||
When disabled or not available, the application will
|
||||
only be able to select formats the device natively supports.
|
||||
.It Va hw.snd.report_soft_matrix
|
||||
Enable seamless channel matrixing even if the hardware does not support it.
|
||||
Makes it possible to play multichannel streams even with a simple stereo
|
||||
sound card.
|
||||
.It Va hw.snd.verbose
|
||||
Level of verbosity for the
|
||||
.Pa /dev/sndstat
|
||||
@ -243,6 +287,38 @@ File names and versions of the currently loaded sound modules.
|
||||
.It 4
|
||||
Various messages intended for debugging.
|
||||
.El
|
||||
.It Va hw.snd.vpc_0db
|
||||
Default value for pcm volume.
|
||||
Increase to give more room for attenuation control.
|
||||
Decrease for more amplification, with the possible cost of sound clipping.
|
||||
.It Va hw.snd.vpc_autoreset
|
||||
When a channel is closed the channel volume will be reset to 0db.
|
||||
This means that any changes to the volume will be lost.
|
||||
Enabling this will preserve the volume, at the cost of possible confusion
|
||||
when applications tries to re-open the same device.
|
||||
.It Va hw.snd.vpc_mixer_bypass
|
||||
The recommended way to use the vpc feature is to teach applications to use
|
||||
the correct ioctl(): SNDCTL_DSP_GETPLAYVOL, SNDCTL_DSP_SETPLAYVOL,
|
||||
SNDCTL_DSP_SETRECVOL, SNDCTL_DSP_SETRECVOL.
|
||||
This is however not always possible.
|
||||
Enable this to allow applications to use their own existing mixer logic
|
||||
to control their own channel volume.
|
||||
.It Va hw.snd.vpc_reset
|
||||
Enable to restore all channel volumes back to the default value of 0db.
|
||||
.It Va dev.pcm.%d.bitperfect
|
||||
Enable or disable bitperfect mode.
|
||||
When enabled, channels will skip all dsp processing, such as channel
|
||||
matrixing, rate converting and equalizing.
|
||||
The pure pcm stream will be fed directly to the hardware.
|
||||
If
|
||||
.Tn VCHANs
|
||||
are enabled, the bitperfect mode will use the
|
||||
.Tn VCHAN
|
||||
format/rate as the definitive format/rate target.
|
||||
The recommended way to use bitperfect mode is to disable
|
||||
.Tn VCHANs
|
||||
and enable this sysctl.
|
||||
Default is disabled.
|
||||
.It Va dev.pcm.%d.[play|rec].vchans
|
||||
The current number of
|
||||
.Tn VCHANs
|
||||
@ -260,6 +336,36 @@ Format for
|
||||
mixing.
|
||||
All playback paths will be converted to this format before the mixing
|
||||
process begins.
|
||||
.It Va dev.pcm.%d.[play|rec].vchanmode
|
||||
.Tn VCHAN
|
||||
format/rate selection.
|
||||
Available options include:
|
||||
.Bl -tag -width 2n
|
||||
.It fixed / 0
|
||||
Channel mixing is done using fixed format/rate.
|
||||
Advanced operations such as digital passthrough will not work.
|
||||
Can be considered as a 'legacy' mode.
|
||||
This is the default mode for hardware channels which lack support for digital
|
||||
formats.
|
||||
.It passthrough / 1
|
||||
Channel mixing is done using fixed format/rate, but advanced operations such
|
||||
as digital passthrough also works.
|
||||
All channels will produce sound as usual until a digital format playback is
|
||||
requested.
|
||||
When this happens all other channels will be muted and the latest incoming
|
||||
digital format will be allowed to pass through undisturbed.
|
||||
Multiple concurrent digital streams are supported, but the latest stream will
|
||||
take precedence and mute all other streams.
|
||||
.It adaptive / 2
|
||||
Works like the 'passthrough' mode, but is a bit smarter, especially for
|
||||
multiple pcm channels with different format/rate.
|
||||
When a new channel is about to start, the entire list of virtual channels will
|
||||
be scanned and the channel with the best format/rate (usuallay the
|
||||
highest/biggest) will be selected.
|
||||
This ensures that mixing quality depends on the best channel.
|
||||
The downside is that the hardware DMA mode needs to be restarted, which may
|
||||
cause annoying pops or clicks.
|
||||
.El
|
||||
.It Va dev.pcm.%d.[play|rec].vchanrate
|
||||
Sample rate speed for
|
||||
.Tn VCHAN
|
||||
@ -401,6 +507,14 @@ A device node is not created properly.
|
||||
.%T "The OSS API"
|
||||
.%O "http://www.opensound.com/pguide/oss.pdf"
|
||||
.Re
|
||||
.Rs
|
||||
.%T "Julius O'Smith's Digital Audio Resampling"
|
||||
.%O "http://ccrma.stanford.edu/~jos/resample/"
|
||||
.Re
|
||||
.Rs
|
||||
.%T "Polynomial Interpolators for High-Quality Resampling of Oversampled Audio, by Olli Niemitalo"
|
||||
.%O "http://www.student.oulu.fi/~oniemita/dsp/deip.pdf"
|
||||
.Re
|
||||
.Sh HISTORY
|
||||
The
|
||||
.Nm
|
||||
|
Loading…
Reference in New Issue
Block a user