blob: fc711978d8e67c659a208b857dd41e818da1a858 [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>
Clay Murphyc9ea0002015-02-17 14:57:14 -080087Direct Stream Digital, a proprietary audio encoding based on
Glenn Kasten628654f2015-02-05 13:06:10 -080088<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>
Clay Murphyc9ea0002015-02-17 14:57:14 -080097(SACD) and in DSD over PCM (DoP) for USB.
Glenn Kasten628654f2015-02-05 13:06:10 -080098See 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 Kastene158b8e2015-02-06 09:48:11 -0800111<dt>FIFO</dt>
112<dd>
113A hardware module or software data structure that implements
114<a href="http://en.wikipedia.org/wiki/FIFO">First In, First Out</a>
115queueing of data. In the context of audio, the data stored in the queue
116are typically audio frames. A FIFO can be implemented by a
117<a href="http://en.wikipedia.org/wiki/Circular_buffer">circular buffer</a>.
118</dd>
119
Glenn Kasten963fd952013-04-18 17:26:23 -0700120<dt>frame</dt>
121<dd>
122A set of samples, one per channel, at a point in time.
123</dd>
124
125<dt>frames per buffer</dt>
126<dd>
127The number of frames handed from one module to the next at once;
128for example the audio HAL interface uses this concept.
129</dd>
130
Glenn Kasten5df2d522013-09-27 11:50:35 -0700131<dt>gain</dt>
132<dd>
133A multiplicative factor greater than or equal to 1.0,
134applied to an audio signal to increase the signal level.
Glenn Kasten978bec82014-12-23 15:15:20 -0800135Compare to "attenuation."
Glenn Kasten5df2d522013-09-27 11:50:35 -0700136</dd>
137
Glenn Kasten628654f2015-02-05 13:06:10 -0800138<dt>HD audio</dt>
139<dd>
Clay Murphyc9ea0002015-02-17 14:57:14 -0800140High-Definition audio, a synonym for "high-resolution audio."
Glenn Kasten628654f2015-02-05 13:06:10 -0800141Not to be confused with Intel High Definition Audio.
142</dd>
143
Glenn Kasten298f3822013-06-12 17:17:36 -0700144<dt>Hz</dt>
145<dd>
146The units for sample rate or frame rate.
147</dd>
148
Glenn Kasten628654f2015-02-05 13:06:10 -0800149<dt>high-resolution audio</dt>
150<dd>
151There is no standard definition, but high-resolution usually means any representation
152with greater bit-depth and sample rate than CDs (which are stereo 16-bit PCM at 44.1 kHz),
153and with no lossy data compression applied.
Glenn Kastene064b462015-02-11 08:53:52 -0800154Equivalent to "HD audio." See the Wikipedia article
Glenn Kasten628654f2015-02-05 13:06:10 -0800155<a href="http://en.wikipedia.org/wiki/High-resolution_audio">high-resolution audio</a>
156for more information.
157</dd>
158
Glenn Kasten298f3822013-06-12 17:17:36 -0700159<dt>latency</dt>
160<dd>
161Time delay as a signal passes through a system.
162</dd>
163
Glenn Kasten628654f2015-02-05 13:06:10 -0800164<dt>lossless</dt>
165<dd>
166A <a href="http://en.wikipedia.org/wiki/Lossless_compression">lossless data compression</a>
167algorithm preserves bit accuracy across encoding and decoding.
168The result of decoding any previously encoded data is equivalent to the original data.
169Examples of lossless audio content distribution formats include
170<a href="http://en.wikipedia.org/wiki/Compact_disc">CDs</a>, PCM within
171<a href="http://en.wikipedia.org/wiki/WAV">WAV</a>, and
172<a href="http://en.wikipedia.org/wiki/FLAC">FLAC</a>.
173Note that the authoring process may reduce the bit depth or sample rate from that of the
174<a href="http://en.wikipedia.org/wiki/Audio_mastering">masters</a>.
175Distribution formats that preserve the resolution and bit accuracy of masters
Glenn Kastene064b462015-02-11 08:53:52 -0800176are the subject of "high-resolution audio."
Glenn Kasten628654f2015-02-05 13:06:10 -0800177</dd>
178
Glenn Kastene158b8e2015-02-06 09:48:11 -0800179<dt>lossy</dt>
180<dd>
181A <a href="http://en.wikipedia.org/wiki/Lossy_compression">lossy data compression</a>
182algorithm attempts to preserve the most important features of media across
183encoding and decoding. The result of decoding any previously encoded
Clay Murphyc9ea0002015-02-17 14:57:14 -0800184data is perceptually similar to the original data, but it is not identical.
Glenn Kastene158b8e2015-02-06 09:48:11 -0800185Examples of lossy audio compression algorithms include MP3 and AAC.
186As analog values are from a continuous domain, whereas digital values are discrete,
187ADC and DAC are lossy conversions with respect to amplitude. See also "transparency."
188</dd>
189
Clay Murphy1b91d682015-02-20 19:41:21 +0000190<dt>lossless</dt>
191<dd>
192A <a href="http://en.wikipedia.org/wiki/Lossless_compression">lossless data compression</a>
193algorithm preserves bit accuracy across encoding and decoding.
194The result of decoding any previously encoded data is equivalent to the original data.
195Examples of lossless audio content distribution formats include
196<a href="http://en.wikipedia.org/wiki/Compact_disc">CDs</a>, PCM within
197<a href="http://en.wikipedia.org/wiki/WAV">WAV</a>, and
198<a href="http://en.wikipedia.org/wiki/FLAC">FLAC</a>.
199Note that the authoring process may reduce the bit depth or sample rate from that of the
200<a href="http://en.wikipedia.org/wiki/Audio_mastering">masters</a>.
201Distribution formats that preserve the resolution and bit accuracy of masters
202are the subject of "high-resolution audio".
203</dd>
204
Glenn Kasten963fd952013-04-18 17:26:23 -0700205<dt>mono</dt>
206<dd>
207One channel.
208</dd>
209
Glenn Kasten5df2d522013-09-27 11:50:35 -0700210<dt>multichannel</dt>
211<dd>
Glenn Kastene064b462015-02-11 08:53:52 -0800212See "surround sound."
Glenn Kasten5df2d522013-09-27 11:50:35 -0700213Strictly, since stereo is more than one channel, it is also "multi" channel.
214But that usage would be confusing.
215</dd>
216
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700217<dt>mute</dt>
218<dd>
219To (temporarily) force volume to be zero, independently from the usual volume controls.
220</dd>
221
Glenn Kasten978bec82014-12-23 15:15:20 -0800222<dt>overrun</dt>
223<dd>
224An audible <a href="http://en.wikipedia.org/wiki/Glitch">glitch</a> caused by failure
225to accept supplied data in sufficient time.
226See Wikipedia article <a href="http://en.wikipedia.org/wiki/Buffer_underrun">buffer underrun</a>
227[sic; the article for "buffer overrun" describes an unrelated failure].
228Compare to "underrun."
229</dd>
230
231<dt>panning</dt>
232<dd>
233To direct a signal to a desired position within a stereo or multi-channel field.
234</dd>
235
Glenn Kasten5df2d522013-09-27 11:50:35 -0700236<dt>PCM</dt>
237<dd>
238Pulse Code Modulation, the most common low-level encoding of digital audio.
239The audio signal is sampled at a regular interval, called the sample rate,
240and then quantized to discrete values within a particular range depending on the bit depth.
241For example, for 16-bit PCM, the sample values are integers between -32768 and +32767.
242</dd>
243
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700244<dt>ramp</dt>
245<dd>
246To gradually increase or decrease the level of a particular audio parameter,
247for example volume or the strength of an effect.
248A volume ramp is commonly applied when pausing and resuming music, to avoid a hard audible transition.
249</dd>
250
Glenn Kasten963fd952013-04-18 17:26:23 -0700251<dt>sample</dt>
252<dd>
253A number representing the audio value for a single channel at a point in time.
254</dd>
255
256<dt>sample rate or frame rate</dt>
257<dd>
258Number of frames per second;
259note that "frame rate" is thus more accurate,
Clay Murphyc28f2372013-09-25 16:13:40 -0700260but "sample rate" is conventionally used to mean "frame rate."
Glenn Kasten963fd952013-04-18 17:26:23 -0700261</dd>
262
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700263<dt>sonification</dt>
264<dd>
265The use of sound to express feedback or information,
266for example touch sounds and keyboard sounds.
267</dd>
268
Glenn Kasten963fd952013-04-18 17:26:23 -0700269<dt>stereo</dt>
270<dd>
271Two channels.
272</dd>
273
Glenn Kasten5df2d522013-09-27 11:50:35 -0700274<dt>stereo widening</dt>
275<dd>
276An effect applied to a stereo signal, to make another stereo signal which sounds fuller and richer.
277The effect can also be applied to a mono signal, in which case it is a type of upmixing.
278</dd>
279
280<dt>surround sound</dt>
281<dd>
282Various techniques for increasing the ability of a listener to perceive
283sound position beyond stereo left and right.
284</dd>
285
Glenn Kastene158b8e2015-02-06 09:48:11 -0800286<dt>transparency</dt>
287<dd>
288The ideal result of lossy data compression, as stated in the
Clay Murphyc9ea0002015-02-17 14:57:14 -0800289<a href="http://en.wikipedia.org/wiki/Transparency_%28data_compression%29">Transparency</a> Wikipedia article.
Glenn Kastene158b8e2015-02-06 09:48:11 -0800290A lossy data conversion is said to be transparent if it is perceptually indistinguishable from the
291original by a human subject.
292</dd>
293
Glenn Kasten978bec82014-12-23 15:15:20 -0800294<dt>underrun</dt>
295<dd>
296An audible <a href="http://en.wikipedia.org/wiki/Glitch">glitch</a> caused by failure
297to supply needed data in sufficient time.
298See Wikipedia article <a href="http://en.wikipedia.org/wiki/Buffer_underrun">buffer underrun</a>.
299Compare to "overrun."
300</dd>
301
Glenn Kasten5df2d522013-09-27 11:50:35 -0700302<dt>upmixing</dt>
303<dd>
304To increase the number of channels, e.g. from mono to stereo, or from stereo to surround sound.
305This can be accomplished by duplication, panning, or more advanced signal processing.
Glenn Kasten978bec82014-12-23 15:15:20 -0800306Compare to "downmixing."
Glenn Kasten795a9de2014-01-24 08:58:56 -0800307</dd>
Glenn Kasten963fd952013-04-18 17:26:23 -0700308
Glenn Kasten5df2d522013-09-27 11:50:35 -0700309<dt>virtualizer</dt>
310<dd>
311An effect that attempts to spatialize audio channels, such as trying to
312simulate more speakers, or give the illusion that various sound sources have position.
313</dd>
314
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700315<dt>volume</dt>
316<dd>
317Loudness, the subjective strength of an audio signal.
318</dd>
319
Glenn Kasten795a9de2014-01-24 08:58:56 -0800320</dl>
321
Glenn Kasten5df2d522013-09-27 11:50:35 -0700322<h3 id="hardwareTerms">Hardware and Accessories</h3>
323
324<p>
325These terms are related to audio hardware and accessories.
326</p>
327
328<h4 id="interDeviceTerms">Inter-device interconnect</h4>
329
330<p>
331These technologies connect audio and video components between devices,
332and are readily visible at the external connectors. The HAL implementor
333may need to be aware of these, as well as the end user.
334</p>
335
336<dl>
337
338<dt>Bluetooth</dt>
339<dd>
340A short range wireless technology.
341The major audio-related
Clay Murphydc85c742014-09-10 15:10:03 -0700342<a href="http://en.wikipedia.org/wiki/Bluetooth_profile">Bluetooth profiles</a>
Glenn Kasten5df2d522013-09-27 11:50:35 -0700343and
Clay Murphydc85c742014-09-10 15:10:03 -0700344<a href="http://en.wikipedia.org/wiki/Bluetooth_protocols">Bluetooth protocols</a>
Glenn Kasten5df2d522013-09-27 11:50:35 -0700345are described at these Wikipedia articles:
346
347<ul>
348
Clay Murphydc85c742014-09-10 15:10:03 -0700349<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 -0700350for music
351</li>
352
Clay Murphydc85c742014-09-10 15:10:03 -0700353<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 -0700354for telephony
355</li>
356
Glenn Kasten978bec82014-12-23 15:15:20 -0800357<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>
358</li>
359
Glenn Kasten5df2d522013-09-27 11:50:35 -0700360</ul>
361
362</dd>
363
364<dt>DisplayPort</dt>
365<dd>
366Digital display interface by VESA.
367</dd>
368
369<dt>HDMI</dt>
370<dd>
371High-Definition Multimedia Interface, an interface for transferring
372audio and video data. For mobile devices, either a micro-HDMI (type D) or MHL connector is used.
373</dd>
374
Glenn Kastene158b8e2015-02-06 09:48:11 -0800375<dt>Intel HDA</dt>
376<dd>
377<a href="http://en.wikipedia.org/wiki/Intel_High_Definition_Audio">Intel High Definition Audio</a>
378(commonly shortened to HDA) is a specification for, among other things, a front-panel connector.
379Not to be confused with generic "high-definition audio" or "high-resolution audio."
380</dd>
381
Glenn Kasten5df2d522013-09-27 11:50:35 -0700382<dt>MHL</dt>
383<dd>
384Mobile High-Definition Link is a mobile audio/video interface, often
385over micro-USB connector.
386</dd>
387
388<dt>phone connector</dt>
389<dd>
390A mini or sub-mini phone connector
391connects a device to wired headphones, headset, or line-level amplifier.
392</dd>
393
394<dt>SlimPort</dt>
395<dd>
396An adapter from micro-USB to HDMI.
397</dd>
398
399<dt>S/PDIF</dt>
400<dd>
401Sony/Philips Digital Interface Format is an interconnect for uncompressed PCM.
Clay Murphydc85c742014-09-10 15:10:03 -0700402See Wikipedia article <a href="http://en.wikipedia.org/wiki/S/PDIF">S/PDIF</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700403</dd>
404
Glenn Kastene158b8e2015-02-06 09:48:11 -0800405<dt>Thunderbolt</dt>
406<dd>
407<a href="http://en.wikipedia.org/wiki/Thunderbolt_%28interface%29">Thunderbolt</a>
408is a multimedia interface that competes with USB and HDMI for connecting to high-end peripherals.
409</dd>
410
Glenn Kasten5df2d522013-09-27 11:50:35 -0700411<dt>USB</dt>
412<dd>
413Universal Serial Bus.
Clay Murphydc85c742014-09-10 15:10:03 -0700414See Wikipedia article <a href="http://en.wikipedia.org/wiki/USB">USB</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700415</dd>
416
417</dl>
418
419<h4 id="intraDeviceTerms">Intra-device interconnect</h4>
420
421<p>
422These technologies connect internal audio components within a given
423device, and are not visible without disassembling the device. The HAL
424implementor may need to be aware of these, but not the end user.
425</p>
426
Glenn Kastene158b8e2015-02-06 09:48:11 -0800427<p>
Glenn Kasten5df2d522013-09-27 11:50:35 -0700428See these Wikipedia articles:
Glenn Kastene158b8e2015-02-06 09:48:11 -0800429</p>
Glenn Kasten5df2d522013-09-27 11:50:35 -0700430<ul>
Clay Murphydc85c742014-09-10 15:10:03 -0700431<li><a href="http://en.wikipedia.org/wiki/General-purpose_input/output">GPIO</a></li>
Glenn Kasten978bec82014-12-23 15:15:20 -0800432<li><a href="http://en.wikipedia.org/wiki/I%C2%B2C">I²C</a>, for control channel</li>
433<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 -0700434<li><a href="http://en.wikipedia.org/wiki/McASP">McASP</a></li>
435<li><a href="http://en.wikipedia.org/wiki/SLIMbus">SLIMbus</a></li>
436<li><a href="http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus">SPI</a></li>
Glenn Kasten5df2d522013-09-27 11:50:35 -0700437</ul>
438
439<h3 id="signalTerms">Audio Signal Path</h3>
440
441<p>
442These terms are related to the signal path that audio data follows from
443an application to the transducer, or vice-versa.
444</p>
445
Glenn Kasten795a9de2014-01-24 08:58:56 -0800446<dl>
447
Glenn Kasten5df2d522013-09-27 11:50:35 -0700448<dt>ADC</dt>
449<dd>
450Analog to digital converter, a module that converts an analog signal
451(continuous in both time and amplitude) to a digital signal (discrete in
452both time and amplitude). Conceptually, an ADC consists of a periodic
453sample-and-hold followed by a quantizer, although it does not have to
454be implemented that way. An ADC is usually preceded by a low-pass filter
455to remove any high frequency components that are not representable using
456the desired sample rate. See Wikipedia article
Glenn Kastenff257d42014-11-10 16:29:03 -0800457<a href="http://en.wikipedia.org/wiki/Analog-to-digital_converter">Analog-to-digital converter</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700458</dd>
459
460<dt>AP</dt>
461<dd>
462Application processor, the main general-purpose computer on a mobile device.
463</dd>
464
465<dt>codec</dt>
466<dd>
467Coder-decoder, a module that encodes and/or decodes an audio signal
468from one representation to another. Typically this is analog to PCM, or PCM to analog.
469Strictly, the term "codec" is reserved for modules that both encode and decode,
470however it can also more loosely refer to only one of these.
471See Wikipedia article
Clay Murphydc85c742014-09-10 15:10:03 -0700472<a href="http://en.wikipedia.org/wiki/Audio_codec">Audio codec</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700473</dd>
474
475<dt>DAC</dt>
476<dd>
477Digital to analog converter, a module that converts a digital signal
478(discrete in both time and amplitude) to an analog signal
479(continuous in both time and amplitude). A DAC is usually followed by
480a low-pass filter to remove any high frequency components introduced
481by digital quantization.
482See Wikipedia article
Clay Murphydc85c742014-09-10 15:10:03 -0700483<a href="http://en.wikipedia.org/wiki/Digital-to-analog_converter">Digital-to-analog converter</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700484</dd>
485
486<dt>DSP</dt>
487<dd>
488Digital Signal Processor, an optional component which is typically located
489after the application processor (for output), or before the application processor (for input).
490The primary purpose of a DSP is to off-load the application processor,
491and provide signal processing features at a lower power cost.
492</dd>
493
494<dt>PDM</dt>
495<dd>
496Pulse-density modulation
497is a form of modulation used to represent an analog signal by a digital signal,
498where the relative density of 1s versus 0s indicates the signal level.
499It is commonly used by digital to analog converters.
500See Wikipedia article
Clay Murphydc85c742014-09-10 15:10:03 -0700501<a href="http://en.wikipedia.org/wiki/Pulse-density_modulation">Pulse-density modulation</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700502</dd>
503
504<dt>PWM</dt>
505<dd>
506Pulse-width modulation
507is a form of modulation used to represent an analog signal by a digital signal,
508where the relative width of a digital pulse indicates the signal level.
509It is commonly used by analog to digital converters.
510See Wikipedia article
Clay Murphydc85c742014-09-10 15:10:03 -0700511<a href="http://en.wikipedia.org/wiki/Pulse-width_modulation">Pulse-width modulation</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700512</dd>
513
Glenn Kasten978bec82014-12-23 15:15:20 -0800514<dt>transducer</dt>
515<dd>
516A transducer converts variations in physical "real-world" quantities to electrical signals.
517In audio, the physical quantity is sound pressure,
518and the transducers are the loudspeaker and microphone.
519See Wikipedia article
520<a href="http://en.wikipedia.org/wiki/Transducer">Transducer</a>.
521</dd>
522
Glenn Kasten795a9de2014-01-24 08:58:56 -0800523</dl>
Glenn Kasten5df2d522013-09-27 11:50:35 -0700524
Clay Murphy5d83ab42014-09-09 17:29:09 -0700525<h3 id="srcTerms">Sample Rate Conversion</h3>
526
527<dl>
528
529<dt>downsample</dt>
530<dd>To resample, where sink sample rate &lt; source sample rate.</dd>
531
532<dt>Nyquist frequency</dt>
533<dd>
534The Nyquist frequency, equal to 1/2 of a given sample rate, is the
535maximum frequency component that can be represented by a discretized
536signal at that sample rate. For example, the human hearing range is
537typically assumed to extend up to approximately 20 kHz, and so a digital
538audio signal must have a sample rate of at least 40 kHz to represent that
539range. In practice, sample rates of 44.1 kHz and 48 kHz are commonly
540used, with Nyquist frequencies of 22.05 kHz and 24 kHz respectively.
541See
Glenn Kastenff257d42014-11-10 16:29:03 -0800542<a href="http://en.wikipedia.org/wiki/Nyquist_frequency">Nyquist frequency</a>
Clay Murphy5d83ab42014-09-09 17:29:09 -0700543and
Glenn Kastenff257d42014-11-10 16:29:03 -0800544<a href="http://en.wikipedia.org/wiki/Hearing_range">Hearing range</a>
Clay Murphy5d83ab42014-09-09 17:29:09 -0700545for more information.
546</dd>
547
548<dt>resampler</dt>
549<dd>Synonym for sample rate converter.</dd>
550
551<dt>resampling</dt>
552<dd>The process of converting sample rate.</dd>
553
554<dt>sample rate converter</dt>
555<dd>A module that resamples.</dd>
556
557<dt>sink</dt>
558<dd>The output of a resampler.</dd>
559
560<dt>source</dt>
561<dd>The input to a resampler.</dd>
562
563<dt>upsample</dt>
564<dd>To resample, where sink sample rate &gt; source sample rate.</dd>
565
566</dl>
567
Glenn Kasten963fd952013-04-18 17:26:23 -0700568<h2 id="androidSpecificTerms">Android-Specific Terms</h2>
569
570<p>
Clay Murphyc28f2372013-09-25 16:13:40 -0700571These are terms specific to the Android audio framework, or that
Glenn Kasten963fd952013-04-18 17:26:23 -0700572may have a special meaning within Android beyond their general meaning.
573</p>
574
575<dl>
576
577<dt>ALSA</dt>
578<dd>
579Advanced Linux Sound Architecture. As the name suggests, it is an audio
580framework primarily for Linux, but it has influenced other systems.
581See Wikipedia article
Clay Murphydc85c742014-09-10 15:10:03 -0700582<a href="http://en.wikipedia.org/wiki/Advanced_Linux_Sound_Architecture">ALSA</a>
Glenn Kasten963fd952013-04-18 17:26:23 -0700583for the general definition. As used within Android, it refers primarily
584to the kernel audio framework and drivers, not to the user-mode API. See
585tinyalsa.
586</dd>
587
Glenn Kastene158b8e2015-02-06 09:48:11 -0800588<dt>audio device</dt>
589<dd>
Clay Murphyc9ea0002015-02-17 14:57:14 -0800590Any audio I/O end-point that is backed by a HAL implementation.
Glenn Kastene158b8e2015-02-06 09:48:11 -0800591</dd>
592
Glenn Kasten298f3822013-06-12 17:17:36 -0700593<dt>AudioEffect</dt>
594<dd>
595An API and implementation framework for output (post-processing) effects
596and input (pre-processing) effects. The API is defined at
Clay Murphydc85c742014-09-10 15:10:03 -0700597<a href="http://developer.android.com/reference/android/media/audiofx/AudioEffect.html">android.media.audiofx.AudioEffect</a>.
Glenn Kasten298f3822013-06-12 17:17:36 -0700598</dd>
599
Glenn Kasten963fd952013-04-18 17:26:23 -0700600<dt>AudioFlinger</dt>
601<dd>
602The sound server implementation for Android. AudioFlinger
603runs within the mediaserver process. See Wikipedia article
Clay Murphydc85c742014-09-10 15:10:03 -0700604<a href="http://en.wikipedia.org/wiki/Sound_server">Sound server</a>
Glenn Kasten963fd952013-04-18 17:26:23 -0700605for the generic definition.
606</dd>
607
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700608<dt>audio focus</dt>
609<dd>
610A set of APIs for managing audio interactions across multiple independent apps.
611See <a href="http://developer.android.com/training/managing-audio/audio-focus.html">Managing Audio
612Focus</a> and the focus-related methods and constants of
613<a href="http://developer.android.com/reference/android/media/AudioManager.html">android.media.AudioManager</a>.
614</dd>
615
Glenn Kasten963fd952013-04-18 17:26:23 -0700616<dt>AudioMixer</dt>
617<dd>
618The module within AudioFlinger responsible for
619combining multiple tracks and applying attenuation
620(volume) and certain effects. The Wikipedia article
Clay Murphydc85c742014-09-10 15:10:03 -0700621<a href="http://en.wikipedia.org/wiki/Audio_mixing_(recorded_music)">Audio mixing (recorded music)</a>
Glenn Kasten963fd952013-04-18 17:26:23 -0700622may be useful for understanding the generic
623concept. But that article describes a mixer more as a hardware device
624or a software application, rather than a software module within a system.
625</dd>
626
Glenn Kasten5df2d522013-09-27 11:50:35 -0700627<dt>audio policy</dt>
628<dd>
629Service responsible for all actions that require a policy decision
630to be made first, such as opening a new I/O stream, re-routing after a
Glenn Kastenff257d42014-11-10 16:29:03 -0800631change, and stream volume management.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700632</dd>
633
Glenn Kasten963fd952013-04-18 17:26:23 -0700634<dt>AudioRecord</dt>
635<dd>
636The primary low-level client API for receiving data from an audio
Clay Murphyc28f2372013-09-25 16:13:40 -0700637input device such as microphone. The data is usually in pulse-code modulation
638(PCM) format.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700639The API is defined at
Clay Murphydc85c742014-09-10 15:10:03 -0700640<a href="http://developer.android.com/reference/android/media/AudioRecord.html">android.media.AudioRecord</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700641</dd>
Glenn Kasten963fd952013-04-18 17:26:23 -0700642
643<dt>AudioResampler</dt>
644<dd>
Glenn Kasten46ac61c2014-01-24 08:59:11 -0800645The module within AudioFlinger responsible for
Clay Murphy714cd072014-12-01 13:07:52 -0800646<a href="src.html">sample rate conversion</a>.
Glenn Kasten963fd952013-04-18 17:26:23 -0700647</dd>
648
Glenn Kastene158b8e2015-02-06 09:48:11 -0800649<dt>audio source</dt>
650<dd>
651An <a href="http://developer.android.com/reference/android/media/MediaRecorder.AudioSource.html">audio source</a>
652is an enumeration of constants that indicates the desired use case for capturing audio input.
653As of API level 21 and above, <a href="attributes.html">audio attributes</a> are preferred.
654</dd>
655
Glenn Kasten963fd952013-04-18 17:26:23 -0700656<dt>AudioTrack</dt>
657<dd>
658The primary low-level client API for sending data to an audio output
659device such as a speaker. The data is usually in PCM format.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700660The API is defined at
Clay Murphydc85c742014-09-10 15:10:03 -0700661<a href="http://developer.android.com/reference/android/media/AudioTrack.html">android.media.AudioTrack</a>.
Glenn Kasten963fd952013-04-18 17:26:23 -0700662</dd>
663
Glenn Kasten73512002015-01-15 10:06:31 -0800664<dt>audio_utils</dt>
665<dd>
666An audio utility library for features such as PCM format conversion, WAV file I/O, and
667<a href="avoiding_pi.html#nonBlockingAlgorithms">non-blocking FIFO</a>,
668which is largely independent of the Android platform.
669</dd>
670
Glenn Kasten963fd952013-04-18 17:26:23 -0700671<dt>client</dt>
672<dd>
673Usually same as application or app, but sometimes the "client" of
674AudioFlinger is actually a thread running within the mediaserver system
675process. An example of that is when playing media that is decoded by a
676MediaPlayer object.
677</dd>
678
679<dt>HAL</dt>
680<dd>
681Hardware Abstraction Layer. HAL is a generic term in Android. With
682respect to audio, it is a layer between AudioFlinger and the kernel
683device driver with a C API, which replaces the earlier C++ libaudio.
684</dd>
685
Glenn Kasten978bec82014-12-23 15:15:20 -0800686<dt>FastCapture</dt>
687<dd>
688A thread within AudioFlinger that sends audio data to lower latency "fast tracks"
689and drives the input device when configured for reduced latency.
690</dd>
691
Glenn Kasten963fd952013-04-18 17:26:23 -0700692<dt>FastMixer</dt>
693<dd>
Glenn Kasten978bec82014-12-23 15:15:20 -0800694A thread within AudioFlinger that receives and mixes audio data from lower latency "fast tracks"
695and drives the primary output device when configured for reduced latency.
Glenn Kasten963fd952013-04-18 17:26:23 -0700696</dd>
697
698<dt>fast track</dt>
699<dd>
Glenn Kasten978bec82014-12-23 15:15:20 -0800700An AudioTrack or AudioRecord client with lower latency but fewer features, on some devices and routes.
Glenn Kasten963fd952013-04-18 17:26:23 -0700701</dd>
702
703<dt>MediaPlayer</dt>
704<dd>
705A higher-level client API than AudioTrack, for playing either encoded
Clay Murphyc28f2372013-09-25 16:13:40 -0700706content, or content which includes multimedia audio and video tracks.
Glenn Kasten963fd952013-04-18 17:26:23 -0700707</dd>
708
Glenn Kasten298f3822013-06-12 17:17:36 -0700709<dt>media.log</dt>
710<dd>
711An AudioFlinger debugging feature, available in custom builds only,
712for logging audio events to a circular buffer where they can then be
713dumped retroactively when needed.
714</dd>
715
Glenn Kasten963fd952013-04-18 17:26:23 -0700716<dt>mediaserver</dt>
717<dd>
718An Android system process that contains a number of media-related
719services, including AudioFlinger.
720</dd>
721
722<dt>NBAIO</dt>
723<dd>
724An abstraction for "non-blocking" audio input/output ports used within
725AudioFlinger. The name can be misleading, as some implementations of
726the NBAIO API actually do support blocking. The key implementations of
727NBAIO are for pipes of various kinds.
728</dd>
729
730<dt>normal mixer</dt>
731<dd>
732A thread within AudioFlinger that services most full-featured
733AudioTrack clients, and either directly drives an output device or feeds
Clay Murphyc28f2372013-09-25 16:13:40 -0700734its sub-mix into FastMixer via a pipe.
Glenn Kasten963fd952013-04-18 17:26:23 -0700735</dd>
736
737<dt>OpenSL ES</dt>
738<dd>
Glenn Kasten978bec82014-12-23 15:15:20 -0800739An audio API standard by
740<a href="http://www.khronos.org/">The Khronos Group</a>. Android versions since
741API level 9 support a native audio API that is based on a subset of
742<a href="http://www.khronos.org/opensles/">OpenSL ES 1.0.1</a>.
Glenn Kasten963fd952013-04-18 17:26:23 -0700743</dd>
744
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700745<dt>silent mode</dt>
746<dd>
747A user-settable feature to mute the phone ringer and notifications,
748without affecting media playback (music, videos, games) or alarms.
749</dd>
750
Glenn Kasten5df2d522013-09-27 11:50:35 -0700751<dt>SoundPool</dt>
752<dd>
753A higher-level client API than AudioTrack, used for playing sampled
754audio clips. It is useful for triggering UI feedback, game sounds, etc.
755The API is defined at
Clay Murphydc85c742014-09-10 15:10:03 -0700756<a href="http://developer.android.com/reference/android/media/SoundPool.html">android.media.SoundPool</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700757</dd>
Glenn Kasten5df2d522013-09-27 11:50:35 -0700758
759<dt>Stagefright</dt>
760<dd>
761See <a href="{@docRoot}devices/media.html">Media</a>.
762</dd>
763
Glenn Kasten963fd952013-04-18 17:26:23 -0700764<dt>StateQueue</dt>
765<dd>
766A module within AudioFlinger responsible for synchronizing state
767among threads. Whereas NBAIO is used to pass data, StateQueue is used
768to pass control information.
769</dd>
770
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700771<dt>strategy</dt>
772<dd>
773A grouping of stream types with similar behavior, used by the audio policy service.
774</dd>
775
776<dt>stream type</dt>
777<dd>
778An enumeration that expresses a use case for audio output.
779The audio policy implementation uses the stream type, along with other parameters,
780to determine volume and routing decisions.
781Specific stream types are listed at
782<a href="http://developer.android.com/reference/android/media/AudioManager.html">android.media.AudioManager</a>.
783</dd>
784
Glenn Kasten298f3822013-06-12 17:17:36 -0700785<dt>tee sink</dt>
786<dd>
Glenn Kasten37784a52014-02-03 11:57:33 -0800787See the separate article on tee sink in
Clay Murphy714cd072014-12-01 13:07:52 -0800788<a href="debugging.html#teeSink">Audio Debugging</a>.
Glenn Kasten298f3822013-06-12 17:17:36 -0700789</dd>
790
Glenn Kasten963fd952013-04-18 17:26:23 -0700791<dt>tinyalsa</dt>
792<dd>
793A small user-mode API above ALSA kernel with BSD license, recommended
Clay Murphyc28f2372013-09-25 16:13:40 -0700794for use in HAL implementations.
Glenn Kasten963fd952013-04-18 17:26:23 -0700795</dd>
796
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700797<dt>ToneGenerator</dt>
798<dd>
799A higher-level client API than AudioTrack, used for playing DTMF signals.
800See the Wikipedia article
Clay Murphydc85c742014-09-10 15:10:03 -0700801<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 -0700802and the API definition at
Clay Murphydc85c742014-09-10 15:10:03 -0700803<a href="http://developer.android.com/reference/android/media/ToneGenerator.html">android.media.ToneGenerator</a>.
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700804</dd>
805
Glenn Kasten963fd952013-04-18 17:26:23 -0700806<dt>track</dt>
807<dd>
Glenn Kastenff257d42014-11-10 16:29:03 -0800808An audio stream, controlled by the AudioTrack or AudioRecord API.
Glenn Kasten963fd952013-04-18 17:26:23 -0700809</dd>
810
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700811<dt>volume attenuation curve</dt>
812<dd>
813A device-specific mapping from a generic volume index to a particular attenuation factor
814for a given output.
815</dd>
816
817<dt>volume index</dt>
818<dd>
819A unitless integer that expresses the desired relative volume of a stream.
820The volume-related APIs of
821<a href="http://developer.android.com/reference/android/media/AudioManager.html">android.media.AudioManager</a>
822operate in volume indices rather than absolute attenuation factors.
823</dd>
824
Glenn Kasten963fd952013-04-18 17:26:23 -0700825</dl>