blob: 1e232b0c4e589f428a0b4d2290d242d85944c2e2 [file] [log] [blame]
Glenn Kasten963fd952013-04-18 17:26:23 -07001page.title=Audio Terminology
2@jd:body
3
Clay Murphybc92aea2014-10-16 10:13:18 -07004<!--
Clay Murphy5d83ab42014-09-09 17:29:09 -07005 Copyright 2014 The Android Open Source Project
Clay Murphybc92aea2014-10-16 10:13:18 -07006
7 Licensed under the Apache License, Version 2.0 (the "License");
8 you may not use this file except in compliance with the License.
9 You may obtain a copy of the License at
10
11 http://www.apache.org/licenses/LICENSE-2.0
12
13 Unless required by applicable law or agreed to in writing, software
14 distributed under the License is distributed on an "AS IS" BASIS,
15 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 See the License for the specific language governing permissions and
17 limitations under the License.
18-->
Glenn Kasten963fd952013-04-18 17:26:23 -070019<div id="qv-wrapper">
20 <div id="qv">
21 <h2>In this document</h2>
22 <ol id="auto-toc">
23 </ol>
24 </div>
25</div>
26
27<p>
28This document provides a glossary of audio-related terminology, including
29a list of widely used, generic terms and a list of terms that are specific
30to Android.
31</p>
32
33<h2 id="genericTerm">Generic Terms</h2>
34
35<p>
36These are audio terms that are widely used, with their conventional meanings.
37</p>
38
Glenn Kasten5df2d522013-09-27 11:50:35 -070039<h3 id="digitalAudioTerms">Digital Audio</h3>
40
Glenn Kasten963fd952013-04-18 17:26:23 -070041<dl>
42
Glenn Kasten298f3822013-06-12 17:17:36 -070043<dt>acoustics</dt>
44<dd>
45The study of the mechanical properties of sound, for example how the
46physical placement of transducers such as speakers and microphones on
47a device affects perceived audio quality.
48</dd>
49
Glenn Kasten5df2d522013-09-27 11:50:35 -070050<dt>attenuation</dt>
51<dd>
52A multiplicative factor less than or equal to 1.0,
53applied to an audio signal to decrease the signal level.
Glenn Kasten978bec82014-12-23 15:15:20 -080054Compare to "gain."
Glenn Kasten5df2d522013-09-27 11:50:35 -070055</dd>
56
Glenn Kasten628654f2015-02-05 13:06:10 -080057<dt>audiophile</dt>
58<dd>
59An <a href="http://en.wikipedia.org/wiki/Audiophile">audiophile</a>
60is an individual who is concerned with a superior music
61reproduction experience, especially someone willing to make tradeoffs
62(of expense, component size, room design, etc.) beyond what an ordinary
63person might choose.
64</dd>
65
Glenn Kasten963fd952013-04-18 17:26:23 -070066<dt>bits per sample or bit depth</dt>
67<dd>
68Number of bits of information per sample.
69</dd>
70
71<dt>channel</dt>
72<dd>
73A single stream of audio information, usually corresponding to one
74location of recording or playback.
75</dd>
76
Glenn Kasten5df2d522013-09-27 11:50:35 -070077<dt>downmixing</dt>
78<dd>
79To decrease the number of channels, e.g. from stereo to mono, or from 5.1 to stereo.
80This can be accomplished by dropping some channels, mixing channels, or more advanced signal processing.
81Simple mixing without attenuation or limiting has the potential for overflow and clipping.
Glenn Kasten978bec82014-12-23 15:15:20 -080082Compare to "upmixing."
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -070083</dd>
84
Glenn Kasten628654f2015-02-05 13:06:10 -080085<dt>DSD</dt>
86<dd>
87A proprietary audio encoding based on
88<a href="http://en.wikipedia.org/wiki/Pulse-density_modulation">pulse-density modulation</a>.
89Whereas PCM encodes a waveform as a sequence of individual audio samples of multiple bits,
90DSD encodes a waveform as a sequence of bits at a very high sample rate.
91For DSD, there is no concept of "samples" in the conventional PCM sense.
92Both PCM and DSD represent multiple channels by independent sequences.
93DSD is better suited to content distribution than as an internal representation for processing,
94as it can be difficult to apply traditional DSP algorithms to DSD.
95DSD is used in
96<a href="http://en.wikipedia.org/wiki/Super_Audio_CD">Super Audio CD</a>
97(SACD), and in DSD over PCM (DoP) for USB.
98See the Wikipedia article
99<a href="http://en.wikipedia.org/wiki/Direct_Stream_Digital">Digital Stream Digital<a/>
100for more information.
101</dd>
102
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700103<dt>duck</dt>
104<dd>
105To temporarily reduce the volume of one stream, when another stream
106becomes active. For example, if music is playing and a notification arrives,
107then the music stream could be ducked while the notification plays.
Glenn Kasten978bec82014-12-23 15:15:20 -0800108Compare to "mute."
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700109</dd>
Glenn Kasten5df2d522013-09-27 11:50:35 -0700110
Glenn Kasten963fd952013-04-18 17:26:23 -0700111<dt>frame</dt>
112<dd>
113A set of samples, one per channel, at a point in time.
114</dd>
115
116<dt>frames per buffer</dt>
117<dd>
118The number of frames handed from one module to the next at once;
119for example the audio HAL interface uses this concept.
120</dd>
121
Glenn Kasten5df2d522013-09-27 11:50:35 -0700122<dt>gain</dt>
123<dd>
124A multiplicative factor greater than or equal to 1.0,
125applied to an audio signal to increase the signal level.
Glenn Kasten978bec82014-12-23 15:15:20 -0800126Compare to "attenuation."
Glenn Kasten5df2d522013-09-27 11:50:35 -0700127</dd>
128
Glenn Kasten628654f2015-02-05 13:06:10 -0800129<dt>HD audio</dt>
130<dd>
131High Definition audio, a synonym for "high-resolution audio".
132Not to be confused with Intel High Definition Audio.
133</dd>
134
Glenn Kasten298f3822013-06-12 17:17:36 -0700135<dt>Hz</dt>
136<dd>
137The units for sample rate or frame rate.
138</dd>
139
Glenn Kasten628654f2015-02-05 13:06:10 -0800140<dt>high-resolution audio</dt>
141<dd>
142There is no standard definition, but high-resolution usually means any representation
143with greater bit-depth and sample rate than CDs (which are stereo 16-bit PCM at 44.1 kHz),
144and with no lossy data compression applied.
145Equivalent to "HD audio". See the Wikipedia article
146<a href="http://en.wikipedia.org/wiki/High-resolution_audio">high-resolution audio</a>
147for more information.
148</dd>
149
Glenn Kasten298f3822013-06-12 17:17:36 -0700150<dt>latency</dt>
151<dd>
152Time delay as a signal passes through a system.
153</dd>
154
Glenn Kasten628654f2015-02-05 13:06:10 -0800155<dt>lossless</dt>
156<dd>
157A <a href="http://en.wikipedia.org/wiki/Lossless_compression">lossless data compression</a>
158algorithm preserves bit accuracy across encoding and decoding.
159The result of decoding any previously encoded data is equivalent to the original data.
160Examples of lossless audio content distribution formats include
161<a href="http://en.wikipedia.org/wiki/Compact_disc">CDs</a>, PCM within
162<a href="http://en.wikipedia.org/wiki/WAV">WAV</a>, and
163<a href="http://en.wikipedia.org/wiki/FLAC">FLAC</a>.
164Note that the authoring process may reduce the bit depth or sample rate from that of the
165<a href="http://en.wikipedia.org/wiki/Audio_mastering">masters</a>.
166Distribution formats that preserve the resolution and bit accuracy of masters
167are the subject of "high-resolution audio".
168</dd>
169
Glenn Kasten963fd952013-04-18 17:26:23 -0700170<dt>mono</dt>
171<dd>
172One channel.
173</dd>
174
Glenn Kasten5df2d522013-09-27 11:50:35 -0700175<dt>multichannel</dt>
176<dd>
177See "surround sound".
178Strictly, since stereo is more than one channel, it is also "multi" channel.
179But that usage would be confusing.
180</dd>
181
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700182<dt>mute</dt>
183<dd>
184To (temporarily) force volume to be zero, independently from the usual volume controls.
185</dd>
186
Glenn Kasten978bec82014-12-23 15:15:20 -0800187<dt>overrun</dt>
188<dd>
189An audible <a href="http://en.wikipedia.org/wiki/Glitch">glitch</a> caused by failure
190to accept supplied data in sufficient time.
191See Wikipedia article <a href="http://en.wikipedia.org/wiki/Buffer_underrun">buffer underrun</a>
192[sic; the article for "buffer overrun" describes an unrelated failure].
193Compare to "underrun."
194</dd>
195
196<dt>panning</dt>
197<dd>
198To direct a signal to a desired position within a stereo or multi-channel field.
199</dd>
200
Glenn Kasten5df2d522013-09-27 11:50:35 -0700201<dt>PCM</dt>
202<dd>
203Pulse Code Modulation, the most common low-level encoding of digital audio.
204The audio signal is sampled at a regular interval, called the sample rate,
205and then quantized to discrete values within a particular range depending on the bit depth.
206For example, for 16-bit PCM, the sample values are integers between -32768 and +32767.
207</dd>
208
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700209<dt>ramp</dt>
210<dd>
211To gradually increase or decrease the level of a particular audio parameter,
212for example volume or the strength of an effect.
213A volume ramp is commonly applied when pausing and resuming music, to avoid a hard audible transition.
214</dd>
215
Glenn Kasten963fd952013-04-18 17:26:23 -0700216<dt>sample</dt>
217<dd>
218A number representing the audio value for a single channel at a point in time.
219</dd>
220
221<dt>sample rate or frame rate</dt>
222<dd>
223Number of frames per second;
224note that "frame rate" is thus more accurate,
Clay Murphyc28f2372013-09-25 16:13:40 -0700225but "sample rate" is conventionally used to mean "frame rate."
Glenn Kasten963fd952013-04-18 17:26:23 -0700226</dd>
227
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700228<dt>sonification</dt>
229<dd>
230The use of sound to express feedback or information,
231for example touch sounds and keyboard sounds.
232</dd>
233
Glenn Kasten963fd952013-04-18 17:26:23 -0700234<dt>stereo</dt>
235<dd>
236Two channels.
237</dd>
238
Glenn Kasten5df2d522013-09-27 11:50:35 -0700239<dt>stereo widening</dt>
240<dd>
241An effect applied to a stereo signal, to make another stereo signal which sounds fuller and richer.
242The effect can also be applied to a mono signal, in which case it is a type of upmixing.
243</dd>
244
245<dt>surround sound</dt>
246<dd>
247Various techniques for increasing the ability of a listener to perceive
248sound position beyond stereo left and right.
249</dd>
250
Glenn Kasten978bec82014-12-23 15:15:20 -0800251<dt>underrun</dt>
252<dd>
253An audible <a href="http://en.wikipedia.org/wiki/Glitch">glitch</a> caused by failure
254to supply needed data in sufficient time.
255See Wikipedia article <a href="http://en.wikipedia.org/wiki/Buffer_underrun">buffer underrun</a>.
256Compare to "overrun."
257</dd>
258
Glenn Kasten5df2d522013-09-27 11:50:35 -0700259<dt>upmixing</dt>
260<dd>
261To increase the number of channels, e.g. from mono to stereo, or from stereo to surround sound.
262This can be accomplished by duplication, panning, or more advanced signal processing.
Glenn Kasten978bec82014-12-23 15:15:20 -0800263Compare to "downmixing."
Glenn Kasten795a9de2014-01-24 08:58:56 -0800264</dd>
Glenn Kasten963fd952013-04-18 17:26:23 -0700265
Glenn Kasten5df2d522013-09-27 11:50:35 -0700266<dt>virtualizer</dt>
267<dd>
268An effect that attempts to spatialize audio channels, such as trying to
269simulate more speakers, or give the illusion that various sound sources have position.
270</dd>
271
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700272<dt>volume</dt>
273<dd>
274Loudness, the subjective strength of an audio signal.
275</dd>
276
Glenn Kasten795a9de2014-01-24 08:58:56 -0800277</dl>
278
Glenn Kasten5df2d522013-09-27 11:50:35 -0700279<h3 id="hardwareTerms">Hardware and Accessories</h3>
280
281<p>
282These terms are related to audio hardware and accessories.
283</p>
284
285<h4 id="interDeviceTerms">Inter-device interconnect</h4>
286
287<p>
288These technologies connect audio and video components between devices,
289and are readily visible at the external connectors. The HAL implementor
290may need to be aware of these, as well as the end user.
291</p>
292
293<dl>
294
295<dt>Bluetooth</dt>
296<dd>
297A short range wireless technology.
298The major audio-related
Clay Murphydc85c742014-09-10 15:10:03 -0700299<a href="http://en.wikipedia.org/wiki/Bluetooth_profile">Bluetooth profiles</a>
Glenn Kasten5df2d522013-09-27 11:50:35 -0700300and
Clay Murphydc85c742014-09-10 15:10:03 -0700301<a href="http://en.wikipedia.org/wiki/Bluetooth_protocols">Bluetooth protocols</a>
Glenn Kasten5df2d522013-09-27 11:50:35 -0700302are described at these Wikipedia articles:
303
304<ul>
305
Clay Murphydc85c742014-09-10 15:10:03 -0700306<li><a href="http://en.wikipedia.org/wiki/Bluetooth_profile#Advanced_Audio_Distribution_Profile_.28A2DP.29">A2DP</a>
Glenn Kasten5df2d522013-09-27 11:50:35 -0700307for music
308</li>
309
Clay Murphydc85c742014-09-10 15:10:03 -0700310<li><a href="http://en.wikipedia.org/wiki/Bluetooth_protocols#Synchronous_connection-oriented_.28SCO.29_link">SCO</a>
Glenn Kasten5df2d522013-09-27 11:50:35 -0700311for telephony
312</li>
313
Glenn Kasten978bec82014-12-23 15:15:20 -0800314<li><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>
315</li>
316
Glenn Kasten5df2d522013-09-27 11:50:35 -0700317</ul>
318
319</dd>
320
321<dt>DisplayPort</dt>
322<dd>
323Digital display interface by VESA.
324</dd>
325
326<dt>HDMI</dt>
327<dd>
328High-Definition Multimedia Interface, an interface for transferring
329audio and video data. For mobile devices, either a micro-HDMI (type D) or MHL connector is used.
330</dd>
331
332<dt>MHL</dt>
333<dd>
334Mobile High-Definition Link is a mobile audio/video interface, often
335over micro-USB connector.
336</dd>
337
338<dt>phone connector</dt>
339<dd>
340A mini or sub-mini phone connector
341connects a device to wired headphones, headset, or line-level amplifier.
342</dd>
343
344<dt>SlimPort</dt>
345<dd>
346An adapter from micro-USB to HDMI.
347</dd>
348
349<dt>S/PDIF</dt>
350<dd>
351Sony/Philips Digital Interface Format is an interconnect for uncompressed PCM.
Clay Murphydc85c742014-09-10 15:10:03 -0700352See Wikipedia article <a href="http://en.wikipedia.org/wiki/S/PDIF">S/PDIF</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700353</dd>
354
355<dt>USB</dt>
356<dd>
357Universal Serial Bus.
Clay Murphydc85c742014-09-10 15:10:03 -0700358See Wikipedia article <a href="http://en.wikipedia.org/wiki/USB">USB</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700359</dd>
360
361</dl>
362
363<h4 id="intraDeviceTerms">Intra-device interconnect</h4>
364
365<p>
366These technologies connect internal audio components within a given
367device, and are not visible without disassembling the device. The HAL
368implementor may need to be aware of these, but not the end user.
369</p>
370
371See these Wikipedia articles:
372<ul>
Clay Murphydc85c742014-09-10 15:10:03 -0700373<li><a href="http://en.wikipedia.org/wiki/General-purpose_input/output">GPIO</a></li>
Glenn Kasten978bec82014-12-23 15:15:20 -0800374<li><a href="http://en.wikipedia.org/wiki/I%C2%B2C">I²C</a>, for control channel</li>
375<li><a href="http://en.wikipedia.org/wiki/I%C2%B2S">I²S</a>, for audio data</li>
Clay Murphydc85c742014-09-10 15:10:03 -0700376<li><a href="http://en.wikipedia.org/wiki/McASP">McASP</a></li>
377<li><a href="http://en.wikipedia.org/wiki/SLIMbus">SLIMbus</a></li>
378<li><a href="http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus">SPI</a></li>
Glenn Kasten5df2d522013-09-27 11:50:35 -0700379</ul>
380
381<h3 id="signalTerms">Audio Signal Path</h3>
382
383<p>
384These terms are related to the signal path that audio data follows from
385an application to the transducer, or vice-versa.
386</p>
387
Glenn Kasten795a9de2014-01-24 08:58:56 -0800388<dl>
389
Glenn Kasten5df2d522013-09-27 11:50:35 -0700390<dt>ADC</dt>
391<dd>
392Analog to digital converter, a module that converts an analog signal
393(continuous in both time and amplitude) to a digital signal (discrete in
394both time and amplitude). Conceptually, an ADC consists of a periodic
395sample-and-hold followed by a quantizer, although it does not have to
396be implemented that way. An ADC is usually preceded by a low-pass filter
397to remove any high frequency components that are not representable using
398the desired sample rate. See Wikipedia article
Glenn Kastenff257d42014-11-10 16:29:03 -0800399<a href="http://en.wikipedia.org/wiki/Analog-to-digital_converter">Analog-to-digital converter</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700400</dd>
401
402<dt>AP</dt>
403<dd>
404Application processor, the main general-purpose computer on a mobile device.
405</dd>
406
407<dt>codec</dt>
408<dd>
409Coder-decoder, a module that encodes and/or decodes an audio signal
410from one representation to another. Typically this is analog to PCM, or PCM to analog.
411Strictly, the term "codec" is reserved for modules that both encode and decode,
412however it can also more loosely refer to only one of these.
413See Wikipedia article
Clay Murphydc85c742014-09-10 15:10:03 -0700414<a href="http://en.wikipedia.org/wiki/Audio_codec">Audio codec</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700415</dd>
416
417<dt>DAC</dt>
418<dd>
419Digital to analog converter, a module that converts a digital signal
420(discrete in both time and amplitude) to an analog signal
421(continuous in both time and amplitude). A DAC is usually followed by
422a low-pass filter to remove any high frequency components introduced
423by digital quantization.
424See Wikipedia article
Clay Murphydc85c742014-09-10 15:10:03 -0700425<a href="http://en.wikipedia.org/wiki/Digital-to-analog_converter">Digital-to-analog converter</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700426</dd>
427
428<dt>DSP</dt>
429<dd>
430Digital Signal Processor, an optional component which is typically located
431after the application processor (for output), or before the application processor (for input).
432The primary purpose of a DSP is to off-load the application processor,
433and provide signal processing features at a lower power cost.
434</dd>
435
436<dt>PDM</dt>
437<dd>
438Pulse-density modulation
439is a form of modulation used to represent an analog signal by a digital signal,
440where the relative density of 1s versus 0s indicates the signal level.
441It is commonly used by digital to analog converters.
442See Wikipedia article
Clay Murphydc85c742014-09-10 15:10:03 -0700443<a href="http://en.wikipedia.org/wiki/Pulse-density_modulation">Pulse-density modulation</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700444</dd>
445
446<dt>PWM</dt>
447<dd>
448Pulse-width modulation
449is a form of modulation used to represent an analog signal by a digital signal,
450where the relative width of a digital pulse indicates the signal level.
451It is commonly used by analog to digital converters.
452See Wikipedia article
Clay Murphydc85c742014-09-10 15:10:03 -0700453<a href="http://en.wikipedia.org/wiki/Pulse-width_modulation">Pulse-width modulation</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700454</dd>
455
Glenn Kasten978bec82014-12-23 15:15:20 -0800456<dt>transducer</dt>
457<dd>
458A transducer converts variations in physical "real-world" quantities to electrical signals.
459In audio, the physical quantity is sound pressure,
460and the transducers are the loudspeaker and microphone.
461See Wikipedia article
462<a href="http://en.wikipedia.org/wiki/Transducer">Transducer</a>.
463</dd>
464
Glenn Kasten795a9de2014-01-24 08:58:56 -0800465</dl>
Glenn Kasten5df2d522013-09-27 11:50:35 -0700466
Clay Murphy5d83ab42014-09-09 17:29:09 -0700467<h3 id="srcTerms">Sample Rate Conversion</h3>
468
469<dl>
470
471<dt>downsample</dt>
472<dd>To resample, where sink sample rate &lt; source sample rate.</dd>
473
474<dt>Nyquist frequency</dt>
475<dd>
476The Nyquist frequency, equal to 1/2 of a given sample rate, is the
477maximum frequency component that can be represented by a discretized
478signal at that sample rate. For example, the human hearing range is
479typically assumed to extend up to approximately 20 kHz, and so a digital
480audio signal must have a sample rate of at least 40 kHz to represent that
481range. In practice, sample rates of 44.1 kHz and 48 kHz are commonly
482used, with Nyquist frequencies of 22.05 kHz and 24 kHz respectively.
483See
Glenn Kastenff257d42014-11-10 16:29:03 -0800484<a href="http://en.wikipedia.org/wiki/Nyquist_frequency">Nyquist frequency</a>
Clay Murphy5d83ab42014-09-09 17:29:09 -0700485and
Glenn Kastenff257d42014-11-10 16:29:03 -0800486<a href="http://en.wikipedia.org/wiki/Hearing_range">Hearing range</a>
Clay Murphy5d83ab42014-09-09 17:29:09 -0700487for more information.
488</dd>
489
490<dt>resampler</dt>
491<dd>Synonym for sample rate converter.</dd>
492
493<dt>resampling</dt>
494<dd>The process of converting sample rate.</dd>
495
496<dt>sample rate converter</dt>
497<dd>A module that resamples.</dd>
498
499<dt>sink</dt>
500<dd>The output of a resampler.</dd>
501
502<dt>source</dt>
503<dd>The input to a resampler.</dd>
504
505<dt>upsample</dt>
506<dd>To resample, where sink sample rate &gt; source sample rate.</dd>
507
508</dl>
509
Glenn Kasten963fd952013-04-18 17:26:23 -0700510<h2 id="androidSpecificTerms">Android-Specific Terms</h2>
511
512<p>
Clay Murphyc28f2372013-09-25 16:13:40 -0700513These are terms specific to the Android audio framework, or that
Glenn Kasten963fd952013-04-18 17:26:23 -0700514may have a special meaning within Android beyond their general meaning.
515</p>
516
517<dl>
518
519<dt>ALSA</dt>
520<dd>
521Advanced Linux Sound Architecture. As the name suggests, it is an audio
522framework primarily for Linux, but it has influenced other systems.
523See Wikipedia article
Clay Murphydc85c742014-09-10 15:10:03 -0700524<a href="http://en.wikipedia.org/wiki/Advanced_Linux_Sound_Architecture">ALSA</a>
Glenn Kasten963fd952013-04-18 17:26:23 -0700525for the general definition. As used within Android, it refers primarily
526to the kernel audio framework and drivers, not to the user-mode API. See
527tinyalsa.
528</dd>
529
Glenn Kasten298f3822013-06-12 17:17:36 -0700530<dt>AudioEffect</dt>
531<dd>
532An API and implementation framework for output (post-processing) effects
533and input (pre-processing) effects. The API is defined at
Clay Murphydc85c742014-09-10 15:10:03 -0700534<a href="http://developer.android.com/reference/android/media/audiofx/AudioEffect.html">android.media.audiofx.AudioEffect</a>.
Glenn Kasten298f3822013-06-12 17:17:36 -0700535</dd>
536
Glenn Kasten963fd952013-04-18 17:26:23 -0700537<dt>AudioFlinger</dt>
538<dd>
539The sound server implementation for Android. AudioFlinger
540runs within the mediaserver process. See Wikipedia article
Clay Murphydc85c742014-09-10 15:10:03 -0700541<a href="http://en.wikipedia.org/wiki/Sound_server">Sound server</a>
Glenn Kasten963fd952013-04-18 17:26:23 -0700542for the generic definition.
543</dd>
544
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700545<dt>audio focus</dt>
546<dd>
547A set of APIs for managing audio interactions across multiple independent apps.
548See <a href="http://developer.android.com/training/managing-audio/audio-focus.html">Managing Audio
549Focus</a> and the focus-related methods and constants of
550<a href="http://developer.android.com/reference/android/media/AudioManager.html">android.media.AudioManager</a>.
551</dd>
552
Glenn Kasten963fd952013-04-18 17:26:23 -0700553<dt>AudioMixer</dt>
554<dd>
555The module within AudioFlinger responsible for
556combining multiple tracks and applying attenuation
557(volume) and certain effects. The Wikipedia article
Clay Murphydc85c742014-09-10 15:10:03 -0700558<a href="http://en.wikipedia.org/wiki/Audio_mixing_(recorded_music)">Audio mixing (recorded music)</a>
Glenn Kasten963fd952013-04-18 17:26:23 -0700559may be useful for understanding the generic
560concept. But that article describes a mixer more as a hardware device
561or a software application, rather than a software module within a system.
562</dd>
563
Glenn Kasten5df2d522013-09-27 11:50:35 -0700564<dt>audio policy</dt>
565<dd>
566Service responsible for all actions that require a policy decision
567to be made first, such as opening a new I/O stream, re-routing after a
Glenn Kastenff257d42014-11-10 16:29:03 -0800568change, and stream volume management.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700569</dd>
570
Glenn Kasten963fd952013-04-18 17:26:23 -0700571<dt>AudioRecord</dt>
572<dd>
573The primary low-level client API for receiving data from an audio
Clay Murphyc28f2372013-09-25 16:13:40 -0700574input device such as microphone. The data is usually in pulse-code modulation
575(PCM) format.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700576The API is defined at
Clay Murphydc85c742014-09-10 15:10:03 -0700577<a href="http://developer.android.com/reference/android/media/AudioRecord.html">android.media.AudioRecord</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700578</dd>
Glenn Kasten963fd952013-04-18 17:26:23 -0700579
580<dt>AudioResampler</dt>
581<dd>
Glenn Kasten46ac61c2014-01-24 08:59:11 -0800582The module within AudioFlinger responsible for
Clay Murphy714cd072014-12-01 13:07:52 -0800583<a href="src.html">sample rate conversion</a>.
Glenn Kasten963fd952013-04-18 17:26:23 -0700584</dd>
585
Glenn Kasten963fd952013-04-18 17:26:23 -0700586<dt>AudioTrack</dt>
587<dd>
588The primary low-level client API for sending data to an audio output
589device such as a speaker. The data is usually in PCM format.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700590The API is defined at
Clay Murphydc85c742014-09-10 15:10:03 -0700591<a href="http://developer.android.com/reference/android/media/AudioTrack.html">android.media.AudioTrack</a>.
Glenn Kasten963fd952013-04-18 17:26:23 -0700592</dd>
593
Glenn Kasten73512002015-01-15 10:06:31 -0800594<dt>audio_utils</dt>
595<dd>
596An audio utility library for features such as PCM format conversion, WAV file I/O, and
597<a href="avoiding_pi.html#nonBlockingAlgorithms">non-blocking FIFO</a>,
598which is largely independent of the Android platform.
599</dd>
600
Glenn Kasten963fd952013-04-18 17:26:23 -0700601<dt>client</dt>
602<dd>
603Usually same as application or app, but sometimes the "client" of
604AudioFlinger is actually a thread running within the mediaserver system
605process. An example of that is when playing media that is decoded by a
606MediaPlayer object.
607</dd>
608
609<dt>HAL</dt>
610<dd>
611Hardware Abstraction Layer. HAL is a generic term in Android. With
612respect to audio, it is a layer between AudioFlinger and the kernel
613device driver with a C API, which replaces the earlier C++ libaudio.
614</dd>
615
Glenn Kasten978bec82014-12-23 15:15:20 -0800616<dt>FastCapture</dt>
617<dd>
618A thread within AudioFlinger that sends audio data to lower latency "fast tracks"
619and drives the input device when configured for reduced latency.
620</dd>
621
Glenn Kasten963fd952013-04-18 17:26:23 -0700622<dt>FastMixer</dt>
623<dd>
Glenn Kasten978bec82014-12-23 15:15:20 -0800624A thread within AudioFlinger that receives and mixes audio data from lower latency "fast tracks"
625and drives the primary output device when configured for reduced latency.
Glenn Kasten963fd952013-04-18 17:26:23 -0700626</dd>
627
628<dt>fast track</dt>
629<dd>
Glenn Kasten978bec82014-12-23 15:15:20 -0800630An AudioTrack or AudioRecord client with lower latency but fewer features, on some devices and routes.
Glenn Kasten963fd952013-04-18 17:26:23 -0700631</dd>
632
633<dt>MediaPlayer</dt>
634<dd>
635A higher-level client API than AudioTrack, for playing either encoded
Clay Murphyc28f2372013-09-25 16:13:40 -0700636content, or content which includes multimedia audio and video tracks.
Glenn Kasten963fd952013-04-18 17:26:23 -0700637</dd>
638
Glenn Kasten298f3822013-06-12 17:17:36 -0700639<dt>media.log</dt>
640<dd>
641An AudioFlinger debugging feature, available in custom builds only,
642for logging audio events to a circular buffer where they can then be
643dumped retroactively when needed.
644</dd>
645
Glenn Kasten963fd952013-04-18 17:26:23 -0700646<dt>mediaserver</dt>
647<dd>
648An Android system process that contains a number of media-related
649services, including AudioFlinger.
650</dd>
651
652<dt>NBAIO</dt>
653<dd>
654An abstraction for "non-blocking" audio input/output ports used within
655AudioFlinger. The name can be misleading, as some implementations of
656the NBAIO API actually do support blocking. The key implementations of
657NBAIO are for pipes of various kinds.
658</dd>
659
660<dt>normal mixer</dt>
661<dd>
662A thread within AudioFlinger that services most full-featured
663AudioTrack clients, and either directly drives an output device or feeds
Clay Murphyc28f2372013-09-25 16:13:40 -0700664its sub-mix into FastMixer via a pipe.
Glenn Kasten963fd952013-04-18 17:26:23 -0700665</dd>
666
667<dt>OpenSL ES</dt>
668<dd>
Glenn Kasten978bec82014-12-23 15:15:20 -0800669An audio API standard by
670<a href="http://www.khronos.org/">The Khronos Group</a>. Android versions since
671API level 9 support a native audio API that is based on a subset of
672<a href="http://www.khronos.org/opensles/">OpenSL ES 1.0.1</a>.
Glenn Kasten963fd952013-04-18 17:26:23 -0700673</dd>
674
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700675<dt>silent mode</dt>
676<dd>
677A user-settable feature to mute the phone ringer and notifications,
678without affecting media playback (music, videos, games) or alarms.
679</dd>
680
Glenn Kasten5df2d522013-09-27 11:50:35 -0700681<dt>SoundPool</dt>
682<dd>
683A higher-level client API than AudioTrack, used for playing sampled
684audio clips. It is useful for triggering UI feedback, game sounds, etc.
685The API is defined at
Clay Murphydc85c742014-09-10 15:10:03 -0700686<a href="http://developer.android.com/reference/android/media/SoundPool.html">android.media.SoundPool</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700687</dd>
Glenn Kasten5df2d522013-09-27 11:50:35 -0700688
689<dt>Stagefright</dt>
690<dd>
691See <a href="{@docRoot}devices/media.html">Media</a>.
692</dd>
693
Glenn Kasten963fd952013-04-18 17:26:23 -0700694<dt>StateQueue</dt>
695<dd>
696A module within AudioFlinger responsible for synchronizing state
697among threads. Whereas NBAIO is used to pass data, StateQueue is used
698to pass control information.
699</dd>
700
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700701<dt>strategy</dt>
702<dd>
703A grouping of stream types with similar behavior, used by the audio policy service.
704</dd>
705
706<dt>stream type</dt>
707<dd>
708An enumeration that expresses a use case for audio output.
709The audio policy implementation uses the stream type, along with other parameters,
710to determine volume and routing decisions.
711Specific stream types are listed at
712<a href="http://developer.android.com/reference/android/media/AudioManager.html">android.media.AudioManager</a>.
713</dd>
714
Glenn Kasten298f3822013-06-12 17:17:36 -0700715<dt>tee sink</dt>
716<dd>
Glenn Kasten37784a52014-02-03 11:57:33 -0800717See the separate article on tee sink in
Clay Murphy714cd072014-12-01 13:07:52 -0800718<a href="debugging.html#teeSink">Audio Debugging</a>.
Glenn Kasten298f3822013-06-12 17:17:36 -0700719</dd>
720
Glenn Kasten963fd952013-04-18 17:26:23 -0700721<dt>tinyalsa</dt>
722<dd>
723A small user-mode API above ALSA kernel with BSD license, recommended
Clay Murphyc28f2372013-09-25 16:13:40 -0700724for use in HAL implementations.
Glenn Kasten963fd952013-04-18 17:26:23 -0700725</dd>
726
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700727<dt>ToneGenerator</dt>
728<dd>
729A higher-level client API than AudioTrack, used for playing DTMF signals.
730See the Wikipedia article
Clay Murphydc85c742014-09-10 15:10:03 -0700731<a href="http://en.wikipedia.org/wiki/Dual-tone_multi-frequency_signaling">Dual-tone multi-frequency signaling</a>,
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700732and the API definition at
Clay Murphydc85c742014-09-10 15:10:03 -0700733<a href="http://developer.android.com/reference/android/media/ToneGenerator.html">android.media.ToneGenerator</a>.
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700734</dd>
735
Glenn Kasten963fd952013-04-18 17:26:23 -0700736<dt>track</dt>
737<dd>
Glenn Kastenff257d42014-11-10 16:29:03 -0800738An audio stream, controlled by the AudioTrack or AudioRecord API.
Glenn Kasten963fd952013-04-18 17:26:23 -0700739</dd>
740
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700741<dt>volume attenuation curve</dt>
742<dd>
743A device-specific mapping from a generic volume index to a particular attenuation factor
744for a given output.
745</dd>
746
747<dt>volume index</dt>
748<dd>
749A unitless integer that expresses the desired relative volume of a stream.
750The volume-related APIs of
751<a href="http://developer.android.com/reference/android/media/AudioManager.html">android.media.AudioManager</a>
752operate in volume indices rather than absolute attenuation factors.
753</dd>
754
Glenn Kasten963fd952013-04-18 17:26:23 -0700755</dl>