page.title=Audio Terminology
@jd:body

<!--
    Copyright 2015 The Android Open Source Project

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->
<div id="qv-wrapper">
  <div id="qv">
    <h2>In this document</h2>
    <ol id="auto-toc">
    </ol>
  </div>
</div>

<p>
This glossary of audio-related terminology includes widely-used generic terms
and Android-specific terms.
</p>

<h2 id="genericTerm">Generic Terms</h2>

<p>
Generic audio-related terms have conventional meanings.
</p>

<h3 id="digitalAudioTerms">Digital Audio</h3>
<p>
Digital audio terms relate to handling sound using audio signals encoded
in digital form. For details, refer to
<a href="http://en.wikipedia.org/wiki/Digital_audio">Digital Audio</a>.
</p>

<dl>

<dt>acoustics</dt>
<dd>
Study of the mechanical properties of sound, such as how the physical
placement of transducers (speakers, microphones, etc.) on a device affects
perceived audio quality.
</dd>

<dt>attenuation</dt>
<dd>
Multiplicative factor less than or equal to 1.0, applied to an audio signal
to decrease the signal level. Compare to <em>gain</em>.
</dd>

<dt>audiophile</dt>
<dd>
Person concerned with a superior music reproduction experience, especially
willing to make substantial tradeoffs (expense, component size, room design,
etc.) for sound quality. For details, refer to
<a href="http://en.wikipedia.org/wiki/Audiophile">audiophile</a>.
</dd>

<dt>bits per sample or bit depth</dt>
<dd>
Number of bits of information per sample.
</dd>

<dt>channel</dt>
<dd>
Single stream of audio information, usually corresponding to one location of
recording or playback.
</dd>

<dt>downmixing</dt>
<dd>
Decrease the number of channels, such as from stereo to mono or from 5.1 to
stereo. Accomplished by dropping channels, mixing channels, or more advanced
signal processing. Simple mixing without attenuation or limiting has the
potential for overflow and clipping. Compare to <em>upmixing</em>.
</dd>

<dt>DSD</dt>
<dd>
Direct Stream Digital. Proprietary audio encoding based on
<a href="http://en.wikipedia.org/wiki/Pulse-density_modulation">pulse-density
modulation</a>. While Pulse Code Modulation (PCM) encodes a waveform as a
sequence of individual audio samples of multiple bits, DSD encodes a waveform as
a sequence of bits at a very high sample rate (without the concept of samples).
Both PCM and DSD represent multiple channels by independent sequences. DSD is
better suited to content distribution than as an internal representation for
processing as it can be difficult to apply traditional digital signal processing
(DSP) algorithms to DSD. DSD is used in <a href="http://en.wikipedia.org/wiki/Super_Audio_CD">Super Audio CD (SACD)</a> and in DSD over PCM (DoP) for USB. For details, refer
to <a href="http://en.wikipedia.org/wiki/Direct_Stream_Digital">Digital Stream
Digital</a>.
</dd>

<dt>duck</dt>
<dd>
Temporarily reduce the volume of a stream when another stream becomes active.
For example, if music is playing when a notification arrives, the music ducks
while the notification plays. Compare to <em>mute</em>.
</dd>

<dt>FIFO</dt>
<dd>
First In, First Out. Hardware module or software data structure that implements
<a href="http://en.wikipedia.org/wiki/FIFO">First In, First Out</a>
queueing of data. In an audio context, the data stored in the queue are
typically audio frames. FIFO can be implemented by a
<a href="http://en.wikipedia.org/wiki/Circular_buffer">circular buffer</a>.
</dd>

<dt>frame</dt>
<dd>
Set of samples, one per channel, at a point in time.
</dd>

<dt>frames per buffer</dt>
<dd>
Number of frames handed from one module to the next at one time. The audio HAL
interface uses the concept of frames per buffer.
</dd>

<dt>gain</dt>
<dd>
Multiplicative factor greater than or equal to 1.0, applied to an audio signal
to increase the signal level. Compare to <em>attenuation</em>.
</dd>

