Audio Manager Configuration File

The audio manager configuration file sets the behavior of audio devices and streams.

About the configuration file

The audio manager configuration file (/audioman_default.conf) sets the behavior of audio devices and streams, including device and audio type attributes, ducking rules, and audio routing rules and priorities.

You can change the configuration file to adjust how your system handles audio streams and the behavior of output devices. For example, you can set the default volume for music (as a percentage of the maximum) at system start for each type of output device (speaker, headset, headphones, etc.), or the amount of attenuation when the phone rings. Thus, by using different configuration files you can tune audio behavior for specific devices or implementations (phone, in-vehicle system, etc.) without changing or recompiling code.

Editing the configuration file

The configuration file can't be changed by applications or the audio management service. To change values in the configuration file:

  1. Stop the audio manager.
  2. Edit the file.
  3. Delete the /pps/services/audio/* PPS objects.
  4. Restart the service so that it loads the new configuration into the PPS objects.

Organization and syntax

The audio manager configuration file is a plain text file that uses a simple syntax with hierarchical containers of values for attributes.

The syntax for a container is as follows:

"value":{
    "attribute":"value",
}

For example, the following configures two channels for headphones:

"headphone":{
      "numchans":"2",
    }

And the following configures the volume for an alert to 90 percent of the maximum for the output device:

"Ducking Rules":{
    "alert":"90",
  },  

Note that the value in a configuration can be a pair of brackets, "{ ...}" and their contents, in which case the contents inside the brackets are the value for the attribute. For example, the file begins by defining the language used for managing audio, the file version number. It then begins configuring devices, as shown in the code snippet below.

AudioManagerConfiguration:json:{
  "Version":"0.0.1",
  "Devices":{
    "Description":"Specify the default values for the audio device attributes",
    "speaker":{
      "supported":"true",
      ...
      }
   }
}
        

Loading the audio management configuration

At startup, the audio manager looks for the audioman_default.conf file at /etc/system/config/audio/. If it doesn't find this file, it uses its compiled values. If the audio manager finds a configuration file, it writes the values in the file to its PPS objects at /pps/services/audio/. If any configurations are missing from the configuration file, the audio manager uses the compiled values for these configurations.

Configuration details

The following snippet from an audioman_default.conf file shows a configuration for a headset.

"headset":{
      "supported":"true",
      "path":"/dev/snd/pcmPreferredp",
      "input.path":"/dev/snd/pcmPreferredc",
      "connected":"false",
      "numchans":"2",
      "order":"FL,FR",
      "audioconfig":"2.0",
      "inchans":"1",
      "hwinchans":"1",
      "volumecontrol":"percentage",
      "dependency":"",
      "keepalive":"false",
      "suspended":"false",
      "controlpps":"",
      "audioprocessing":"false",
      "vadsupport":"",
      "public":"false",
      "mutable":"true",
      "mixer":"Master",
      "input.mixer":"Input Gain",
      "Buttons":"1"
},