Configuration keys

The io-acoustic resource manager configuration file keys can be edited to tune acoustic echo cancellation for handsfree telephony.

The tables below list and describe the keys that can be included in an io-acoustic configuration file, their default values, and valid values or ranges of values:

Global

Key Description Default
# comment Comment line. Text on a line starting with "#" is considered a comment and ignored. n/a
logfd logfile_descriptor Log location. 1=stdout, 2=stderr, -1=slog. Default is -1, system log. -1
verbose verbosity_level Verbosity level: 0-7. Higher values mean more information is logged by io-acoustic regarding warnings, errors and operational events. Default is 2, errors only. 2
threads number_of_threads Number of threads in thread pool. 16
prefix module_prefix Installation path prefix for io-acoustic modules. /dev/io-acoustic
audiothreadpriority priority Priority of the audio processing threads. 18

Module markers

Key Description Default
<hf apm-aap-hf.so> Start marker for handsfree configuration, with apm-aap-hf.so as the associated DLL name, and hf as the mount location. If the default prefix is used, the HF module will be mounted at /dev/io-acoustic/hf. n/a
</hf> Handsfree configuration end marker. n/a

HF module audio routing

Key Description Default
inputs number_of_devices Number of input devices to open (1 to 4). Default is 1, with 2 channels open, the first mapped to IOAP_MIC_IN_1 and the second to IOAP_PHONE_IN_1. 1
ipathX device_path Path for input device X. If no path is specified, the preferred device will be used. If there are multiple devices with both microphone and reference inputs to route, devices with microphone inputs should be routed first. Preferred device
ichannelsX number_of_channels Number of audio channels to open from input device X (1 to 4). This key must be specified for each input device. The minimum number of channels across all devices is 2 (one microphone, and one phone or reference). The maximum number of channels for the system 4 (two microphones, one phone and one reference). See inputs
irouteX_Y route Acoustic processing input to route from channel Y of input device X. This key must be specified for each input device channel. Can be any of IOAP_MIC_IN_1 IOAP_MIC_IN_2, IOAP_REF_IN_1, or IOAP_PHONE_IN_1. See inputs
outputs number_of_devices Number of output devices to open (1 or 2). Default is 1, with 2 channels open, the first mapped to IOAP_PHONE_OUT_1 and the second to IOAP_SPKR_OUT_1. 1
opathX device_path Path for output device X. If no path specified, the preferred device will be used. Preferred device
ochannelsX number_of_channels Number of audio channels to open from output device X. Can be 1 or 2. This key must be specified for each output device. The minimum number of channels across all devices is 1 (one phone out). The maximum number is 2 (one phone out and one speaker out). See outputs
orouteX_Y route Acoustic processing output to route to channel Y of output device X. This key must be specified for each output device channel. It can be either IOAP_SPKR_OUT_1 or IOAP_PHONE_OUT_1. See outputs

Timing

Key Description Default
msprime prime_time_in_ms The time (in milliseconds) to prime speaker output on "go" in order to compensate for system latency. This time period is platform specific. To achieve best system latency, it should be adjusted to the shortest time possible (that is, the shortest time period that is sufficient to prevent underruns). 100
msphoneprime prime_time_in_ms The time (in milliseconds) to prime phone output on "go" in order to compensate for system latency. This time period is platform specific. To achieve best system latency, it should be adjusted to the shortest time possible (that is, the shortest time period that is sufficient to prevent underruns). 30
msrefdelta_default delta_time_in_ms The time (in milliseconds) to add to the msprime value to compensate for audio system latencies. This time is the difference between the value measured using the latency test and the value specified by msprime. 0

Fragment size

Key Description Default
framesperfrag number_of_ap_frames Number of acoustic processing frames per audio fragment. The larger the number, the greater the delay; the lower the number, the higher the CPU load. Must be 1 or greater. 1

Tuning

Key Description Default
qcf file_path Path to acoustic processing tuning file. n/a
qcf_rcs file_path Path to an alternate acoustic processing tuning file to load instead of the file specified by the qcf parameter, if RCS is enabled. n/a
dbminvol_default volume_in_dB Minimum (0%) volume to use if no device-specific key is available. -20
dbmaxvol_default volume_in_dB Maximum (100%) volume. 10

RCS

Key Description Default
rcsactive true Set to "true" to enable the RCS server in io-acoustic; any other value is ignored. The server by default is disabled; only enable it if you are using a io-acoustic build with RCS enabled and are using QWALive to tune the acoustic processing. n/a
rcsport port_number TCP/IP port for RCS server. 4000

Other

Key Description Default
autoroute true|false Set to "true" to enable the io-audio router plugin. When the router plugin is enabled, the preferred device will be automatically changed when a new device is connected. false
volumecontrol true|false Enable manual volume control. The default (false) puts the volume level at a fixed-value specified by the tuning file. service. Set to true to enable the "set volume" API function and allow the application to get and set the volume level during and between calls. false
onaudioerr reprepare|restart Set how audio overruns and underruns are handled. The default reprepare only resets audio processing back to a default state after an audio error. Set to restart to force a full audio restart on an audio error. The restart mode is slower, but is safer when using an unstable audio driver because in some cases, a reprepare operation can lock the audio device. reprepare