<dt>HD audio</dt>
<dd>
High-Definition audio. Synonym for high-resolution audio (but different than
Intel High Definition Audio).
</dd>

<dt>Hz</dt>
<dd>
Units for sample rate or frame rate.
</dd>

<dt>high-resolution audio</dt>
<dd>
Representation with greater bit-depth and sample rate than CDs (stereo 16-bit
PCM at 44.1 kHz) and without lossy data compression. Equivalent to HD audio.
For details, refer to
<a href="http://en.wikipedia.org/wiki/High-resolution_audio">high-resolution
audio</a>.
</dd>

<dt>latency</dt>
<dd>
Time delay as a signal passes through a system.
</dd>

<dt>lossless</dt>
<dd>
A <a href="http://en.wikipedia.org/wiki/Lossless_compression">lossless data
compression algorithm</a> that preserves bit accuracy across encoding and
decoding, where the result of decoding previously encoded data is equivalent
to the original data. Examples of lossless audio content distribution formats
include <a href="http://en.wikipedia.org/wiki/Compact_disc">CDs</a>, PCM within
<a href="http://en.wikipedia.org/wiki/WAV">WAV</a>, and
<a href="http://en.wikipedia.org/wiki/FLAC">FLAC</a>.
The authoring process may reduce the bit depth or sample rate from that of the
<a href="http://en.wikipedia.org/wiki/Audio_mastering">masters</a>; distribution
formats that preserve the resolution and bit accuracy of masters are the subject
of high-resolution audio.
</dd>

<dt>lossy</dt>
<dd>
A <a href="http://en.wikipedia.org/wiki/Lossy_compression">lossy data
compression algorithm</a> that attempts to preserve the most important features
of media across encoding and decoding where the result of decoding previously
encoded data is perceptually similar to the original data but not identical.
Examples of lossy audio compression algorithms include MP3 and AAC. As analog
values are from a continuous domain and digital values are discrete, ADC and DAC
are lossy conversions with respect to amplitude. See also <em>transparency</em>.
</dd>

<dt>mono</dt>
<dd>
One channel.
</dd>

<dt>multichannel</dt>
<dd>
See <em>surround sound</em>. In strict terms, <em>stereo</em> is more than one
channel and could be considered multichannel; however, such usage is confusing
and thus avoided.
</dd>

<dt>mute</dt>
<dd>
Temporarily force volume to be zero, independent from the usual volume controls.
</dd>

<dt>overrun</dt>
<dd>
Audible <a href="http://en.wikipedia.org/wiki/Glitch">glitch</a> caused by
failure to accept supplied data in sufficient time. For details, refer to
<a href="http://en.wikipedia.org/wiki/Buffer_underrun">buffer underrun</a>.
Compare to <em>underrun</em>.
</dd>

<dt>panning</dt>
<dd>
Direct a signal to a desired position within a stereo or multichannel field.
</dd>

<dt>PCM</dt>
<dd>
Pulse Code Modulation. Most common low-level encoding of digital audio. The
audio signal is sampled at a regular interval, called the sample rate, then
quantized to discrete values within a particular range depending on the bit
depth. For example, for 16-bit PCM the sample values are integers between
-32768 and +32767.
</dd>

<dt>ramp</dt>
<dd>
Gradually increase or decrease the level of a particular audio parameter, such
as the volume or the strength of an effect. A volume ramp is commonly applied
when pausing and resuming music to avoid a hard audible transition.
</dd>

<dt>sample</dt>
<dd>
Number representing the audio value for a single channel at a point in time.
</dd>

<dt>sample rate or frame rate</dt>
<dd>
Number of frames per second. While <em>frame rate</em> is more accurate,
<em>sample rate</em> is conventionally used to mean frame rate.
</dd>

<dt>sonification</dt>
<dd>
Use of sound to express feedback or information, such as touch sounds and
keyboard sounds.
</dd>

