SimpleLink Audio Plugin Users Guide

Table of Contents

Introduction

The SimpleLink Audio Plugin is a companion software package to the device SDKs that enables audio functionality. The plugin contains a toolbox of various audio modules. These modules can be used to build sound related sample applications that realize a given use-case.

The plugin is loosely inspired by the Advanced Linux Sound Architecture: ALSA (HAL based on index of sound cards, stream manager, etc)

Prerequisites

The intent of the this document is to serve as a developer’s guide the various components of the SimpleLink Audio Plugin. It is expected that the reader has already

  1. Read the release notes, purchased support kit(s), and installed required software

  2. Completed the Quick Start Guide for their target development platform, performing all hardware modifications if necessary

Architecture

The following image describes the architecture of the SimpleLink Audio Plugin as well as the various components that are included. Each component will be discussed briefly below, with its major elements covered in Doxygen.

Audio Architecture

TI Components

The following components of the SimpleLink Audio Plugin are created by TI in order to enable audio application development:

Developers using these components in their application should refer to their landing page in Doxygen here: TI Audio Doxygen where all components are described at a high level. Addition information will be provided in this User’s Guide. However, primary documentation of each component resides in its Doxygen.

AudioHAL

The plugin includes a AudioHAL layer that abstracts the hardware to a PCM interface at the application layer.

For more information refer to the AudioHAL Doxygen

AudioHALCodec

AudioHALCodec is the AudioHAL implementation that works on top of I2S, for use with external codecs. This code supports the TLV320AIC3254, but can be easily adapted to any external codec that use the I2S interface for audio streaming, and I2C for control. This implementation is compatible with the CC3200AUDBOOST.

The CC3200 Audio BoosterPack includes a TLV320AIC3254 audio codec, this is a premium high performance model with many optional features. However, most of these features are not required for use of the HAL. When selecting a codec for production hardware, the HAL requires the following minimum specifications:

Features such as the miniDSP, headphone amp, and speaker amp are optional and may or may not be needed for a given use case.

Packetizer

The SimpleLink Audio Plugin includes a Packetizer module that wraps the encode and decode functionality as well as sequence number management for each of the supported compression codecs that are described above. This allows the developer to easy support multiple codecs in their application.

For more information refer to the Packetizer Doxygen

The application is responsible to provide the correct data structure for the codec chosen. For usage information, see Packetizer.h.

The Packetizer supports the following codecs:

Board Files

The AudioHAL places an object definition inside the device’s board files much the way TI-Drivers do. For this reason, applications that use the AudioHAL must have a custom board file. These are shipped with the SimpleLink Audio Plugin in the source/ti/boards and source/ti/ble5stack/boards folders.

Example Applications

In order to bootstrap audio application development TI has included sample applications that demonstrate audio streaming using the following stacks