Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
vmixctl(7)			   OSS Devices			      vmixctl(7)

NAME
     oss_envy24 - ICE Envy24 audio device driver.

DESCRIPTION
     Open  Sound  System driver for Envy24 based audio cards such as the M-Audio
     Delta Series, Terratec EWS88 Series, Hoontech DSP24.

      ENVY24 device characteristics:

     *	8/16 bit playback/record

     *	mono/stereo/4ch/5.1ch/7.1ch playback

     *	mono/sterero recording

     *	8KHz to 192Khz sample rate.

      ENVY24 AUDIO DEVICES

	     Audio devices:
	     0: M Audio Delta 1010 out1/2
	     1: M Audio Delta 1010 out3/4
	     2: M Audio Delta 1010 out5/6
	     3: M Audio Delta 1010 out7/8
	     4: M Audio Delta 1010 S/PDIF out
	     5: M Audio Delta 1010 in1/2
	     6: M Audio Delta 1010 in3/4
	     7: M Audio Delta 1010 in5/6
	     8: M Audio Delta 1010 in7/8
	     9: M Audio Delta 1010 S/PDIF in
	     10: M Audio Delta 1010 input from mon. mixer
	     11: M Audio Delta 1010 (all outputs)
	     12: M Audio Delta 1010 (all inputs)

	     Synth devices:

	     Midi devices:
	     0: M Audio Delta 1010

	     Timers:
	     0: System clock

	     Mixers:
	     0: M Audio Delta 1010

     The actual /dev/dsp# numbers may be different on  your  system.  Check  the
     right  ones by looking at the output procuced by "ossinfo -a" command. With
     the above configuration you can use /dev/dsp0 to /dev/dsp4 for playback  of
     stereo  streams. If you play mono files the signal will be output only from
     the left channel. /dev/dsp0 to /dev/dsp3 are connected to the  analog  out-
     puts while /dev/dsp4 is the S/PDIF output.

     The  /dev/dsp5  to  /dev/dsp10  device  files  can  be  used for recording.
     /dev/dsp5 to /dev/dsp8 are the analog inputs. /dev/dsp11 and /dev/dsp12 are
     raw input/output device files. They will be described in detail in the "Raw
     I/O devices" section below.

     It's also possible to make OSS to create individual device files for  every
     channel  this  creates twice as many device files than the default setting.
     To do this just append envy24_skipdevs=1 to the oss_envy24.conf file.  This
     is  useful only if you are working on mono rather than stereo signals. How-
     ever please note that setting envy24_skipdevs=1 does _NOT_ lock the  device
     files  to one channel mode, the application can still set them to stereo or
     multi channel mode if it likes.

     It is possible to set all	device	files  to  mono  only  mode  by  setting
     envy24_skipdevs=1	and  envy24_force_mono=1.  However  this  mode	disables
     stereo and multi channel usage for all devices so in general it should  not
     be used.

     By  default the driver will create output devices before the input ones. By
     setting envy24_swapdevs=1 in oss_envy24.conf you can ask OSS to create  the
     device  files  in	opposite order i.e. input device files before the output
     ones. This may be useful when using RealProducer.

     As a workaround to a bug in RealProducer you also need to create some dummy
     mixer devices by  defining  envy24_realencoder_hack=1  in	oss_envy24.conf.
     Without  these  extra mixer devices RealProducer will not be able to access
     other than the first input device.

   DEVICE MANAGEMENT
     By default OSS creates a large number of device files for each envy24 card.
     This may be a problem when multiple cards need to be used in the same  sys-
     tem.   Adding  the  envy24_devmask option to oss_envy24.conf should help in
     most cases because it removes the devices that are actually not  needed  in
     the system.

     The envy24_devmask number is the SUM of the following values:

	     1: Create primary (analog/ADAT/TDIF) outputs.
	     2: Create primary (analog/ADAT/TDIF) inputs.
	     4: Create S/PDIF outputs.
	     8: Create S/PDIF inputs.
	     16: Create monitor input device.
	     32: Create the raw input and output devices.

     For  example  envy24_devmask=12  (4+8) creates only the S/PDIF devices.  To
     enable all possible (current or future) device files set envy24_devmask  to
     65535 (default).

     If  possible make your application to open the right device file (/dev/dsp0
     to /dev/dsp10) explicitly. It's also possible to use the default devicefile
     (/dev/dsp) since OSS now supports automatic device allocation (it opens the
     first available input or output devicefile depending on the open mode).

     The channel allocation mechanism between device  files  is  very  flexible.
     Even  there is a device file for every stereo pair (or a mono channel) it's
     possible to use any of the device file to access  multiple  channels.   For
     example an application can open /dev/dsp0 and set the number of channels to
     10. In this way the application can play all 10 channels (or any number be-
     tween 1 and 10) simultaneously (the samples will be interleaved).

     There  is	simple	automatic syncstart feature when using multiple applica-
     tions at the same time. Playback will not start before all  currently  open
     devices  files  have  started  the  playback operation.  The same mechanism
     works for recording (recording and playback operations are  fully	indepen-
     dent).

     The Envy24 driver supports 8, 16 and 24/32 bit sample formats.

   SAMPLING RATE
     Envy24 based cards are multi channel devices and all the channels share the
     same sampling rate. For this reason the sampling rate is normally locked to
     the  value  selected  using ossmix. However OSS supports some other methods
     for changing the sampling rate. There are four ways to change the	sampling
     rate.

       BASIC METHOD:

     Since  all  input	and  output channels of Envy24 work at the same sampling
     rate it's not possible for the applications to select the rate  themselves.
     Instead  the sampling rate is always locked to the currently selected rate.
     This rate selection can be changed using the ossmix  program  shipped  with
     OSS.

     For example:

	     ossmix envy24.rate 48000

     sets the sampling rate to 48000 Hz (default). The possible alternatives are

     *	8000

     *	9600

     *	11025

     *	12000

     *	16000

     *	22050

     *	24000

     *	32000

     *	44100

     *	48000

     *	88200

     *	96000

     When  using  S/PDIF  inputs/outputs  only	the sampling rates 32000, 44100,
     48000, 88200 or 96000 should be used.

   EXTERNAL SYNC
     It's possible to lock the sampling rate to the S/PDIF or world clock inputs
     by setting the envy24.sync setting in ossmix to SPDIF  or	WCLOCK.  However
     the envy24.rate setting should be set manually to match the rate being used
     (there is no autodetection for that).

   NONLOCKED METHOD
     It's also possible to turn the envy24.ratelock setting to OFF using ossmix.
     After  that the first application that opens the device can change the sam-
     pling rate. However great care should be taken that this  application  gets
     the recording/playback process fully started before any of the other appli-
     cations  open  their devices. Otherwise all devices will be locked to 8Khz.
     Also keep in mind that subsequent applications will be forced  to	use  the
     sampling rate set by the first one.

   SOFTWARE SRC
     OSS  contains a very high quality software based sample rate converter.  It
     can be enabled by setting envy24.src to ON using ossmix.

     After that OSS can do on-fly sample rate  conversions  between  the  actual
     "hardware"  sampling  rate and the sampling rates used by the applications.
     In this way every application may	use  different	sampling  rate.  However
     there are some drawbacks in this method:

     *	The hardware rate needs to be 44100, 48000 or 96000 Hz.

     *	The  software  SRC algorithm consumes some CPU time (1% to 20% per audio
	channel depending on the CPU speed and sampling rates). For this  reason
	this  method  may be useless in multi channel use with anything else but
	the fastest high end CPUs.

     *	Only mono and stereo (1 or 2 channel) streams are supported.

     *	The SRC algorithm does cause minor artifacts to the sound (SNR is around
	60 dB).

   RAW IO DEVICES
     These device files provide an alternative way to access  Envy24  based  de-
     vices.   With  these devices it's possible to bypass the dual buffering re-
     quired by the "normal" input-output  device  files  described  above.  This
     means  that  also	the  mmap()  feature is available and that the latencies
     caused by dual buffering are gone. So these device  files	work  much  like
     "ordinary"  soundcards. However due to multi channel professional nature of
     the Envy24 chip there are some very  fundamental  differences.  This  means
     that  these  device files can only be used with applications that are aware
     of them.

     The differences from normal audio device files are:

     1.  The sample format will always be 32 bit msb aligned (AFMT_S32_LE). Try-
	 ing to use any other sample format will cause unexpected results.

     2.  Number of channels is fixed and cannot be changed.  The  output  device
	 has  always  10  channels (0 to 7 are analog outputs and 8 to 9 are the
	 digital outputs). This assignment will be used  even  with  cards  that
	 don't	support  digital (or analog) outputs at all. If the actual hard-
	 ware being used has less channels the unused  ones  will  be  discarded
	 (however they will be fed to the on board monitor mixer).

     The  input  device  is fixed to 12 channels. Channels 0 to 7 are analog in-
     puts.  Channels 8 to 9 are digital inputs. Channels 10 and 11 are	for  the
     result signal from the on board monitor mixer.

   DIGITAL MONITOR MIXER
     All Envy24 based cards have a built in monitor mixer. It can be used to mix
     allinput  and  output signals together. The result can be recorded from the
     "input from mon mixer"  device  (device  10  in  the  /dev/sndstat  example
     above).   The  monitor  mix signal can also be routed to any of the outputs
     (including S/PDIF and the "consumer" AC97 output of Terratec EWS88MT/D  and
     any other card that support s it).

     The settings in the gain.* group of ossmix are used to change the levels of
     all  inputs  and  outputs in the digital monitor mixer. The possible values
     are between 0 (minimum) and 144 (maximum).

     OSS permits using all 10 possible output channels of the monitor mixer even
     with cards that have less physical outputs.  These  "virtual"  outputs  are
     only sent to the monitor mixer and their signal is only present in the mon-
     itor mixer output. To enable these "virtual" channels set the envy24_virtu-
     alout  parameter  to  1  in oss_envy24.conf. This option has no effect with
     Delta1010, EWS88MT and other cards that have 10 "real" outputs.

   SYNC SOURCE
     On cards with S/PDIF and/or World Clock inputs it's possible to select  the
     sync source using

	     ossmix envy24.sync

     The possible choices are:

     *	INTERNAL: Use the internal sampling rate as defined by envy24.rate

     *	SPDIF: Use the S/PDIF input as the clock source. The envy24.rate setting
	must be set manually to match the actual input sampling rate.

     *	WCLOCK:  Like  SPDIF  but  uses the world clock input signal (Delta 1010
	only).

   OUTPUT ROUTINGS
     Output routing of output ports can be changed by changing the route.*  set-
     tings using ossmix. The possible choices are:

     *	DMA: Playback from the associated /dev/dsp# device.

     *	MONITOR: Output of the digital mixer (only out1/2 and S/PDIF).

     *	IN1/2 to IN9/10 or IN1 to IN10: Loopback from the analog inputs

     *	SPDIFL or SPDIFR or SPDIF: Loopback from the S/PDIF input.

   PEAK METERS
     Envy24  based  cards have peak meters for the input and output ports of the
     digital monitor mixer. ossmix can show these values under the peak.*  group
     (these  settings are read only). The values are between 0 (minimum) and 255
     (maximum). At this moment the only applications that  supports  these  peak
     meters are ossmix and ossxmix.

   AUDIO LATENCY
     IDE  disk and CD-ROM drives may cause some interrupt latency problems which
     may cause dropouts in recording/playback with Envy24 based cards. For  this
     reason ensure that DMA is turned on for the disk drive.

     Another  method  to  solve the dropout problems is making the fragment size
     used by the driver longer. This can be done by  adding  envy24_nfrags=N  to
     the  oss_envy24.conf  file.  By  default N is 16. Values 2, 4 or 8 make the
     fragments longer which should cure the dropout problems. However  this  may
     cause  latency  problems  with some applications. Values 32 and 64 decrease
     the latencies but may cause dropouts with IDE.