<dt>stereo</dt>
<dd>
Two channels.
</dd>

<dt>stereo widening</dt>
<dd>
Effect applied to a stereo signal to make another stereo signal that sounds
fuller and richer. The effect can also be applied to a mono signal, where it is
a type of upmixing.
</dd>

<dt>surround sound</dt>
<dd>
Techniques for increasing the ability of a listener to perceive sound position
beyond stereo left and right.
</dd>

<dt>transparency</dt>
<dd>
Ideal result of lossy data compression. Lossy data conversion is transparent if
it is perceptually indistinguishable from the original by a human subject. For
details, refer to
<a href="http://en.wikipedia.org/wiki/Transparency_%28data_compression%29">Transparency</a>.

</dd>

<dt>underrun</dt>
<dd>
Audible <a href="http://en.wikipedia.org/wiki/Glitch">glitch</a> caused by
failure to supply needed data in sufficient time. For details, refer to
<a href="http://en.wikipedia.org/wiki/Buffer_underrun">buffer underrun</a>.
Compare to <em>overrun</em>.
</dd>

<dt>upmixing</dt>
<dd>
Increase the number of channels, such as from mono to stereo or from stereo to
surround sound. Accomplished by duplication, panning, or more advanced signal
processing. Compare to <em>downmixing</em>.
</dd>

<dt>virtualizer</dt>
<dd>
Effect that attempts to spatialize audio channels, such as trying to simulate
more speakers or give the illusion that sound sources have position.
</dd>

<dt>volume</dt>
<dd>
Loudness, the subjective strength of an audio signal.
</dd>

</dl>

<h3 id="interDeviceTerms">Inter-device interconnect</h3>

<p>
Inter-device interconnection technologies connect audio and video components
between devices and are readily visible at the external connectors. The HAL
implementer and end user should be aware of these terms.
</p>

<dl>

<dt>Bluetooth</dt>
<dd>
Short range wireless technology. For details on the audio-related
<a href="http://en.wikipedia.org/wiki/Bluetooth_profile">Bluetooth profiles</a>
and
<a href="http://en.wikipedia.org/wiki/Bluetooth_protocols">Bluetooth protocols</a>,
refer to <a href="http://en.wikipedia.org/wiki/Bluetooth_profile#Advanced_Audio_Distribution_Profile_.28A2DP.29">A2DP</a> for
music, <a href="http://en.wikipedia.org/wiki/Bluetooth_protocols#Synchronous_connection-oriented_.28SCO.29_link">SCO</a> for telephony, and <a href="http://en.wikipedia.org/wiki/List_of_Bluetooth_profiles#Audio.2FVideo_Remote_Control_Profile_.28AVRCP.29">Audio/Video Remote Control Profile (AVRCP)</a>.
</dd>

<dt>DisplayPort</dt>
<dd>
Digital display interface by the Video Electronics Standards Association (VESA).
</dd>

<dt>dongle</dt>
<dd>
A <a href="https://en.wikipedia.org/wiki/Dongle">dongle</a>
is a small gadget, especially one that hangs off another device.
</dd>

<dt>HDMI</dt>
<dd>
High-Definition Multimedia Interface. Interface for transferring audio and
video data. For mobile devices, a micro-HDMI (type D) or MHL connector is used.
</dd>

<dt>Intel HDA</dt>
<dd>
Intel High Definition Audio (do not confuse with generic <em>high-definition
audio</em> or <em>high-resolution audio</em>). Specification for a front-panel
connector. For details, refer to
<a href="http://en.wikipedia.org/wiki/Intel_High_Definition_Audio">Intel High
Definition Audio</a>.
</dd>

<dt>interface</dt>
<dd>
An <a href="https://en.wikipedia.org/wiki/Interface_(computing)">interface</a>
converts a signal from one representation to another.  Common interfaces
include a USB audio interface and MIDI interface.
</dd>

