1.\" $OpenBSD: envy.4,v 1.4 2008/02/22 07:55:02 ratchov Exp $ 2.\" 3.\" Copyright (c) 2007 Alexandre Ratchov <alex@caoua.org> 4.\" 5.\" Permission to use, copy, modify, and distribute this software for any 6.\" purpose with or without fee is hereby granted, provided that the above 7.\" copyright notice and this permission notice appear in all copies. 8.\" 9.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16.\" 17.Dd $Mdocdate: February 22 2008 $ 18.Dt ENVY 4 19.Os 20.Sh NAME 21.Nm envy 22.Nd VIA Envy24 audio device 23.Sh SYNOPSIS 24.Cd "envy* at pci?" 25.Cd "audio* at envy?" 26.Sh DESCRIPTION 27The 28.Nm 29driver supports sound cards based on VIA Envy24 PCI chips, 30such as the M-Audio Delta-1010LT PCI card. 31The Envy24 chip, formerly known as the ICE1712, is a versatile digital 32PCI chip that can be attached to 33up to 4x2 external analog converters and 1x2 S/PDIF transmitter/receivers. 34Currently only Asahi Kasei AK4524 codecs are supported. 35.Ss Mixer device 36The chip features a digital mixer that routes and mixes the 37streams below as follows: 38.Bl -tag -width playback 39.It Dv inputs 40There are 10 streams corresponding to data received by the 41device from the codecs. 42They are labelled 43.Va line0 44\(en 45.Va line9 46in the 47.Xr mixer 4 48interface. 49Streams 50.Va line0 51to 52.Va line7 53correspond to analog inputs and 54.Va line8 55to 56.Va line9 57correspond to 58digital inputs. 59.It Dv outputs 60There are 10 streams corresponding to data sent by the device to the codecs. 61They are labelled 62.Va line0 63\(en 64.Va line9 . 65Streams 66.Va line0 67to 68.Va line7 69correspond to analog outputs and 70.Va line8 71to 72.Va line9 73correspond to digital outputs. 74Each of them can be individually configured to use any of 75the external inputs or its corresponding playback stream as source. 76Additionally, outputs 77.Va line0 , line1 , line8 , 78and 79.Va line9 80can be configured to use 81.Va mon0 82or 83.Va mon1 84as sources. 85.It Dv monitor 86There are 2 streams that can be configured to contain any linear 87superposition of any of the 10 playback and 10 external input streams. 88They are labelled 89.Va mon0 90and 91.Va mon1 . 92From the mixer's point of view they are input streams, 93so they can be used as sources of output streams. 94.It Dv playback 95There are 10 streams corresponding to samples transferred 96from the host to the device. 97They are labelled 98.Va play0 99\(en 100.Va play9 . 101From the mixer's point of view they are input streams, 102so they are usable as sources of output streams. 103.It Dv record 104There are 12 streams corresponding to samples transferred 105from the device to the host. 106They are not controllable by the mixer. 107Streams 0 to 9 are hardwired to external inputs 108.Va line0 109\(en 110.Va line9 111and streams 10 and 11 are hardwired to 112.Va mon0 113and 114.Va mon1 . 115.El 116.Ss Playback and record data formats 117Both playback and record use linear encoding. 118Samples are represented by 32-bit signed numbers in little endian order. 119Only the first 24 most significant bits are used. 120Playback uses 10 channels and record uses 12 channels. 121.Sh SEE ALSO 122.Xr audio 4 , 123.Xr intro 4 , 124.Xr pci 4 125.Sh HISTORY 126The 127.Nm 128driver first appeared in 129.Ox 4.3 . 130.Sh BUGS 131MIDI and S/PDIF transmitter/receivers are not yet supported. 132.Pp 133The current 134.Xr audio 4 135driver doesn't allow playback and record blocks to have the same duration, 136making the device hardly usable for block based I/O in full-duplex. 137Playback and capture cannot be started atomically. 138Ring buffer sizes are limited to 64kB, 139which can be limiting at high sample rates. 140