OPTIONS
     *	envy24_skipdevs: It's also possible to make OSS to create individual de-
	vice files for every channel. This creates twice as  many  device  files
	than the

     default setting.
	Values: 1, 0 Default: 0

     *	envy24_swapdevs: By default the driver will create output devices before
	the  input ones. You can force the input devices to be configured before
	output devices.  Values: 1, 0 Default: 0

     *	envy24_realencoder_hack: RealProducer wants to see  a  mixer  device  in
	/dev/mixer.  This  option  allows you to define a dummy /dev/mixer mixer
	device.  Envy24 Mixer device doesn't provide any consumer  level  sound-
	card  compatibility so this dummy mixer fools RealProducer into thinking
	it's running on a consumer soundcard like SB Pro or SBLive.  Values:  1,
	0 Default: 0

     *	envy24_gain_sliders:  With some devices it's possible to change the gain
	controllers to be continuous sliders instead of  just  enumerated  ones.
	Values: 1, 0 Default: 0

     *	envy24_nfrags: To solve the dropout problems make the fragment size used
	by  the driver longer. By default is 16. Values 2, 4 or 8 make the frag-
	ments longer which should cure the dropout problems.  However  this  may
	cause latency problems with some applications. Values 32 and 64 decrease
	the  latencies but may cause dropouts with IDE drives.	Values: 2-64 De-
	fault: 16

     *	envy24_virtualout: OSS permits using all 10 possible output channels  of
	the monitor mixer even with cards that have less physical outputs. These
	"virtual" outputs are only sent to the monitor mixer and their signal is
	only  present  in  the	monitor  mixer	output.  This  has no effect for
	Delta1010 or Terratec EWS88MT.	Values: 1, 0 Default: 0

     *	envy24_force_mono: It is possible to set all device files to  mono  only
	mode  by setting envy24_skipdevs=1 and envy24_force_mono=1. However this
	mode disables stereo and multi channel usage for all devices so in  gen-
	eral it should not be used.  Values: 1, 0 Default: 0

FILES
     /usr/local/lib/oss/conf/oss_envy24.conf Device configuration file

AUTHOR
     4Front Technologies

				  30 July 2026			      vmixctl(7)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=oss_envy24&sektion=7&manpath=FreeBSD+Ports+15.1.quarterly>

home | help