History log of /src/share/man/man4/audio.4
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base perseant-exfatfs-base-20240630 perseant-exfatfs-base
# 1.106 27-May-2024 nia

audio.4: Document how the "delta" affects setting mixer levels.

Explicitly say that "delta" is optional and may be zero. While this
hasn't previously been specified anywhere (to my knowledge), the best
de-facto specification we have (sb and mixerctl source code) points
towards the historical practice being there.


# 1.105 27-Feb-2024 gutteridge

audio.4: fix grammar and style in places

No change to technical content.


Revision tags: netbsd-10-1-RELEASE netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 netbsd-10-0-RC1 netbsd-10-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
# 1.104 09-Dec-2020 isaki

Remove an old description.
This behavior was modified in sys/dev/audio/audio.c rev 1.65 (Mar. 2020).


Revision tags: phil-wifi-20200421 phil-wifi-20200411 phil-wifi-20200406
# 1.103 28-Mar-2020 wiz

Remove trailing whitespace.


# 1.102 28-Mar-2020 isaki

Add description about channel limitation introduced in audio.c 1.43.
PR kern/54973.


# 1.101 28-Mar-2020 isaki

Revert 1.96, 1.97 and 1.100. (no response from nia@)
These changes are not correct nor notable unresolvable problem.
If you find any problems, please send a report before changing manpage.


# 1.100 17-Mar-2020 nia

audio.4: 1-12 channels are only universally supported for playback.

When a mono recording device is set to use 1 channel, the kernel will
correct the number of channels back down to 1. This information can be
obtained with AUDIO_GETINFO...


# 1.99 16-Mar-2020 nia

audio.4: Mention the blk_ms sysctl


# 1.98 16-Mar-2020 wiz

Sort sections.


# 1.97 16-Mar-2020 nia

audio.4: O_NONBLOCK isn't the actual problem


# 1.96 16-Mar-2020 nia

audio.4: Remove reference to using O_NONBLOCK

It doesn't work properly, but this turns out to not be a problem in most
code (code where it is generally uses threads)...

Don't provide misleading information about using it, or programmers
might start wondering why their code doesn't work.

Noted by Yorick Hardy on current-users


Revision tags: is-mlppp-base
# 1.95 08-Dec-2019 wiz

Sort SEE ALSO.


# 1.94 08-Dec-2019 nia

Replace mention of azalia with hdaudio


Revision tags: phil-wifi-20191119
# 1.93 13-Nov-2019 isaki

Add some audio drivers in SEE ALSO.


# 1.92 12-Nov-2019 wiz

Remove self-reference


# 1.91 12-Nov-2019 wiz

Update list of audio drivers in SEE ALSO.

Based on audioplay(1) man page, where I'll remove them shortly.


Revision tags: netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 netbsd-9-base phil-wifi-20190609
# 1.90 09-May-2019 wiz

branches: 1.90.2;
Bump date.


# 1.89 09-May-2019 wiz

Fix some typos, improve wording and formatting.


# 1.88 08-May-2019 isaki

Update manpages respond to isaki-audio2 branch.


# 1.87 16-Feb-2019 isaki

Two minor fixes.
- Add missing AUDIO_PERROR (since 1996!)
- Sort AUDIO_GETFD.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625
# 1.86 28-May-2018 nat

branches: 1.86.2;
Move the audio specification to section 9 under audio_system.

Ok wiz@


Revision tags: pgoyette-compat-0521
# 1.85 15-May-2018 nat

Add the audio mixer specification to section 7 of the manual.
See posting on tech-kern - "NetBSD Audio Specification 2018."


Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.84 13-Jan-2018 uwe

branches: 1.84.2;
Use .Ar to mark up the variable parts of sysctl nodes.


# 1.83 06-Jan-2018 uwe

Drive-by markup improvements.


# 1.82 30-Oct-2017 wiz

Bump date for previous. Remove superfluous Pp.


# 1.81 27-Oct-2017 nat

Document the hw.driverN.latency sysctl variable.


Revision tags: perseant-stdc-iso10646-base
# 1.80 03-Jul-2017 wiz

Remove workaround for ancient HTML generation code.


Revision tags: matt-nb8-mediatek-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2
# 1.79 07-May-2017 nat