<dt>line level</dt>
<dd>
<a href="http://en.wikipedia.org/wiki/Line_level">Line level</a> is the strength
of an analog audio signal that passes between audio components, not transducers.
</dd>

<dt>MHL</dt>
<dd>
Mobile High-Definition Link. Mobile audio/video interface, often over micro-USB
connector.
</dd>

<dt>phone connector</dt>
<dd>
Mini or sub-mini component that connects a device to wired headphones, headset,
or line-level amplifier.
</dd>

<dt>SlimPort</dt>
<dd>
Adapter from micro-USB to HDMI.
</dd>

<dt>S/PDIF</dt>
<dd>
Sony/Philips Digital Interface Format. Interconnect for uncompressed PCM. For
details, refer to <a href="http://en.wikipedia.org/wiki/S/PDIF">S/PDIF</a>.
S/PDIF is the consumer grade variant of <a href="https://en.wikipedia.org/wiki/AES3">AES3</a>.
</dd>

<dt>Thunderbolt</dt>
<dd>
Multimedia interface that competes with USB and HDMI for connecting to high-end
peripherals. For details, refer to <a href="http://en.wikipedia.org/wiki/Thunderbolt_%28interface%29">Thunderbolt</a>.
</dd>

<dt>TOSLINK</dt>
<dd>
<a href="https://en.wikipedia.org/wiki/TOSLINK">TOSLINK</a> is an optical audio cable
used with <em>S/PDIF</em>.
</dd>

<dt>USB</dt>
<dd>
Universal Serial Bus. For details, refer to
<a href="http://en.wikipedia.org/wiki/USB">USB</a>.
</dd>

</dl>

<h3 id="intraDeviceTerms">Intra-device interconnect</h3>

<p>
Intra-device interconnection technologies connect internal audio components
within a given device and are not visible without disassembling the device. The
HAL implementer may need to be aware of these, but not the end user. For details
on intra-device interconnections, refer to the following articles:
</p>
<ul>
<li><a href="http://en.wikipedia.org/wiki/General-purpose_input/output">GPIO</a></li>
<li><a href="http://en.wikipedia.org/wiki/I%C2%B2C">I²C</a>, for control channel</li>
<li><a href="http://en.wikipedia.org/wiki/I%C2%B2S">I²S</a>, for audio data, simpler than SLIMbus</li>
<li><a href="http://en.wikipedia.org/wiki/McASP">McASP</a></li>
<li><a href="http://en.wikipedia.org/wiki/SLIMbus">SLIMbus</a></li>
<li><a href="http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus">SPI</a></li>
<li><a href="http://en.wikipedia.org/wiki/AC%2797">AC'97</a></li>
<li><a href="http://en.wikipedia.org/wiki/Intel_High_Definition_Audio">Intel HDA</a></li>
<li><a href="http://mipi.org/specifications/soundwire">SoundWire</a></li>
</ul>

<p>
In
<a href="http://www.alsa-project.org/main/index.php/ASoC">ALSA System on Chip (ASoC)</a>,
these are collectively called
<a href="https://www.kernel.org/doc/Documentation/sound/alsa/soc/DAI.txt">Digital Audio Interfaces</a>
(DAI).
</p>

<h3 id="signalTerms">Audio Signal Path</h3>

<p>
Audio signal path terms relate to the signal path that audio data follows from
an application to the transducer or vice-versa.
</p>

<dl>

<dt>ADC</dt>
<dd>
Analog-to-digital converter. Module that converts an analog signal (continuous
in time and amplitude) to a digital signal (discrete in time and amplitude).
Conceptually, an ADC consists of a periodic sample-and-hold followed by a
quantizer, although it does not have to be implemented that way. An ADC is
usually preceded by a low-pass filter to remove any high frequency components
that are not representable using the desired sample rate. For details, refer to
<a href="http://en.wikipedia.org/wiki/Analog-to-digital_converter">Analog-to-digital
converter</a>.
</dd>

<dt>AP</dt>
<dd>
Application processor. Main general-purpose computer on a mobile device.
</dd>

