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