359 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			359 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
| ." Automatically generated text
 | |
| .TH 7 "August 31, 2006" "OSS" "OSS Devices"
 | |
| .SH NAME
 | |
| oss_envy24 - ICE Envy24 audio device driver.
 | |
| 
 | |
| .SH 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:
 | |
| 
 | |
| .IP \(bu 3
 | |
| 8/16 bit playback/record
 | |
| .IP \(bu 3
 | |
| mono/stereo/4ch/5.1ch/7.1ch playback
 | |
| .IP \(bu 3
 | |
| mono/sterero recording 
 | |
| .IP \(bu 3
 | |
| 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 outputs 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. However 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.
 | |
| .SH  
 | |
| 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.
 | |
| 
 | |
| 
 | |
| .SH  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 system. 
 | |
| 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 between 1 and 10) simultaneously (the samples will be 
 | |
| interleaved).
 | |
| 
 | |
| There is simple automatic syncstart feature when using multiple 
 | |
| applications 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 independent).
 | |
| 
 | |
| The Envy24 driver supports 8, 16 and 24/32 bit sample formats.
 | |
| 
 | |
| 
 | |
| .SH  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.
 | |
| 
 | |
| .SH   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).
 | |
| 
 | |
| .SH   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 sampling
 | |
| rate. However great care should be taken that this application gets the
 | |
| recording/playback process fully started before any of the other
 | |
| applications 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.
 | |
| 
 | |
| .SH   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:
 | |
| 
 | |
| .IP \(bu 3
 | |
| The hardware rate needs to be 44100, 48000 or 96000 Hz.
 | |
| .IP \(bu 3
 | |
| 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.
 | |
| .IP \(bu 3
 | |
| Only mono and stereo (1 or 2 channel) streams are supported.
 | |
| .IP \(bu 3
 | |
| The SRC algorithm does cause minor artifacts to the sound (SNR is around 60 dB).
 | |
| 
 | |
| 
 | |
| .SH  RAW IO DEVICES
 | |
| 
 | |
| These device files provide an alternative way to access Envy24 based devices.
 | |
| With these devices it's possible to bypass the dual buffering required 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). Trying 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 hardware 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 inputs.
 | |
| Channels 8 to 9 are digital inputs. Channels 10 and 11 are for the result 
 | |
| signal from the on board monitor mixer.
 | |
| 
 | |
| 
 | |
| .SH  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 monitor mixer
 | |
| output. To enable these "virtual" channels set the envy24_virtualout parameter 
 | |
| to 1 in oss_envy24.conf. This option has no effect with Delta1010, EWS88MT and
 | |
| other cards that have 10 "real" outputs.
 | |
| 
 | |
| 
 | |
| .SH  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:
 | |
| 
 | |
| .IP \(bu 3
 | |
| INTERNAL: Use the internal sampling rate as defined by envy24.rate
 | |
| .IP \(bu 3
 | |
| 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.
 | |
| .IP \(bu 3
 | |
| WCLOCK: Like SPDIF but uses the world clock input signal (Delta 1010 only).
 | |
| 
 | |
| 
 | |
| .SH  OUTPUT ROUTINGS
 | |
| 
 | |
| Output routing of output ports can be changed by changing the route.* settings
 | |
| using ossmix. The possible choices are:
 | |
| 
 | |
| .IP \(bu 3
 | |
| DMA: Playback from the associated /dev/dsp# device.
 | |
| .IP \(bu 3
 | |
| MONITOR: Output of the digital mixer (only out1/2 and S/PDIF).
 | |
| .IP \(bu 3
 | |
| IN1/2 to IN9/10 or IN1 to IN10: Loopback from the analog inputs
 | |
| .IP \(bu 3
 | |
| SPDIFL or SPDIFR or SPDIF: Loopback from the S/PDIF input.
 | |
| 
 | |
| 
 | |
| .SH  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.
 | |
| 
 | |
| 
 | |
| .SH  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.
 | |
| 
 | |
| 
 | |
| .SH OPTIONS
 | |
| 
 | |
| .IP \(bu 3
 | |
| envy24_skipdevs: 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.  
 | |
| Values: 1, 0 Default: 0
 | |
| 
 | |
| .IP \(bu 3
 | |
| 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
 | |
| 
 | |
| .IP \(bu 3
 | |
| 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 soundcard 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
 | |
| 
 | |
| .IP \(bu 3
 | |
| 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
 | |
| 
 | |
| .IP \(bu 3
 | |
| 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 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 drives.
 | |
| Values: 2-64 Default: 16
 | |
| 
 | |
| .IP \(bu 3
 | |
| 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
 | |
| 
 | |
| .IP \(bu 3
 | |
| 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 general it should
 | |
| not be used.
 | |
| Values: 1, 0 Default: 0
 | |
| 
 | |
| .SH FILES
 | |
| /usr/lib/oss/conf/oss_envy24.conf Device configuration file
 | |
| 
 | |
| .SH AUTHOR
 | |
| 4Front Technologies
 | |
| 
 | 