branches: 1.79.2;
Audio mmap now works with all devices as hw->mappage is no longer used.
Audio ring buffers are now uvm objects.

This was made possibile with help from christos@ and much help and mmap
functions written by riastradh@.


Revision tags: prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.78 17-Apr-2017 nat

branches: 1.78.2;
Improved mixing function - more expensive in cycles though.
hw.driverN.saturate is no longer needed and has been removed.

Mixing function thanks to jmcneill@.


# 1.77 17-Apr-2017 nat

hw.driverN.saturate bool->integer (default 16).

This means for a greater number than 16 (or user set value) the saturate
function is turned off. Results in better listening if a large number of
channels are in use.


# 1.76 21-Mar-2017 nat

Renane ioctl AUDIO_SETPROC to AUDIO_SETCHAN.

Add an ioctl to return channel number (AUDIO_GETCHAN). This can be used
on audio/sound/audioctl devices.

Return EIO in read/write/ioctl/poll/stat if fp has been closed or is
invalid.

Update audio.4, audioio.h and audioctl(1) to reflect these changes.


Revision tags: pgoyette-localcount-20170320
# 1.75 12-Feb-2017 wiz

Sort sections.


# 1.74 10-Feb-2017 nat

Audio now uses fdclone, there is no longer a limitation of one audio
instance per process. Virtual channels are placed in a queue, so there is
no longer a compile time limit of VAUDIOCHANS.

A new sysctl has been added to control multiple user access.
Mixer labels on virtual channels are now prefixed by vchan.

audiobell.c and audioctl have been updated to reflect these changes.

Use of fdclone was posted to tech-kern@ and improvements made.
Multiuser access control changes and the use of a queue were suggessted by
pgoyette@


Revision tags: bouyer-socketcan-base pgoyette-localcount-20170107
# 1.73 12-Dec-2016 nat

branches: 1.73.2;
Update audio man page with regard to audio changes.
OK wiz@


Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 pgoyette-localcount-20161104 netbsd-7-0-2-RELEASE localcount-20160914 netbsd-7-nhusb-base pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-7-base yamt-pagecache-base9 yamt-pagecache-tag8 netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 agc-symver-base netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 tls-maxphys-base matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.72 06-Sep-2011 jmcneill

branches: 1.72.24;
Document AUDIO_ENCODING_AC3


Revision tags: cherry-xenmp-base uebayasi-xip-base7 bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231 uebayasi-xip-base6 uebayasi-xip-base5 uebayasi-xip-base4 uebayasi-xip-base3
# 1.71 19-Sep-2010 mrg

AUDIO_WSEEK uses a u_long, not a int.


Revision tags: uebayasi-xip-base2 uebayasi-xip-base1 matt-premerge-20091211
# 1.70 29-Sep-2009 sborrill

branches: 1.70.2;
Add support for playback- or capture-only devices by adding
AUDIO_PROP_PLAYBACK and AUDIO_PROP_CAPTURE properties.

From jmcneill@.

Fixes PR#42050


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.69 03-Jan-2009 christos

remove siisata and esl. (KIYOHARA Takashi)


Revision tags: netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 wrstuden-revivesa-base mjf-devfs2-base
# 1.68 30-Apr-2008 martin

branches: 1.68.4; 1.68.8;
Convert TNF licenses to new 2 clause variant


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base hpcarm-cleanup-base
# 1.67 13-Jun-2007 wiz

branches: 1.67.10; 1.67.12;
Whitespace nits.


# 1.66 11-Jun-2007 joerg

Add a new ioctl AUDIO_GETBUFINFO. It works like AUDIO_GETINFO, but
doesn't obtain the ports, gain and balance related parameters.
Those generally require reading from the hardware and therefore are much
more expensive to obtain. Modify OSS emulation to use the new ioctl
where possible.

This reduces CPU usage of mplayer during mp3 playback with my Thinkpad
from 20% to < 1% and from 50% to 20% during Xvid playback.

Review and comments from jmcneill@


Revision tags: abandoned-netbsd-4-base netbsd-4-base chap-midi-nbase chap-midi-base
# 1.65 28-Mar-2006 wiz

branches: 1.65.6; 1.65.8;
Bump date for previous.


# 1.64 28-Mar-2006 kleink

Make <sys/audioio.h> include prerequisite headers; audio(4) was incomplete
with regard to required headers, and besides that it also matches Solaris.


