2 .\" Copyright (c) 1998, Luigi Rizzo
3 .\" All rights reserved.
5 .\" Redistribution and use in source and binary forms, with or without
6 .\" modification, are permitted provided that the following conditions
8 .\" 1. Redistributions of source code must retain the above copyright
9 .\" notice, this list of conditions and the following disclaimer.
10 .\" 2. Redistributions in binary form must reproduce the above copyright
11 .\" notice, this list of conditions and the following disclaimer in the
12 .\" documentation and/or other materials provided with the distribution.
14 .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 .\" $FreeBSD: src/share/man/man4/pcm.4,v 1.39.2.6 2007/05/23 19:45:49 brueffer Exp $
27 .\" $DragonFly: src/share/man/man4/pcm.4,v 1.7 2007/06/16 17:44:33 hasso Exp $
38 PCM audio device infrastructure
40 To compile this driver into the kernel, place the following line in your
41 kernel configuration file:
42 .Bd -ragged -offset indent
46 For non-PnP sound cards:
47 .Bd -literal -offset indent
48 .Cd "device pcm0 at isa? port? irq 5 drq 1 flags 0x15"
53 driver provides support for
55 audio play and capture.
56 This driver also supports various
61 sound cards, AC97 mixer and High Definition Audio.
64 driver attaches, supported devices provide audio record and
68 sound system provides dynamic mixing
72 True full duplex operation is available on most sound cards.
74 If the sound card is supported by a bridge driver, the
76 driver works in conjunction with the bridge driver.
78 Apart from the usual parameters, the flags field is used to specify
81 channel (generally used for capture in full duplex cards).
82 Flags are set to 0 for cards not using a secondary
84 channel, or to 0x10 + C to specify channel C.
86 The driver does its best to recognize the installed hardware and drive
87 it correctly so the user is not required to add specific settings to
88 the kernel config file.
94 cards this is actually easy
95 since they identify themselves.
98 cards, the driver looks for
100 cards at addresses 0x530 and 0x604 (unless overridden
101 in the kernel config file ) .
103 In general, the module
112 or from the command line using the
115 Options which can be specified in
116 .Pa /boot/loader.conf
118 .Bl -tag -width ".Va snd_emu10k1_load" -offset indent
119 .It Va snd_driver_load
123 this option loads all available drivers.
124 .It Va snd_emu10k1_load
128 only the SoundBlaster 5.1 driver and dependent modules will be loaded.
133 load driver for card/chipset foo.
136 Each device can optionally support more playback channels
137 than physical hardware provides by using
142 options can be configured via the
144 interface but can only be manipulated while the device is inactive.
145 .Ss Runtime Configuration
148 variables are available:
149 .Bl -tag -width ".Va hw.snd.report_soft_formats" -offset indent
150 .It Va hw.snd.pcm%d.buffersize
151 Configure the amount of
153 bufferspace available for a device.
154 .It Va hw.snd.targetirqrate
155 Set the default block size such that continuous
156 playback will achieve this
159 This value can be tuned to improve application performance.
160 Increase this value when the sound lags and decrease
161 it if sound stutters or breaks up.
162 .It Va hw.snd.report_soft_formats
163 Controls the internal format conversion if it is
164 available transparently to the application software.
165 When disabled or not available, the application will
166 only be able to select formats the device natively supports.
167 .It Va hw.snd.verbose
168 Level of verbosity for the
171 Higher values include more output and the highest level,
172 three, should be used when reporting problems.
173 Other options include:
176 Installed devices and their allocated bus resources.
178 The number of playback, record, virtual channels, and
181 Channel information per device including the channel's
182 current format, speed, and pseudo device statistics such as
183 buffer overruns and buffer underruns.
185 File names and versions of the currently loaded sound modules.
187 .It Va hw.snd.maxautovchans
190 setting that only affects devices with only one playback channel available.
191 The sound system will dynamically create up this many
198 .It Va hw.snd.pcm%d.vchans
199 The current number of
201 allocated per device.
202 This can be set to preallocate a certain number of
204 Setting this value to
210 .Ss Recording Channels
211 On devices that have more than one recording source (ie: mic and line),
212 there is a corresponding
216 Channel statistics are only kept while the device is open.
217 So with situations involving overruns and underruns, consider the output
218 while the errant application is open and running.
220 The driver supports most of the
223 functions, and most applications work unmodified.
224 A few differences exist, while memory mapped playback is
225 supported natively and in
227 emulation, memory mapped recording is
231 As a consequence, some applications may need to be recompiled
232 with a slightly modified audio module.
235 for a complete list of the supported
241 drivers may use the following
244 .Bl -tag -width ".Pa /dev/audio%d.%d" -compact
245 .It Pa /dev/audio%d.%d
246 Sparc-compatible audio device.
248 Digitized voice device.
249 .It Pa /dev/dspW%d.%d
252 but 16 bits per sample.
253 .It Pa /dev/dspr%d.%d
254 Should be connected to a record codec.
258 status, including all channels and drivers.
261 The first number in the device node
262 represents the unit number of the
270 Additional messages are sometimes recorded when the
271 device is probed and attached, these messages can be viewed with the
276 .It ac97: dac not ready
277 AC97 codec is not likely to be accompanied with the sound card.
278 .It unsupported subdevice XX
279 A device node is not created properly.
308 .Xr snd_via82c686 4 ,
316 .%O "http://www.opensound.com/pguide/oss.pdf"
321 device driver first appeared in
332 The API evolved from the VOXWARE
333 standard which later became OSS standard.
336 .An Luigi Rizzo Aq luigi@iet.unipi.it
339 device driver and this manual page.
340 .An Cameron Grant Aq gandalf@vilnya.demon.co.uk
341 later revised the device driver for
343 .An Seigo Tanimura Aq tanimura@r.dl.itc.u-tokyo.ac.jp
344 revised this manual page.
345 It was then rewritten for
348 Some features of your sound card (e.g., global volume control) might not
349 be supported on all devices.