<dt>codec</dt>
<dd>
Coder-decoder. Module that encodes and/or decodes an audio signal from one
representation to another (typically analog to PCM or PCM to analog). In strict
terms, <em>codec</em> is reserved for modules that both encode and decode but
can be used loosely to refer to only one of these. For details, refer to
<a href="http://en.wikipedia.org/wiki/Audio_codec">Audio codec</a>.
</dd>

<dt>DAC</dt>
<dd>
Digital-to-analog converter. Module that converts a digital signal (discrete in
time and amplitude) to an analog signal (continuous in time and amplitude).
Often followed by a low-pass filter to remove high-frequency components
introduced by digital quantization. For details, refer to
<a href="http://en.wikipedia.org/wiki/Digital-to-analog_converter">Digital-to-analog
converter</a>.
</dd>

<dt>DSP</dt>
<dd>
Digital Signal Processor. Optional component typically located after the
application processor (for output) or before the application processor (for
input). Primary purpose is to off-load the application processor and provide
signal processing features at a lower power cost.
</dd>

<dt>PDM</dt>
<dd>
Pulse-density modulation. Form of modulation used to represent an analog signal
by a digital signal, where the relative density of 1s versus 0s indicates the
signal level. Commonly used by digital to analog converters. For details, refer
to <a href="http://en.wikipedia.org/wiki/Pulse-density_modulation">Pulse-density
modulation</a>.
</dd>

<dt>PWM</dt>
<dd>
Pulse-width modulation. Form of modulation used to represent an analog signal by
a digital signal, where the relative width of a digital pulse indicates the
signal level. Commonly used by analog-to-digital converters. For details, refer
to <a href="http://en.wikipedia.org/wiki/Pulse-width_modulation">Pulse-width
modulation</a>.
</dd>

<dt>transducer</dt>
<dd>
Converts variations in physical real-world quantities to electrical signals. In
audio, the physical quantity is sound pressure, and the transducers are the
loudspeaker and microphone. For details, refer to
<a href="http://en.wikipedia.org/wiki/Transducer">Transducer</a>.
</dd>

</dl>

<h3 id="srcTerms">Sample Rate Conversion</h3>
<p>
Sample rate conversion terms relate to the process of converting from one
sampling rate to another.
</p>

<dl>

<dt>downsample</dt>
<dd>Resample, where sink sample rate &lt; source sample rate.</dd>

<dt>Nyquist frequency</dt>
<dd>
Maximum frequency component that can be represented by a discretized signal at
1/2 of a given sample rate. For example, the human hearing range extends to
approximately 20 kHz, so a digital audio signal must have a sample rate of at
least 40 kHz to represent that range. In practice, sample rates of 44.1 kHz and
48 kHz are commonly used, with Nyquist frequencies of 22.05 kHz and 24 kHz
respectively. For details, refer to
<a href="http://en.wikipedia.org/wiki/Nyquist_frequency">Nyquist frequency</a>
and
<a href="http://en.wikipedia.org/wiki/Hearing_range">Hearing range</a>.
</dd>

<dt>resampler</dt>
<dd>Synonym for sample rate converter.</dd>

<dt>resampling</dt>
<dd>Process of converting sample rate.</dd>

<dt>sample rate converter</dt>
<dd>Module that resamples.</dd>

<dt>sink</dt>
<dd>Output of a resampler.</dd>

<dt>source</dt>
<dd>Input to a resampler.</dd>

<dt>upsample</dt>
<dd>Resample, where sink sample rate &gt; source sample rate.</dd>

</dl>

<h2 id="androidSpecificTerms">Android-Specific Terms</h2>

<p>
Android-specific terms include terms used only in the Android audio framework
and generic terms that have special meaning within Android.
</p>

<dl>