# 1.63 28-Jun-2005 kent

add references to auixp(4) and azalia(4)


# 1.62 28-Jun-2005 wiz

Also remove references to sp(4) (same as pss(4)).


# 1.61 28-Jun-2005 wiz

Remove references to removed pss(4).


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.60 10-Oct-2004 augustss

Add auacer.


# 1.59 11-May-2004 wiz

Various fixes from Sergey Svishchev svs at ropnet ru in private mail.
Some additional "new sentence, new line" changes while I was there.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.58 31-Jan-2004 wiz

Bump date for previous.


# 1.57 31-Jan-2004 fredb

Fix a couple of long-standing bugs in the volume control(s) part of the
audio device interface:

1) When attempting to match the appropriate mixer control, we weren't
checking the class label, but only the second level label, so for
devices that had both an "inputs.cd" and a "record.cd", for example,
we could never do the right thing except by chance. For this reason,
evidently, all the record masters were labeled (by the underlying
drivers) either "record.record" or "record.volume", to distinguish
from "outputs.master". We'll now accept "record.master", and document
that as the the new preferred way.

2) More importantly, the model was deficient. Selecting a port on many
chips completely disables most of the level controls, which doesn't play
nice with other applications which are trying to use the interface. Now,
selecting a port simply sets which mixer input control shall be changed,
setting state in the audio layer. In other words, the "mixerout" port
is really selected all the time, enabling the final stage mixer, and
setting "gain" sets the level of the appropriate input. It should be
possible for separate applications to each control the mic, dac, and cd
inputs at the same time using this interface, simply by reiterating their
port selections with each change, but applications that don't bother to
do that aren't any worse off than they were before.

The user is expected to set the master output with another application,
dedicated to that task. Though it is now meaningful to select "no port"
with the audio device interface, to manipulate the master output, there's
no particular reason for an audio device consumer to do that. (I added
the capability in order to restore the initial state of the audio device,
for testing purposes. It might also be useful to users of broken binary-
only applications.)

Observe that the mixer device interface (and so, "mixerctl") still
retains all capabilities, including the ability to set the actual input
port on the chip, overriding the level controls. No change is being made
to the mixer device interface. The mixer device simply presents all the
controls on the chip, with no attempt at abstraction, so there are no
bugs there.

The upshot is, that applications that have been trying to use the audio
device interface to change the volume, such as mplayer, now "just work".

I've tested these changes extensively with "eso" and "eap" since first
proposing them on tech-kern last January, and somewhat with "esm" and a
few others. This closes both PR kern/10221, and PR kern/17159.


# 1.56 26-Jan-2004 wiz

Complete typedef of struct audio_info to audio_info_t.
From Jared Yanovich via jmc@openbsd.


# 1.55 04-Jul-2003 wiz

There is no als(4).


# 1.54 26-Jun-2003 wiz

.Li Dv -> .Dv.


# 1.53 11-Jun-2003 fair

Update the SEE ALSO list with drivers that have been added since
1997 (when this man page was updated?). Change an ugly .br hack
into .Ss macros. Add paragraph breaks in a few places to improve
readability.


# 1.52 16-Apr-2003 wiz

Use
.In header.h
instead of
.Fd #include \*[Lt]header.h\*[Gt]
Much easier to read and write, and supported by groff for ages.
Okayed by ross.


# 1.51 06-Apr-2003 wiz

Respect the law: Use A-law and mu-law as spellings as far as easily possible.
Inspired by Igor Sobrado in PR 19680.


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 fvdl_fs64_base netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.50 13-Mar-2002 uwe

Use .Dv for AudioN* and AudioC*


# 1.49 13-Mar-2002 wiz

Fix capitalization error, noted by uwe.
Minor mandoc improvements while I'm here.


# 1.48 22-Feb-2002 uwe

Fix typo.


# 1.47 13-Feb-2002 ross

Generate <>& symbolically. I'm avoiding .../dist/... directories for now.


# 1.46 02-Feb-2002 wiz

Drop trailing whitespace.


# 1.45 02-Feb-2002 augustss

A number of small fixes from Sergey Svishchev.


# 1.44 23-Jan-2002 he

Add a cross reference to esa(4).


# 1.43 22-Oct-2001 augustss

Xref.


