svn commit: r194664 - head/share/man/man4
Joel Dahl
joel at FreeBSD.org
Mon Jun 22 21:51:30 UTC 2009
Author: joel (doc committer)
Date: Mon Jun 22 21:51:29 2009
New Revision: 194664
URL: http://svn.freebsd.org/changeset/base/194664
Log:
Start documenting some of the new sound stuff. More is on the way.
Probably also needs some more mdoc love.
Reviewed by: ariff
Modified:
head/share/man/man4/pcm.4
Modified: head/share/man/man4/pcm.4
==============================================================================
--- head/share/man/man4/pcm.4 Mon Jun 22 21:49:55 2009 (r194663)
+++ head/share/man/man4/pcm.4 Mon Jun 22 21:51:29 2009 (r194664)
@@ -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 conside
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
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
.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
More information about the svn-src-head
mailing list