<dt>ALSA</dt>
<dd>
Advanced Linux Sound Architecture. An audio framework for Linux that has also
influenced other systems. For a generic definition, refer to
<a href="http://en.wikipedia.org/wiki/Advanced_Linux_Sound_Architecture">ALSA</a>.
In Android, ALSA refers to the kernel audio framework and drivers and not to the
user-mode API. See also <em>tinyalsa</em>.
</dd>

<dt>audio device</dt>
<dd>
Audio I/O endpoint backed by a HAL implementation.
</dd>

<dt>AudioEffect</dt>
<dd>
API and implementation framework for output (post-processing) effects and input
(pre-processing) effects. The API is defined at
<a href="http://developer.android.com/reference/android/media/audiofx/AudioEffect.html">android.media.audiofx.AudioEffect</a>.
</dd>

<dt>AudioFlinger</dt>
<dd>
Android sound server implementation. AudioFlinger runs within the mediaserver
process. For a generic definition, refer to
<a href="http://en.wikipedia.org/wiki/Sound_server">Sound server</a>.
</dd>

<dt>audio focus</dt>
<dd>
Set of APIs for managing audio interactions across multiple independent apps.
For details, see <a href="http://developer.android.com/training/managing-audio/audio-focus.html">Managing Audio Focus</a> and the focus-related methods and constants of
<a href="http://developer.android.com/reference/android/media/AudioManager.html">android.media.AudioManager</a>.
</dd>

<dt>AudioMixer</dt>
<dd>
Module in AudioFlinger responsible for combining multiple tracks and applying
attenuation (volume) and effects. For a generic definition, refer to
<a href="http://en.wikipedia.org/wiki/Audio_mixing_(recorded_music)">Audio mixing (recorded music)</a> (discusses a mixer as a hardware device or software application, rather
than a software module within a system).
</dd>

<dt>audio policy</dt>
<dd>
Service responsible for all actions that require a policy decision to be made
first, such as opening a new I/O stream, re-routing after a change, and stream
volume management.
</dd>

<dt>AudioRecord</dt>
<dd>
Primary low-level client API for receiving data from an audio input device such
as a microphone. The data is usually PCM format. The API is defined at
<a href="http://developer.android.com/reference/android/media/AudioRecord.html">android.media.AudioRecord</a>.
</dd>

<dt>AudioResampler</dt>
<dd>
Module in AudioFlinger responsible for <a href="src.html">sample rate conversion</a>.
</dd>

<dt>audio source</dt>
<dd>
An enumeration of constants that indicates the desired use case for capturing
audio input. For details, see <a href="http://developer.android.com/reference/android/media/MediaRecorder.AudioSource.html">audio source</a>. As of API level 21 and above,
<a href="attributes.html">audio attributes</a> are preferred.
</dd>

<dt>AudioTrack</dt>
<dd>
Primary low-level client API for sending data to an audio output device such as
a speaker. The data is usually in PCM format. The API is defined at
<a href="http://developer.android.com/reference/android/media/AudioTrack.html">android.media.AudioTrack</a>.
</dd>

<dt>audio_utils</dt>
<dd>
Audio utility library for features such as PCM format conversion, WAV file I/O,
and
<a href="avoiding_pi.html#nonBlockingAlgorithms">non-blocking FIFO</a>, which is
largely independent of the Android platform.
</dd>

<dt>client</dt>
<dd>
Usually an application or app client. However, an AudioFlinger client can be a
thread running within the mediaserver system process, such as when playing media
decoded by a MediaPlayer object.
</dd>

<dt>HAL</dt>
<dd>
Hardware Abstraction Layer. HAL is a generic term in Android; in audio, it is a
layer between AudioFlinger and the kernel device driver with a C API (which
replaces the C++ libaudio).
</dd>

<dt>FastCapture</dt>
<dd>
Thread within AudioFlinger that sends audio data to lower latency fast tracks
and drives the input device when configured for reduced latency.
</dd>

<dt>FastMixer</dt>
<dd>
Thread within AudioFlinger that receives and mixes audio data from lower latency
fast tracks and drives the primary output device when configured for reduced
latency.
</dd>