# 1.42 30-Sep-2001 wiz

Remove a 'the'.


# 1.41 29-Sep-2001 augustss

Xref esl(4).


# 1.40 11-Sep-2001 wiz

Whitespace&punctuation fixes, sort SEE ALSO, sort sections, drop .Pp's,
swap empty lines for .Pp's.


# 1.39 12-Jun-2001 wiz

Typos/whitespace.


# 1.38 30-Mar-2001 minoura

Manual page for Yamaha YMF724/740/744/754 PCI audio driver.


# 1.37 22-Jan-2001 augustss

Add clct(4) man page.


# 1.36 08-Jan-2001 rh

Add reference to esm(4)


Revision tags: netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.35 13-May-2000 mycroft

branches: 1.35.4;
Fix formatting glitches.


# 1.34 01-May-2000 augustss

Fix typo.


# 1.33 30-Apr-2000 augustss

Xref cmpci(4).


# 1.32 31-Mar-2000 tsarna

Man page for auvia(4). Also xref fms(4) from audio(4).


# 1.31 13-Mar-2000 soren

Fix doubled 'the's.


# 1.30 06-Mar-2000 kleink

Xref clcs(4).


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base
# 1.29 28-Oct-1999 is

Add missing "that" in WSEEK description. By wiz@danbala.ifoer.tuwien.ac.at
in PR 8684.


# 1.28 09-Sep-1999 augustss

branches: 1.28.2;
Mention uaudio(4).


# 1.27 24-Jul-1999 tron

Fix typo noted by "Wiz" in PR misc/8061.


# 1.26 12-Jul-1999 kleink

Xref eso(4).


# 1.25 16-Jun-1999 kleink

Pasto.


Revision tags: netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.24 16-Mar-1999 garbled

branches: 1.24.2;
More and more of .Os cleanups. .Os is defined in the tmac.doc-common file,
so we shouldn't override it with versions in the manpages. Many more to
come.


# 1.23 06-Mar-1999 mycroft

Fix minor formatting error.


# 1.22 08-Dec-1998 augustss

Minor touchup and add sv man page.


# 1.21 06-Aug-1998 augustss

Add a midi(4) man page.


# 1.20 28-May-1998 augustss

Add info about mixer_level_t which has been missing for all these years.


# 1.19 09-May-1998 augustss

Cross reference audioctl(1) and mixerctl(1).


# 1.18 30-Apr-1998 fair

Marathon man page editing session to fix broken .Xr's, add important
references, add a little white space here & there for readability,
clean up some mdoc(7) macro usage and so on. Whew!


Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
# 1.17 20-Oct-1997 augustss

Minor editorial changes.


# 1.16 19-Oct-1997 augustss

Update for SunOS compatibility.


# 1.15 16-Oct-1997 augustss

Cross reference ossaudio(3).


# 1.14 08-Oct-1997 jtc

Fix tipo inherited from old version of TNF copyright form.
s/REGENTS/FOUNDATION/.


# 1.13 06-Oct-1997 augustss

Man page for guspnp driver.


# 1.12 26-Aug-1997 augustss

Make sure audio device starts in half-duplex mode and document the fact.


# 1.11 24-Aug-1997 augustss

Document some minor changes in the audio interface.


# 1.10 18-Aug-1997 augustss

Document how setting the blocksize works now.


# 1.9 18-Aug-1997 augustss

Document /dev/audioctl.


# 1.8 08-Aug-1997 augustss

Document how setting the blocksize works.


# 1.7 30-Jul-1997 augustss

Update man pages a little.


# 1.6 28-Jul-1997 augustss

Update man pages for new audio features.


# 1.5 07-May-1997 augustss

Return audio buffer size in audio_info_t with ioctl() AUDIO_GETINFO.
Use the buffer size to implement one more OSS ioctl().


# 1.4 11-Mar-1997 mikel

update to match reality a bit more closely. some parts are from John
Hawkinson (PR kern/2523) and Lennart Augustsson (PR misc/3303), rest
is by me.


Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
# 1.3 27-Feb-1996 jtc

Copyright assigned to the NetBSD Foundation


# 1.2 11-Feb-1996 scottr

Fix typo, from John Kohl. Closes PR 2066.


# 1.1 12-Nov-1995 pk

audio(4) man page from John Kohl (submitted in PR#1752).