blob: 53c719cce65ee301b5b76b18f8e274cb4d2e2160 [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 Kasten963fd952013-04-18 17:26:23 -070057<dt>bits per sample or bit depth</dt>
58<dd>
59Number of bits of information per sample.
60</dd>
61
62<dt>channel</dt>
63<dd>
64A single stream of audio information, usually corresponding to one
65location of recording or playback.
66</dd>
67
Glenn Kasten5df2d522013-09-27 11:50:35 -070068<dt>downmixing</dt>
69<dd>
70To decrease the number of channels, e.g. from stereo to mono, or from 5.1 to stereo.
71This can be accomplished by dropping some channels, mixing channels, or more advanced signal processing.
72Simple mixing without attenuation or limiting has the potential for overflow and clipping.
Glenn Kasten978bec82014-12-23 15:15:20 -080073Compare to "upmixing."
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -070074</dd>
75
76<dt>duck</dt>
77<dd>
78To temporarily reduce the volume of one stream, when another stream
79becomes active. For example, if music is playing and a notification arrives,
80then the music stream could be ducked while the notification plays.
Glenn Kasten978bec82014-12-23 15:15:20 -080081Compare to "mute."
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -070082</dd>
Glenn Kasten5df2d522013-09-27 11:50:35 -070083
Glenn Kastene158b8e2015-02-06 09:48:11 -080084<dt>FIFO</dt>
85<dd>
86A hardware module or software data structure that implements
87<a href="http://en.wikipedia.org/wiki/FIFO">First In, First Out</a>
88queueing of data. In the context of audio, the data stored in the queue
89are typically audio frames. A FIFO can be implemented by a
90<a href="http://en.wikipedia.org/wiki/Circular_buffer">circular buffer</a>.
91</dd>
92
Glenn Kasten963fd952013-04-18 17:26:23 -070093<dt>frame</dt>
94<dd>
95A set of samples, one per channel, at a point in time.
96</dd>
97
98<dt>frames per buffer</dt>
99<dd>
100The number of frames handed from one module to the next at once;
101for example the audio HAL interface uses this concept.
102</dd>
103
Glenn Kasten5df2d522013-09-27 11:50:35 -0700104<dt>gain</dt>
105<dd>
106A multiplicative factor greater than or equal to 1.0,
107applied to an audio signal to increase the signal level.
Glenn Kasten978bec82014-12-23 15:15:20 -0800108Compare to "attenuation."
Glenn Kasten5df2d522013-09-27 11:50:35 -0700109</dd>
110
Glenn Kasten298f3822013-06-12 17:17:36 -0700111<dt>Hz</dt>
112<dd>
113The units for sample rate or frame rate.
114</dd>
115
116<dt>latency</dt>
117<dd>
118Time delay as a signal passes through a system.
119</dd>
120
Glenn Kastene158b8e2015-02-06 09:48:11 -0800121<dt>lossless</dt>
122<dd>
123A <a href="http://en.wikipedia.org/wiki/Lossless_compression">lossless data compression</a>
124algorithm preserves bit accuracy across encoding and decoding.
125The result of decoding any previously encoded data is equivalent to the original data.
126Examples of lossless audio content distribution formats include
127<a href="http://en.wikipedia.org/wiki/Compact_disc">CDs</a>, PCM within
128<a href="http://en.wikipedia.org/wiki/WAV">WAV</a>, and
129<a href="http://en.wikipedia.org/wiki/FLAC">FLAC</a>.
130Note that the authoring process may reduce the bit depth or sample rate from that of the
131<a href="http://en.wikipedia.org/wiki/Audio_mastering">masters</a>.
132Distribution formats that preserve the resolution and bit accuracy of masters
133are the subject of "high-resolution audio".
134</dd>
135
136<dt>lossy</dt>
137<dd>
138A <a href="http://en.wikipedia.org/wiki/Lossy_compression">lossy data compression</a>
139algorithm attempts to preserve the most important features of media across
140encoding and decoding. The result of decoding any previously encoded
141data is perceptually similar to the original data, but is not identical.
142Examples of lossy audio compression algorithms include MP3 and AAC.
143As analog values are from a continuous domain, whereas digital values are discrete,
144ADC and DAC are lossy conversions with respect to amplitude. See also "transparency."
145</dd>
146
Glenn Kasten963fd952013-04-18 17:26:23 -0700147<dt>mono</dt>
148<dd>
149One channel.
150</dd>
151
Glenn Kasten5df2d522013-09-27 11:50:35 -0700152<dt>multichannel</dt>
153<dd>
154See "surround sound".
155Strictly, since stereo is more than one channel, it is also "multi" channel.
156But that usage would be confusing.
157</dd>
158
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700159<dt>mute</dt>
160<dd>
161To (temporarily) force volume to be zero, independently from the usual volume controls.
162</dd>
163
Glenn Kasten978bec82014-12-23 15:15:20 -0800164<dt>overrun</dt>
165<dd>
166An audible <a href="http://en.wikipedia.org/wiki/Glitch">glitch</a> caused by failure
167to accept supplied data in sufficient time.
168See Wikipedia article <a href="http://en.wikipedia.org/wiki/Buffer_underrun">buffer underrun</a>
169[sic; the article for "buffer overrun" describes an unrelated failure].
170Compare to "underrun."
171</dd>
172
173<dt>panning</dt>
174<dd>
175To direct a signal to a desired position within a stereo or multi-channel field.
176</dd>
177
Glenn Kasten5df2d522013-09-27 11:50:35 -0700178<dt>PCM</dt>
179<dd>
180Pulse Code Modulation, the most common low-level encoding of digital audio.
181The audio signal is sampled at a regular interval, called the sample rate,
182and then quantized to discrete values within a particular range depending on the bit depth.
183For example, for 16-bit PCM, the sample values are integers between -32768 and +32767.
184</dd>
185
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700186<dt>ramp</dt>
187<dd>
188To gradually increase or decrease the level of a particular audio parameter,
189for example volume or the strength of an effect.
190A volume ramp is commonly applied when pausing and resuming music, to avoid a hard audible transition.
191</dd>
192
Glenn Kasten963fd952013-04-18 17:26:23 -0700193<dt>sample</dt>
194<dd>
195A number representing the audio value for a single channel at a point in time.
196</dd>
197
198<dt>sample rate or frame rate</dt>
199<dd>
200Number of frames per second;
201note that "frame rate" is thus more accurate,
Clay Murphyc28f2372013-09-25 16:13:40 -0700202but "sample rate" is conventionally used to mean "frame rate."
Glenn Kasten963fd952013-04-18 17:26:23 -0700203</dd>
204
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700205<dt>sonification</dt>
206<dd>
207The use of sound to express feedback or information,
208for example touch sounds and keyboard sounds.
209</dd>
210
Glenn Kasten963fd952013-04-18 17:26:23 -0700211<dt>stereo</dt>
212<dd>
213Two channels.
214</dd>
215
Glenn Kasten5df2d522013-09-27 11:50:35 -0700216<dt>stereo widening</dt>
217<dd>
218An effect applied to a stereo signal, to make another stereo signal which sounds fuller and richer.
219The effect can also be applied to a mono signal, in which case it is a type of upmixing.
220</dd>
221
222<dt>surround sound</dt>
223<dd>
224Various techniques for increasing the ability of a listener to perceive
225sound position beyond stereo left and right.
226</dd>
227
Glenn Kastene158b8e2015-02-06 09:48:11 -0800228<dt>transparency</dt>
229<dd>
230The ideal result of lossy data compression, as stated in the
231<a href="http://en.wikipedia.org/wiki/Transparency_%28data_compression%29">Transparency Wikipedia article</a>.
232A lossy data conversion is said to be transparent if it is perceptually indistinguishable from the
233original by a human subject.
234</dd>
235
Glenn Kasten978bec82014-12-23 15:15:20 -0800236<dt>underrun</dt>
237<dd>
238An audible <a href="http://en.wikipedia.org/wiki/Glitch">glitch</a> caused by failure
239to supply needed data in sufficient time.
240See Wikipedia article <a href="http://en.wikipedia.org/wiki/Buffer_underrun">buffer underrun</a>.
241Compare to "overrun."
242</dd>
243
Glenn Kasten5df2d522013-09-27 11:50:35 -0700244<dt>upmixing</dt>
245<dd>
246To increase the number of channels, e.g. from mono to stereo, or from stereo to surround sound.
247This can be accomplished by duplication, panning, or more advanced signal processing.
Glenn Kasten978bec82014-12-23 15:15:20 -0800248Compare to "downmixing."
Glenn Kasten795a9de2014-01-24 08:58:56 -0800249</dd>
Glenn Kasten963fd952013-04-18 17:26:23 -0700250
Glenn Kasten5df2d522013-09-27 11:50:35 -0700251<dt>virtualizer</dt>
252<dd>
253An effect that attempts to spatialize audio channels, such as trying to
254simulate more speakers, or give the illusion that various sound sources have position.
255</dd>
256
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700257<dt>volume</dt>
258<dd>
259Loudness, the subjective strength of an audio signal.
260</dd>
261
Glenn Kasten795a9de2014-01-24 08:58:56 -0800262</dl>
263
Glenn Kasten5df2d522013-09-27 11:50:35 -0700264<h3 id="hardwareTerms">Hardware and Accessories</h3>
265
266<p>
267These terms are related to audio hardware and accessories.
268</p>
269
270<h4 id="interDeviceTerms">Inter-device interconnect</h4>
271
272<p>
273These technologies connect audio and video components between devices,
274and are readily visible at the external connectors. The HAL implementor
275may need to be aware of these, as well as the end user.
276</p>
277
278<dl>
279
280<dt>Bluetooth</dt>
281<dd>
282A short range wireless technology.
283The major audio-related
Clay Murphydc85c742014-09-10 15:10:03 -0700284<a href="http://en.wikipedia.org/wiki/Bluetooth_profile">Bluetooth profiles</a>
Glenn Kasten5df2d522013-09-27 11:50:35 -0700285and
Clay Murphydc85c742014-09-10 15:10:03 -0700286<a href="http://en.wikipedia.org/wiki/Bluetooth_protocols">Bluetooth protocols</a>
Glenn Kasten5df2d522013-09-27 11:50:35 -0700287are described at these Wikipedia articles:
288
289<ul>
290
Clay Murphydc85c742014-09-10 15:10:03 -0700291<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 -0700292for music
293</li>
294
Clay Murphydc85c742014-09-10 15:10:03 -0700295<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 -0700296for telephony
297</li>
298
Glenn Kasten978bec82014-12-23 15:15:20 -0800299<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>
300</li>
301
Glenn Kasten5df2d522013-09-27 11:50:35 -0700302</ul>
303
304</dd>
305
306<dt>DisplayPort</dt>
307<dd>
308Digital display interface by VESA.
309</dd>
310
311<dt>HDMI</dt>
312<dd>
313High-Definition Multimedia Interface, an interface for transferring
314audio and video data. For mobile devices, either a micro-HDMI (type D) or MHL connector is used.
315</dd>
316
Glenn Kastene158b8e2015-02-06 09:48:11 -0800317<dt>Intel HDA</dt>
318<dd>
319<a href="http://en.wikipedia.org/wiki/Intel_High_Definition_Audio">Intel High Definition Audio</a>
320(commonly shortened to HDA) is a specification for, among other things, a front-panel connector.
321Not to be confused with generic "high-definition audio" or "high-resolution audio."
322</dd>
323
Glenn Kasten5df2d522013-09-27 11:50:35 -0700324<dt>MHL</dt>
325<dd>
326Mobile High-Definition Link is a mobile audio/video interface, often
327over micro-USB connector.
328</dd>
329
330<dt>phone connector</dt>
331<dd>
332A mini or sub-mini phone connector
333connects a device to wired headphones, headset, or line-level amplifier.
334</dd>
335
336<dt>SlimPort</dt>
337<dd>
338An adapter from micro-USB to HDMI.
339</dd>
340
341<dt>S/PDIF</dt>
342<dd>
343Sony/Philips Digital Interface Format is an interconnect for uncompressed PCM.
Clay Murphydc85c742014-09-10 15:10:03 -0700344See Wikipedia article <a href="http://en.wikipedia.org/wiki/S/PDIF">S/PDIF</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700345</dd>
346
Glenn Kastene158b8e2015-02-06 09:48:11 -0800347<dt>Thunderbolt</dt>
348<dd>
349<a href="http://en.wikipedia.org/wiki/Thunderbolt_%28interface%29">Thunderbolt</a>
350is a multimedia interface that competes with USB and HDMI for connecting to high-end peripherals.
351</dd>
352
Glenn Kasten5df2d522013-09-27 11:50:35 -0700353<dt>USB</dt>
354<dd>
355Universal Serial Bus.
Clay Murphydc85c742014-09-10 15:10:03 -0700356See Wikipedia article <a href="http://en.wikipedia.org/wiki/USB">USB</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700357</dd>
358
359</dl>
360
361<h4 id="intraDeviceTerms">Intra-device interconnect</h4>
362
363<p>
364These technologies connect internal audio components within a given
365device, and are not visible without disassembling the device. The HAL
366implementor may need to be aware of these, but not the end user.
367</p>
368
Glenn Kastene158b8e2015-02-06 09:48:11 -0800369<p>
Glenn Kasten5df2d522013-09-27 11:50:35 -0700370See these Wikipedia articles:
Glenn Kastene158b8e2015-02-06 09:48:11 -0800371</p>
Glenn Kasten5df2d522013-09-27 11:50:35 -0700372<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 Kastene158b8e2015-02-06 09:48:11 -0800530<dt>audio device</dt>
531<dd>
532Any audio I/O end-point which is backed by a HAL implementation.
533</dd>
534
Glenn Kasten298f3822013-06-12 17:17:36 -0700535<dt>AudioEffect</dt>
536<dd>
537An API and implementation framework for output (post-processing) effects
538and input (pre-processing) effects. The API is defined at
Clay Murphydc85c742014-09-10 15:10:03 -0700539<a href="http://developer.android.com/reference/android/media/audiofx/AudioEffect.html">android.media.audiofx.AudioEffect</a>.
Glenn Kasten298f3822013-06-12 17:17:36 -0700540</dd>
541
Glenn Kasten963fd952013-04-18 17:26:23 -0700542<dt>AudioFlinger</dt>
543<dd>
544The sound server implementation for Android. AudioFlinger
545runs within the mediaserver process. See Wikipedia article
Clay Murphydc85c742014-09-10 15:10:03 -0700546<a href="http://en.wikipedia.org/wiki/Sound_server">Sound server</a>
Glenn Kasten963fd952013-04-18 17:26:23 -0700547for the generic definition.
548</dd>
549
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700550<dt>audio focus</dt>
551<dd>
552A set of APIs for managing audio interactions across multiple independent apps.
553See <a href="http://developer.android.com/training/managing-audio/audio-focus.html">Managing Audio
554Focus</a> and the focus-related methods and constants of
555<a href="http://developer.android.com/reference/android/media/AudioManager.html">android.media.AudioManager</a>.
556</dd>
557
Glenn Kasten963fd952013-04-18 17:26:23 -0700558<dt>AudioMixer</dt>
559<dd>
560The module within AudioFlinger responsible for
561combining multiple tracks and applying attenuation
562(volume) and certain effects. The Wikipedia article
Clay Murphydc85c742014-09-10 15:10:03 -0700563<a href="http://en.wikipedia.org/wiki/Audio_mixing_(recorded_music)">Audio mixing (recorded music)</a>
Glenn Kasten963fd952013-04-18 17:26:23 -0700564may be useful for understanding the generic
565concept. But that article describes a mixer more as a hardware device
566or a software application, rather than a software module within a system.
567</dd>
568
Glenn Kasten5df2d522013-09-27 11:50:35 -0700569<dt>audio policy</dt>
570<dd>
571Service responsible for all actions that require a policy decision
572to be made first, such as opening a new I/O stream, re-routing after a
Glenn Kastenff257d42014-11-10 16:29:03 -0800573change, and stream volume management.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700574</dd>
575
Glenn Kasten963fd952013-04-18 17:26:23 -0700576<dt>AudioRecord</dt>
577<dd>
578The primary low-level client API for receiving data from an audio
Clay Murphyc28f2372013-09-25 16:13:40 -0700579input device such as microphone. The data is usually in pulse-code modulation
580(PCM) format.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700581The API is defined at
Clay Murphydc85c742014-09-10 15:10:03 -0700582<a href="http://developer.android.com/reference/android/media/AudioRecord.html">android.media.AudioRecord</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700583</dd>
Glenn Kasten963fd952013-04-18 17:26:23 -0700584
585<dt>AudioResampler</dt>
586<dd>
Glenn Kasten46ac61c2014-01-24 08:59:11 -0800587The module within AudioFlinger responsible for
Clay Murphy714cd072014-12-01 13:07:52 -0800588<a href="src.html">sample rate conversion</a>.
Glenn Kasten963fd952013-04-18 17:26:23 -0700589</dd>
590
Glenn Kastene158b8e2015-02-06 09:48:11 -0800591<dt>audio source</dt>
592<dd>
593An <a href="http://developer.android.com/reference/android/media/MediaRecorder.AudioSource.html">audio source</a>
594is an enumeration of constants that indicates the desired use case for capturing audio input.
595As of API level 21 and above, <a href="attributes.html">audio attributes</a> are preferred.
596</dd>
597
Glenn Kasten963fd952013-04-18 17:26:23 -0700598<dt>AudioTrack</dt>
599<dd>
600The primary low-level client API for sending data to an audio output
601device such as a speaker. The data is usually in PCM format.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700602The API is defined at
Clay Murphydc85c742014-09-10 15:10:03 -0700603<a href="http://developer.android.com/reference/android/media/AudioTrack.html">android.media.AudioTrack</a>.
Glenn Kasten963fd952013-04-18 17:26:23 -0700604</dd>
605
Glenn Kasten73512002015-01-15 10:06:31 -0800606<dt>audio_utils</dt>
607<dd>
608An audio utility library for features such as PCM format conversion, WAV file I/O, and
609<a href="avoiding_pi.html#nonBlockingAlgorithms">non-blocking FIFO</a>,
610which is largely independent of the Android platform.
611</dd>
612
Glenn Kasten963fd952013-04-18 17:26:23 -0700613<dt>client</dt>
614<dd>
615Usually same as application or app, but sometimes the "client" of
616AudioFlinger is actually a thread running within the mediaserver system
617process. An example of that is when playing media that is decoded by a
618MediaPlayer object.
619</dd>
620
621<dt>HAL</dt>
622<dd>
623Hardware Abstraction Layer. HAL is a generic term in Android. With
624respect to audio, it is a layer between AudioFlinger and the kernel
625device driver with a C API, which replaces the earlier C++ libaudio.
626</dd>
627
Glenn Kasten978bec82014-12-23 15:15:20 -0800628<dt>FastCapture</dt>
629<dd>
630A thread within AudioFlinger that sends audio data to lower latency "fast tracks"
631and drives the input device when configured for reduced latency.
632</dd>
633
Glenn Kasten963fd952013-04-18 17:26:23 -0700634<dt>FastMixer</dt>
635<dd>
Glenn Kasten978bec82014-12-23 15:15:20 -0800636A thread within AudioFlinger that receives and mixes audio data from lower latency "fast tracks"
637and drives the primary output device when configured for reduced latency.
Glenn Kasten963fd952013-04-18 17:26:23 -0700638</dd>
639
640<dt>fast track</dt>
641<dd>
Glenn Kasten978bec82014-12-23 15:15:20 -0800642An AudioTrack or AudioRecord client with lower latency but fewer features, on some devices and routes.
Glenn Kasten963fd952013-04-18 17:26:23 -0700643</dd>
644
645<dt>MediaPlayer</dt>
646<dd>
647A higher-level client API than AudioTrack, for playing either encoded
Clay Murphyc28f2372013-09-25 16:13:40 -0700648content, or content which includes multimedia audio and video tracks.
Glenn Kasten963fd952013-04-18 17:26:23 -0700649</dd>
650
Glenn Kasten298f3822013-06-12 17:17:36 -0700651<dt>media.log</dt>
652<dd>
653An AudioFlinger debugging feature, available in custom builds only,
654for logging audio events to a circular buffer where they can then be
655dumped retroactively when needed.
656</dd>
657
Glenn Kasten963fd952013-04-18 17:26:23 -0700658<dt>mediaserver</dt>
659<dd>
660An Android system process that contains a number of media-related
661services, including AudioFlinger.
662</dd>
663
664<dt>NBAIO</dt>
665<dd>
666An abstraction for "non-blocking" audio input/output ports used within
667AudioFlinger. The name can be misleading, as some implementations of
668the NBAIO API actually do support blocking. The key implementations of
669NBAIO are for pipes of various kinds.
670</dd>
671
672<dt>normal mixer</dt>
673<dd>
674A thread within AudioFlinger that services most full-featured
675AudioTrack clients, and either directly drives an output device or feeds
Clay Murphyc28f2372013-09-25 16:13:40 -0700676its sub-mix into FastMixer via a pipe.
Glenn Kasten963fd952013-04-18 17:26:23 -0700677</dd>
678
679<dt>OpenSL ES</dt>
680<dd>
Glenn Kasten978bec82014-12-23 15:15:20 -0800681An audio API standard by
682<a href="http://www.khronos.org/">The Khronos Group</a>. Android versions since
683API level 9 support a native audio API that is based on a subset of
684<a href="http://www.khronos.org/opensles/">OpenSL ES 1.0.1</a>.
Glenn Kasten963fd952013-04-18 17:26:23 -0700685</dd>
686
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700687<dt>silent mode</dt>
688<dd>
689A user-settable feature to mute the phone ringer and notifications,
690without affecting media playback (music, videos, games) or alarms.
691</dd>
692
Glenn Kasten5df2d522013-09-27 11:50:35 -0700693<dt>SoundPool</dt>
694<dd>
695A higher-level client API than AudioTrack, used for playing sampled
696audio clips. It is useful for triggering UI feedback, game sounds, etc.
697The API is defined at
Clay Murphydc85c742014-09-10 15:10:03 -0700698<a href="http://developer.android.com/reference/android/media/SoundPool.html">android.media.SoundPool</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700699</dd>
Glenn Kasten5df2d522013-09-27 11:50:35 -0700700
701<dt>Stagefright</dt>
702<dd>
703See <a href="{@docRoot}devices/media.html">Media</a>.
704</dd>
705
Glenn Kasten963fd952013-04-18 17:26:23 -0700706<dt>StateQueue</dt>
707<dd>
708A module within AudioFlinger responsible for synchronizing state
709among threads. Whereas NBAIO is used to pass data, StateQueue is used
710to pass control information.
711</dd>
712
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700713<dt>strategy</dt>
714<dd>
715A grouping of stream types with similar behavior, used by the audio policy service.
716</dd>
717
718<dt>stream type</dt>
719<dd>
720An enumeration that expresses a use case for audio output.
721The audio policy implementation uses the stream type, along with other parameters,
722to determine volume and routing decisions.
723Specific stream types are listed at
724<a href="http://developer.android.com/reference/android/media/AudioManager.html">android.media.AudioManager</a>.
725</dd>
726
Glenn Kasten298f3822013-06-12 17:17:36 -0700727<dt>tee sink</dt>
728<dd>
Glenn Kasten37784a52014-02-03 11:57:33 -0800729See the separate article on tee sink in
Clay Murphy714cd072014-12-01 13:07:52 -0800730<a href="debugging.html#teeSink">Audio Debugging</a>.
Glenn Kasten298f3822013-06-12 17:17:36 -0700731</dd>
732
Glenn Kasten963fd952013-04-18 17:26:23 -0700733<dt>tinyalsa</dt>
734<dd>
735A small user-mode API above ALSA kernel with BSD license, recommended
Clay Murphyc28f2372013-09-25 16:13:40 -0700736for use in HAL implementations.
Glenn Kasten963fd952013-04-18 17:26:23 -0700737</dd>
738
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700739<dt>ToneGenerator</dt>
740<dd>
741A higher-level client API than AudioTrack, used for playing DTMF signals.
742See the Wikipedia article
Clay Murphydc85c742014-09-10 15:10:03 -0700743<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 -0700744and the API definition at
Clay Murphydc85c742014-09-10 15:10:03 -0700745<a href="http://developer.android.com/reference/android/media/ToneGenerator.html">android.media.ToneGenerator</a>.
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700746</dd>
747
Glenn Kasten963fd952013-04-18 17:26:23 -0700748<dt>track</dt>
749<dd>
Glenn Kastenff257d42014-11-10 16:29:03 -0800750An audio stream, controlled by the AudioTrack or AudioRecord API.
Glenn Kasten963fd952013-04-18 17:26:23 -0700751</dd>
752
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700753<dt>volume attenuation curve</dt>
754<dd>
755A device-specific mapping from a generic volume index to a particular attenuation factor
756for a given output.
757</dd>
758
759<dt>volume index</dt>
760<dd>
761A unitless integer that expresses the desired relative volume of a stream.
762The volume-related APIs of
763<a href="http://developer.android.com/reference/android/media/AudioManager.html">android.media.AudioManager</a>
764operate in volume indices rather than absolute attenuation factors.
765</dd>
766
Glenn Kasten963fd952013-04-18 17:26:23 -0700767</dl>