<dt>fast track</dt>
<dd>
AudioTrack or AudioRecord client with lower latency but fewer features on some
devices and routes.
</dd>

<dt>MediaPlayer</dt>
<dd>
Higher-level client API than AudioTrack. Plays encoded content or content that
includes multimedia audio and video tracks.
</dd>

<dt>media.log</dt>
<dd>
AudioFlinger debugging feature available in custom builds only. Used for logging
audio events to a circular buffer where they can then be retroactively dumped
when needed.
</dd>

<dt>mediaserver</dt>
<dd>
Android system process that contains media-related services, including
AudioFlinger.
</dd>

<dt>NBAIO</dt>
<dd>
Non-blocking audio input/output. Abstraction for AudioFlinger ports. The term
can be misleading as some implementations of the NBAIO API support blocking. The
key implementations of NBAIO are for different types of pipes.
</dd>

<dt>normal mixer</dt>
<dd>
Thread within AudioFlinger that services most full-featured AudioTrack clients.
Directly drives an output device or feeds its sub-mix into FastMixer via a pipe.
</dd>

<dt>OpenSL ES</dt>
<dd>
Audio API standard by
<a href="http://www.khronos.org/">The Khronos Group</a>. Android versions since
API level 9 support a native audio API that is based on a subset of
<a href="http://www.khronos.org/opensles/">OpenSL ES 1.0.1</a>.
</dd>

<dt>silent mode</dt>
<dd>
User-settable feature to mute the phone ringer and notifications without
affecting media playback (music, videos, games) or alarms.
</dd>

<dt>SoundPool</dt>
<dd>
Higher-level client API than AudioTrack. Plays sampled audio clips. Useful for
triggering UI feedback, game sounds, etc. The API is defined at
<a href="http://developer.android.com/reference/android/media/SoundPool.html">android.media.SoundPool</a>.
</dd>

<dt>Stagefright</dt>
<dd>
See <a href="{@docRoot}devices/media.html">Media</a>.
</dd>

<dt>StateQueue</dt>
<dd>
Module within AudioFlinger responsible for synchronizing state among threads.
Whereas NBAIO is used to pass data, StateQueue is used to pass control
information.
</dd>

<dt>strategy</dt>
<dd>
Group of stream types with similar behavior. Used by the audio policy service.
</dd>

<dt>stream type</dt>
<dd>
Enumeration that expresses a use case for audio output. The audio policy
implementation uses the stream type, along with other parameters, to determine
volume and routing decisions. For a list of stream types, see
<a href="http://developer.android.com/reference/android/media/AudioManager.html">android.media.AudioManager</a>.
</dd>

<dt>tee sink</dt>
<dd>
See <a href="debugging.html#teeSink">Audio Debugging</a>.
</dd>

<dt>tinyalsa</dt>
<dd>
Small user-mode API above ALSA kernel with BSD license. Recommended for HAL
implementations.
</dd>

<dt>ToneGenerator</dt>
<dd>
Higher-level client API than AudioTrack. Plays dual-tone multi-frequency (DTMF)
signals. For details, refer to
<a href="http://en.wikipedia.org/wiki/Dual-tone_multi-frequency_signaling">Dual-tone
multi-frequency signaling</a> and the API definition at
<a href="http://developer.android.com/reference/android/media/ToneGenerator.html">android.media.ToneGenerator</a>.
</dd>

<dt>track</dt>
<dd>
Audio stream. Controlled by the AudioTrack or AudioRecord API.
</dd>

<dt>volume attenuation curve</dt>
<dd>
Device-specific mapping from a generic volume index to a specific attenuation
factor for a given output.
</dd>

<dt>volume index</dt>
<dd>
Unitless integer that expresses the desired relative volume of a stream. The
volume-related APIs of
<a href="http://developer.android.com/reference/android/media/AudioManager.html">android.media.AudioManager</a>
operate in volume indices rather than absolute attenuation factors.
</dd>

</dl>
