diff --git a/audio/audio_effects.conf b/audio/audio_effects.conf
new file mode 100644
index 0000000..8f7d40c
--- /dev/null
+++ b/audio/audio_effects.conf
@@ -0,0 +1,242 @@
+# List of effect libraries to load. Each library element must contain a "path" element
+# giving the full path of the library .so file.
+#    libraries {
+#        <lib name> {
+#          path <lib path>
+#        }
+#    }
+libraries {
+# This is a proxy library that will be an abstraction for
+# the HW and SW effects
+  proxy {
+    path /system/lib/soundfx/libeffectproxy.so
+  }
+# This is the HW implementation library for the effect
+  offload {
+    path /system/lib/soundfx/libaudioeffectoffload.so
+  }
+  bundle {
+    path /system/lib/soundfx/libbundlewrapper.so
+  }
+  reverb {
+    path /system/lib/soundfx/libreverbwrapper.so
+  }
+  qcbassboost {
+    path /vendor/lib/soundfx/libqcbassboost.so
+  }
+  qcvirt {
+    path /vendor/lib/soundfx/libqcvirt.so
+  }
+  qcreverb {
+    path /vendor/lib/soundfx/libqcreverb.so
+  }
+  visualizer_sw {
+    path /system/lib/soundfx/libvisualizer.so
+  }
+  visualizer_hw {
+    path /system/lib/soundfx/libqcomvisualizer.so
+  }
+  downmix {
+    path /system/lib/soundfx/libdownmix.so
+  }
+  soundalive {
+    path /system/lib/libaudiosa.so
+  }
+  soundalive_sec {
+    path /system/lib/soundfx/libaudiosa_sec.so
+  }
+  loudness_enhancer {
+    path /system/lib/soundfx/libldnhncr.so
+  }
+  pre_processing {
+    path /system/lib/soundfx/libqcomvoiceprocessing.so
+  }
+  offload_bundle {
+    path /system/lib/soundfx/libqcompostprocbundle.so
+  }
+  audio_pre_processing {
+    path /system/lib/soundfx/libqcomvoiceprocessing.so
+  }
+}
+
+# Default pre-processing library. Add to audio_effect.conf "libraries" section if
+# audio HAL implements support for default software audio pre-processing effects
+#
+#  pre_processing {
+#    path /system/lib/soundfx/libaudiopreprocessing.so
+#  }
+
+# list of effects to load. Each effect element must contain a "library" and a "uuid" element.
+# The value of the "library" element must correspond to the name of one library element in the
+# "libraries" element.
+# The name of the effect element is indicative, only the value of the "uuid" element
+# designates the effect.
+# The uuid is the implementation specific UUID as specified by the effect vendor. This is not the
+# generic effect type UUID.
+#    effects {
+#        <fx name> {
+#            library <lib name>
+#            uuid <effect uuid>
+#        }
+#        ...
+#    }
+
+effects {
+  soundalive {
+    library proxy
+    uuid  05227ea0-50bb-11e3-ac69-0002a5d5c51b
+      libsw {
+        library soundalive_sec
+        uuid  cf65eb39-ce2f-48a8-a903-ceb818c06745
+      }
+      libhw {
+        library offload
+        uuid  0b2dbc60-50bb-11e3-988b-0002a5d5c51b
+      }
+  }
+  bassboost {
+    library proxy
+    uuid  10e50dc0-50bb-11e3-a9b0-0002a5d5c51b
+      libsw {
+        library soundalive
+        uuid a926a540-418a-11e1-b2f1-0002a5d5c51b
+      }
+      libhw {
+        library offload
+        uuid  16a70d80-50bb-11e3-8959-0002a5d5c51b
+      }
+  }
+  virtualizer {
+    library proxy
+    uuid  1db5b180-50bb-11e3-888e-0002a5d5c51b
+      libsw {
+        library soundalive
+        uuid c747f6a0-418a-11e1-a621-0002a5d5c51b
+      }
+      libhw {
+        library offload
+        uuid  23318080-50bb-11e3-9101-0002a5d5c51b
+      }
+  }
+  equalizer {
+    library proxy
+    uuid  295b42c0-50bb-11e3-a6ed-0002a5d5c51b
+      libsw {
+        library soundalive
+        uuid c117b70-f97f-11e0-be50-0002a5d5c51b
+      }
+      libhw {
+        library offload
+        uuid  2f2afe20-50bb-11e3-bc97-0002a5d5c51b
+      }
+  }
+  volume {
+    library bundle
+    uuid 119341a0-8469-11df-81f9-0002a5d5c51b
+  }
+  reverb_env_aux {
+    library reverb
+    uuid 4a387fc0-8ab3-11df-8bad-0002a5d5c51b
+  }
+  reverb_env_ins {
+    library reverb
+    uuid c7a511a0-a3bb-11df-860e-0002a5d5c51b
+  }
+  reverb_pre_aux {
+    library reverb
+    uuid f29a1400-a3bb-11df-8ddc-0002a5d5c51b
+  }
+  reverb_pre_ins {
+    library reverb
+    uuid 172cdf00-a3bc-11df-a72f-0002a5d5c51b
+  }
+  visualizer {
+    library proxy
+    uuid 1d0a1a53-7d5d-48f2-8e71-27fbd10d842c
+      libsw {
+        library visualizer_sw
+        uuid  d069d9e0-8329-11df-9168-0002a5d5c51b
+      }
+      libhw {
+        library visualizer_hw
+        uuid 7a8044a0-1a71-11e3-a184-0002a5d5c51b
+      }
+  }
+  downmix {
+    library downmix
+    uuid 93f04452-e4fe-41cc-91f9-e475b6d1d69f
+  }
+  loudness_enhancer {
+    library loudness_enhancer
+    uuid fa415329-2034-4bea-b5dc-5b381c8d1e2c
+  }
+  aec {
+    library pre_processing
+    uuid 0f8d0d2a-59e5-45fe-b6e4-248c8a799109
+  }
+  ns {
+    library pre_processing
+    uuid 1d97bb0b-9e2f-4403-9ae3-58c2554306
+  }
+}
+
+# Default pre-processing effects. Add to audio_effect.conf "effects" section if
+# audio HAL implements support for them.
+#
+#  agc {
+#    library pre_processing
+#    uuid aa8130e0-66fc-11e0-bad0-0002a5d5c51b
+#  }
+#  aec {
+#    library pre_processing
+#    uuid 0f8d0d2a-59e5-45fe-b6e4-248c8a799109
+#  }
+#  ns {
+#    library pre_processing
+#    uuid c06c8400-8e06-11e0-9cb6-0002a5d5c51b
+#  }
+
+# Audio preprocessor configurations.
+# The pre processor configuration consists in a list of elements each describing
+# pre processor settings for a given input source. Valid input source names are:
+# "mic", "camcorder", "voice_recognition", "voice_communication"
+# Each input source element contains a list of effects elements. The name of the effect
+# element must be the name of one of the effects in the "effects" list of the file.
+# Each effect element may optionally contain a list of parameters and their
+# default value to apply when the pre processor effect is created.
+# A parameter is defined by a "param" element and a "value" element. Each of these elements
+# consists in one or more elements specifying a type followed by a value.
+# The types defined are: "int", "short", "float", "bool" and "string"
+# When both "param" and "value" are a single int, a simple form is allowed where just
+# the param and value pair is present in the parameter description
+#    pre_processing {
+#        <input source name> {
+#            <fx name> {
+#                <param 1 name> {
+#                    param {
+#                        int|short|float|bool|string <value>
+#                        [ int|short|float|bool|string <value> ]
+#                        ...
+#                    }
+#                    value {
+#                        int|short|float|bool|string <value>
+#                        [ int|short|float|bool|string <value> ]
+#                        ...
+#                    }
+#                }
+#                <param 2 name > {<param> <value>}
+#                ...
+#            }
+#            ...
+#        }
+#        ...
+#    }
+
+#
+# TODO: add default audio pre processor configurations after debug and tuning phase
+#
+  pre_processing {
+    voice_communication {
+      aec {}
+    }
+  }
