Start one or more audio drivers
 |
You must be root to start this manager. |
io-audio [-d driver [opt[,opt...]]] [-l level]
[-m opt[,opt...]] [-o opt[,opt...]] [v[v]...]
Neutrino
- -d driver [opt[,opt...]]
- Load the specified driver and pass it the given driver options.
The driver name is the name of the shared object without the
deva-ctrl- prefix and the .so extension.
For example, to load the
deva-ctrl-4dwave.so
shared object, specify 4dwave as the driver name.
All audio drivers support the following card options:
- unit=number
- The card number to mount the driver as.
- dindex=number
- The device number that additional following options apply to.
- play_name=name
- The symbolic name to assign to the PCM playback device.
- cap_name=name
- The symbolic name to assign to the PCM capture device.
You can start more than one driver by using multiple -d
command-line options.
For information on the drivers and any specific options,
see the entries for the
deva-ctrl-*
shared objects.
- -l level
- Explicitly set the level of output verbosity.
- -m opt[,opt...]
- Memory options. The opt variable can be any of the following:
- pool_size=kbytes
- The size of the DMA memory pool to create, in KB.
The default is 0 KB.
- pool_name=string
- The name of a shared memory object to map and use as DMA memory pool.
This object must be physically contiguous memory.
- -o opt[,opt...]
- Global options to apply to all drivers (specified with the -d option) that follow
on the command line.
The opt variable can be any of the following:
- config_write_delay=time
- The time in seconds after the last change before sound card
settings are written to disk, (a value of -1 prevents the settings
from ever being written).
The default is 5 seconds.
- data_thread_prio=priority
- The priority of the software mixer thread.
The default is 25; values that are outside the priority range for
the round-robin scheduler are discarded.
- disable_sw_mixer
- On cards that have only a single channel in hardware, don't use
software techniques to increase the maximum number of playing channels.
By default, the software mixer is enabled.
- intr_thread_prio=priority
- Set the priority of the interrupt service threads.
The default is 50; values that are outside the priority range for
the round-robin scheduler are discarded.
- max_dma_buf_size=size
- The maximum size, in kilobytes, for the DMA buffer.
The default is 256 KB; io-audio uses a minimum size of 16 KB.
- sw_mixer_rate=[FAHQ|FA|Lvalue]
- Set the method of selecting the sampling frequency used by the PCM software
mixing device if the underlying hardware device supports multiple rates:
- FAHQ (First Active High Quality) —
select the highest HW-supported sample rate that best
fits the first active clients requested rate (all subsequent
subchannels will be locked to the active rate).
- FA (First Active) —
select the sample rate based on the First Active client's
requested sample rate; all subsequent subchannels are locked to the active
rate.
- Lvalue — lock the sample rate to the
rate specified by value, regardless of the client's requested
rate.
The default is FAHQ.
- sw_mixer_samples=num
- Adjust the fragment size used by the software mixer to something other
than the default of 2048 samples.
Here's an example of how to calculate the value to pass in with this option:
sw_mixer_samples = samples_per_frag * (hardware_rate/requested_rate) *
(hardware_voices/requested_voices)
- -v[v...]
- Increase the level of output verbosity.
Additional v characters increase the verbosity.
The io-audio manager provides support for dynamically loaded
audio-driver modules. This utility enables you to load the audio drivers
specified by the -d options when you start io-audio.
 |
Graphics drivers run at a higher priority than applications, but they
shouldn't run at a higher priority than the audio, or else breaks
in the audio occur.
You can use the
on
command to adjust the priorities of the audio and graphics drivers. |
Once io-audio has started, you can dynamically load and
unload drivers using the mount and umount commands. E.g. this command:
io-audio -dvortex -daudiopci &
gives the same result as this sequence:
io-audio &
mount -T io-audio vortex
mount -T io-audio audiopci
 |
When searching for shared objects, the io-audio manager uses the
LD_LIBRARY_PATH environment variable. |
To unload a module, use a command like this:
umount /dev/snd/controlC0
Provide support for Aureal Vortex sound card, using
deva-ctrl-vortex.so:
io-audio -vv -d vortex &
Load the
deva-ctrl-audiopci.so
shared object, specifying the size of the DMA memory pool as 500 KB:
io-audio -vv -m pool_size=500 -d audiopci &
Lock the sample rate to 8 KHz (if the hardware supports 8 KHz natively):
io-audio -o sw_mixer_rate=L8000 -d my_audio_driver
Start an audio driver, specifying the card options:
io-audio -d my_audio_driver \
cap_name=capture,play_name=playback_hw,dindex=1,play_name=playback_pcm_mixer
The /dev/snd directory will look something like this:
# ls -l /dev/snd
total 0
lrw-rw-rw- 1 root root 0 May 31 11:11 capture -> pcmC0D0c
-rw-rw-rw- 1 root root 0 May 31 11:11 controlC0
-rw-rw-rw- 1 root root 0 May 31 11:11 mixerC0D0
-rw-rw-rw- 1 root root 0 May 31 11:11 pcmC0D0c
-rw-rw-rw- 1 root root 0 May 31 11:11 pcmC0D0p
-rw-rw-rw- 1 root root 0 May 31 11:11 pcmC0D1p
lrw-rw-rw- 1 root root 0 May 31 11:11 pcmPreferredc -> pcmC0D0c
lrw-rw-rw- 1 root root 0 May 31 11:11 pcmPreferredp -> pcmC0D1p
lrw-rw-rw- 1 root root 0 May 31 11:11 playback_pcm_mixer -> pcmC0D1p
lrw-rw-rw- 1 root root 0 May 31 11:11 playback_hw -> pcmC0D0p
In addition to the
deva-ctrl-* drivers,
the io-audio command can load the following shared objects:
- deva-mixer-ac97.so
- Mixer DLL for the AC97 codec.
- deva-mixer-ak4531.so
- Mixer DLL for the AK4531 codec.
- deva-mixer-hda.so
- Mixer DLL for High Definition Audio codecs.
- deva-util-restore.so
- Shared object used to restore an audio driver's state.
deva-*
Connecting Hardware
in the QNX Neutrino User's Guide