Audio

Audio functions are constrained by the following platform limitations for AR755x, AR8652, and WP8548.

Possible audio connections:

Input stream \ Output stream Spkr USB Tx PCM Tx I2S Tx MdmVoice Tx Recorder
Mic X X
USB Rx X X
PCM Rx X X
I2S Rx X X
MdmVoice Rx X X X X X
Player X X X X X

Player = file playback and samples insertion
Recorder = file recording and samples extraction

Note
Only 1 point to 1 point connection is possible except for Player and Recorder. Player and Recorder can be added to any active 1 point to 1 point connections, or tied to 1 single stream.

Available functions for the different audio streams:

Function \ Stream I2S Tx I2S Rx PCM Tx PCM Rx USB Tx USB Rx Spkr Mic MdmVoice Tx MdmVoice Rx Player Recorder
Gain (Set / Get) X X X X
Mute / Unmute X X X X
NS X
EC X
IIR X X
FIR X X
AGC X X X X X X

NS = Noise Suppressor
EC = Echo Canceller
IIR = Infinite Impulse Response filter
FIR = Finite Impulse Response filter
AGC = Automatic Gain Control

The following diagram shows where the functions are applied in a voice call audio path:

AR755x_Ext_AudioBlockDiagram_Legato.jpg

Gains value's for AR7x series (also applicable for AR8652):

Mic:

  • range: 0x0000 -- 0xFFFF;
  • value (in dB) = 20*Log(<value>/0x0100)

MdmVoiceRx:

  • range: 0 - 8 (integer);
  • the value is not in dB, '0' means lowest volume value (not muted) and '8' means the highest volume value.

MdmVoiceTx:

  • range: 0x0000 -- 0xFFFF;
  • value (in dB) = 20*Log(<value>/0x2000)

Player:

  • range: 0x0000 -- 0xFFFF;
  • value (in dB) = 20*Log(<value>/0x2000)
Note
AR specific gains can use the le_audio_SetPlatformSpecificGain() function with "D_AFE_GAIN_RX" and "D_AFE_GAIN_TX" parameters.

"D_AFE_GAIN_RX":

  • range: 0x0000 -- 0xFFFF;
  • value (in dB) = 20*Log(<value>/0x2000)

"D_AFE_GAIN_TX":

  • range: 0x0000 -- 0xFFFF;
  • value (in dB) = 20*Log(<value>/0x2000)

Other audio features and constraints:

  • DTMF decoding works only on MdmVoice Rx stream. DTMF's reception handler must be installed before call initiation.
  • File Playback/Recording: WAVE, AMR Narrowband and AMR Wideband formats are supported.
  • Samples insertion/extraction: PCM samples using configuration of channel number, sampling rate and sampling resolution.
  • Several file playbacks can be activated simultaneously but not several file recordings. Playback and recording can’t be performed simultaneously. This also applies to samples insertion/extraction.