Date: Mon, 22 Jun 2009 21:51:29 +0000 (UTC) From: Joel Dahl <joel@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r194664 - head/share/man/man4 Message-ID: <200906222151.n5MLpTmD053947@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200906222151.n5MLpTmD053947>