1<?xml version="1.0" encoding="UTF-8"?> 2<audio_effects_conf version="2.0" xmlns="http://schemas.android.com/audio/audio_effects_conf/v2_0"> 3 <!-- List of effect libraries to load. 4 Each library element must contain a "name" attribute and a "path" attribute giving the 5 name of a library .so file in /vendor/lib/soundfx on the target 6 7 If offloadable effects are present, the AOSP library libeffectproxy.so must be listed as 8 well as one library for the SW implementation and one library for the DSP implementation: 9 <library name="proxy" path="libeffectproxy.so"/> 10 <library name="some_fx_sw" path="lib_some_fx_sw.so"/> 11 <library name="some_fx_hw" path="lib_some_fx_hw.so"/> 12 13 If the audio HAL implements support for AOSP software audio pre-processing effects, 14 the following library must be added: 15 <library name="pre_processing" path="libaudiopreprocessing.so"/> 16 --> 17 <libraries> 18 <library name="bundle" path="libbundlewrapper.so"/> 19 <library name="reverb" path="libreverbwrapper.so"/> 20 <library name="visualizer" path="libvisualizer.so"/> 21 <library name="downmix" path="libdownmix.so"/> 22 <library name="loudness_enhancer" path="libldnhncr.so"/> 23 <library name="dynamics_processing" path="libdynproc.so"/> 24 </libraries> 25 26 <!-- list of effects to load. 27 Each "effect" element must contain a "name", "library" and a "uuid" attribute. 28 The value of the "library" element must correspond to the name of one library element in 29 the "libraries" element. 30 The "name" attribute is indicative, only the value of the "uuid" attribute designates 31 the effect. 32 The uuid is the implementation specific UUID as specified by the effect vendor. This is not 33 the generic effect type UUID. 34 35 Offloadable effects are described by an "effectProxy" element which contains one "libsw" 36 element containing the "uuid" and "library" for the SW implementation and one "libhw" 37 element containing the "uuid" and "library" for the DSP implementation. 38 The "uuid" value for the "effectProxy" element must be unique and will override the default 39 uuid in the AOSP proxy effect implementation. 40 41 If the audio HAL implements support for AOSP software audio pre-processing effects, 42 the following effects can be added: 43 <effect name="agc" library="pre_processing" uuid="aa8130e0-66fc-11e0-bad0-0002a5d5c51b"/> 44 <effect name="aec" library="pre_processing" uuid="bb392ec0-8d4d-11e0-a896-0002a5d5c51b"/> 45 <effect name="ns" library="pre_processing" uuid="c06c8400-8e06-11e0-9cb6-0002a5d5c51b"/> 46 --> 47 48 <effects> 49 <effect name="bassboost" library="bundle" uuid="8631f300-72e2-11df-b57e-0002a5d5c51b"/> 50 <effect name="virtualizer" library="bundle" uuid="1d4033c0-8557-11df-9f2d-0002a5d5c51b"/> 51 <effect name="equalizer" library="bundle" uuid="ce772f20-847d-11df-bb17-0002a5d5c51b"/> 52 <effect name="volume" library="bundle" uuid="119341a0-8469-11df-81f9-0002a5d5c51b"/> 53 <effect name="reverb_env_aux" library="reverb" uuid="4a387fc0-8ab3-11df-8bad-0002a5d5c51b"/> 54 <effect name="reverb_env_ins" library="reverb" uuid="c7a511a0-a3bb-11df-860e-0002a5d5c51b"/> 55 <effect name="reverb_pre_aux" library="reverb" uuid="f29a1400-a3bb-11df-8ddc-0002a5d5c51b"/> 56 <effect name="reverb_pre_ins" library="reverb" uuid="172cdf00-a3bc-11df-a72f-0002a5d5c51b"/> 57 <effect name="visualizer" library="visualizer" uuid="d069d9e0-8329-11df-9168-0002a5d5c51b"/> 58 <effect name="downmix" library="downmix" uuid="93f04452-e4fe-41cc-91f9-e475b6d1d69f"/> 59 <effect name="loudness_enhancer" library="loudness_enhancer" uuid="fa415329-2034-4bea-b5dc-5b381c8d1e2c"/> 60 <effect name="dynamics_processing" library="dynamics_processing" uuid="e0e6539b-1781-7261-676f-6d7573696340"/> 61 </effects> 62 63 <!-- Audio pre processor configurations. 64 The pre processor configuration is described in a "preprocess" element and consists in a 65 list of elements each describing pre processor settings for a given use case or "stream". 66 Each stream element has a "type" attribute corresponding to the input source used. 67 Valid types are: 68 "mic", "camcorder", "voice_recognition", "voice_communication" 69 Each "stream" element contains a list of "apply" elements indicating one effect to apply. 70 The effect to apply is designated by its name in the "effects" elements. 71 72 <preprocess> 73 <stream type="voice_communication"> 74 <apply effect="aec"/> 75 <apply effect="ns"/> 76 </stream> 77 </preprocess> 78 --> 79 80 <!-- Audio post processor configurations. 81 The post processor configuration is described in a "postprocess" element and consists in a 82 list of elements each describing post processor settings for a given use case or "stream". 83 Each stream element has a "type" attribute corresponding to the stream type used. 84 Valid types are: 85 "music", "ring", "alarm", "notification", "voice_call" 86 Each "stream" element contains a list of "apply" elements indicating one effect to apply. 87 The effect to apply is designated by its name in the "effects" elements. 88 89 <postprocess> 90 <stream type="music"> 91 <apply effect="music_post_proc"/> 92 </stream> 93 <stream type="voice_call"> 94 <apply effect="voice_post_proc"/> 95 </stream> 96 <stream type="notification"> 97 <apply effect="notification_post_proc"/> 98 </stream> 99 </postprocess> 100 --> 101 102 <!-- Device pre/post processor configurations. 103 The device pre/post processor configuration is described in a deviceEffects element and 104 consists in a list of elements each describing pre/post proecessor settings for a given 105 device or "devicePort". 106 Each devicePort element has a "type" attribute corresponding to the device type (e.g. 107 speaker, bus), an "address" attribute corresponding to the device address and contains a 108 list of "apply" elements indicating one effect to apply. 109 If the device is a source, only pre processing effects are expected, if the 110 device is a sink, only post processing effects are expected. 111 The effect to apply is designated by its name in the "effects" elements. 112 The effect will be enabled by default and the audio framework will automatically add 113 and activate the effect if the given port is involved in an audio patch. 114 If the patch is "HW", the effect must be HW accelerated. 115 116 <deviceEffects> 117 <devicePort type="AUDIO_DEVICE_OUT_BUS" address="BUS00_USAGE_MAIN"> 118 <apply effect="equalizer"/> 119 </devicePort> 120 <devicePort type="AUDIO_DEVICE_OUT_BUS" address="BUS04_USAGE_VOICE"> 121 <apply effect="volume"/> 122 </devicePort> 123 <devicePort type="AUDIO_DEVICE_IN_BUILTIN_MIC" address="bottom"> 124 <apply effect="agc"/> 125 </devicePort> 126 </deviceEffects> 127 --> 128 129</audio_effects_conf> 130