blob: 8a4ce600574ec069da1ba40c910d2be978775e11 [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
Clay Murphya7ccc7d2015-02-20 13:48:37 -080099<a href="http://en.wikipedia.org/wiki/Direct_Stream_Digital">Digital Stream Digital</a>
Glenn Kasten628654f2015-02-05 13:06:10 -0800100for 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
Glenn Kasten963fd952013-04-18 17:26:23 -0700190<dt>mono</dt>
191<dd>
192One channel.
193</dd>
194
Glenn Kasten5df2d522013-09-27 11:50:35 -0700195<dt>multichannel</dt>
196<dd>
Glenn Kastene064b462015-02-11 08:53:52 -0800197See "surround sound."
Glenn Kasten5df2d522013-09-27 11:50:35 -0700198Strictly, since stereo is more than one channel, it is also "multi" channel.
199But that usage would be confusing.
200</dd>
201
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700202<dt>mute</dt>
203<dd>
204To (temporarily) force volume to be zero, independently from the usual volume controls.
205</dd>
206
Glenn Kasten978bec82014-12-23 15:15:20 -0800207<dt>overrun</dt>
208<dd>
209An audible <a href="http://en.wikipedia.org/wiki/Glitch">glitch</a> caused by failure
210to accept supplied data in sufficient time.
211See Wikipedia article <a href="http://en.wikipedia.org/wiki/Buffer_underrun">buffer underrun</a>
212[sic; the article for "buffer overrun" describes an unrelated failure].
213Compare to "underrun."
214</dd>
215
216<dt>panning</dt>
217<dd>
218To direct a signal to a desired position within a stereo or multi-channel field.
219</dd>
220
Glenn Kasten5df2d522013-09-27 11:50:35 -0700221<dt>PCM</dt>
222<dd>
223Pulse Code Modulation, the most common low-level encoding of digital audio.
224The audio signal is sampled at a regular interval, called the sample rate,
225and then quantized to discrete values within a particular range depending on the bit depth.
226For example, for 16-bit PCM, the sample values are integers between -32768 and +32767.
227</dd>
228
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700229<dt>ramp</dt>
230<dd>
231To gradually increase or decrease the level of a particular audio parameter,
232for example volume or the strength of an effect.
233A volume ramp is commonly applied when pausing and resuming music, to avoid a hard audible transition.
234</dd>
235
Glenn Kasten963fd952013-04-18 17:26:23 -0700236<dt>sample</dt>
237<dd>
238A number representing the audio value for a single channel at a point in time.
239</dd>
240
241<dt>sample rate or frame rate</dt>
242<dd>
243Number of frames per second;
244note that "frame rate" is thus more accurate,
Clay Murphyc28f2372013-09-25 16:13:40 -0700245but "sample rate" is conventionally used to mean "frame rate."
Glenn Kasten963fd952013-04-18 17:26:23 -0700246</dd>
247
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700248<dt>sonification</dt>
249<dd>
250The use of sound to express feedback or information,
251for example touch sounds and keyboard sounds.
252</dd>
253
Glenn Kasten963fd952013-04-18 17:26:23 -0700254<dt>stereo</dt>
255<dd>
256Two channels.
257</dd>
258
Glenn Kasten5df2d522013-09-27 11:50:35 -0700259<dt>stereo widening</dt>
260<dd>
261An effect applied to a stereo signal, to make another stereo signal which sounds fuller and richer.
262The effect can also be applied to a mono signal, in which case it is a type of upmixing.
263</dd>
264
265<dt>surround sound</dt>
266<dd>
267Various techniques for increasing the ability of a listener to perceive
268sound position beyond stereo left and right.
269</dd>
270
Glenn Kastene158b8e2015-02-06 09:48:11 -0800271<dt>transparency</dt>
272<dd>
273The ideal result of lossy data compression, as stated in the
Clay Murphyc9ea0002015-02-17 14:57:14 -0800274<a href="http://en.wikipedia.org/wiki/Transparency_%28data_compression%29">Transparency</a> Wikipedia article.
Glenn Kastene158b8e2015-02-06 09:48:11 -0800275A lossy data conversion is said to be transparent if it is perceptually indistinguishable from the
276original by a human subject.
277</dd>
278
Glenn Kasten978bec82014-12-23 15:15:20 -0800279<dt>underrun</dt>
280<dd>
281An audible <a href="http://en.wikipedia.org/wiki/Glitch">glitch</a> caused by failure
282to supply needed data in sufficient time.
283See Wikipedia article <a href="http://en.wikipedia.org/wiki/Buffer_underrun">buffer underrun</a>.
284Compare to "overrun."
285</dd>
286
Glenn Kasten5df2d522013-09-27 11:50:35 -0700287<dt>upmixing</dt>
288<dd>
289To increase the number of channels, e.g. from mono to stereo, or from stereo to surround sound.
290This can be accomplished by duplication, panning, or more advanced signal processing.
Glenn Kasten978bec82014-12-23 15:15:20 -0800291Compare to "downmixing."
Glenn Kasten795a9de2014-01-24 08:58:56 -0800292</dd>
Glenn Kasten963fd952013-04-18 17:26:23 -0700293
Glenn Kasten5df2d522013-09-27 11:50:35 -0700294<dt>virtualizer</dt>
295<dd>
296An effect that attempts to spatialize audio channels, such as trying to
297simulate more speakers, or give the illusion that various sound sources have position.
298</dd>
299
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700300<dt>volume</dt>
301<dd>
302Loudness, the subjective strength of an audio signal.
303</dd>
304
Glenn Kasten795a9de2014-01-24 08:58:56 -0800305</dl>
306
Glenn Kasten5df2d522013-09-27 11:50:35 -0700307<h3 id="hardwareTerms">Hardware and Accessories</h3>
308
309<p>
310These terms are related to audio hardware and accessories.
311</p>
312
313<h4 id="interDeviceTerms">Inter-device interconnect</h4>
314
315<p>
316These technologies connect audio and video components between devices,
317and are readily visible at the external connectors. The HAL implementor
318may need to be aware of these, as well as the end user.
319</p>
320
321<dl>
322
323<dt>Bluetooth</dt>
324<dd>
325A short range wireless technology.
326The major audio-related
Clay Murphydc85c742014-09-10 15:10:03 -0700327<a href="http://en.wikipedia.org/wiki/Bluetooth_profile">Bluetooth profiles</a>
Glenn Kasten5df2d522013-09-27 11:50:35 -0700328and
Clay Murphydc85c742014-09-10 15:10:03 -0700329<a href="http://en.wikipedia.org/wiki/Bluetooth_protocols">Bluetooth protocols</a>
Glenn Kasten5df2d522013-09-27 11:50:35 -0700330are described at these Wikipedia articles:
331
332<ul>
333
Clay Murphydc85c742014-09-10 15:10:03 -0700334<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 -0700335for music
336</li>
337
Clay Murphydc85c742014-09-10 15:10:03 -0700338<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 -0700339for telephony
340</li>
341
Glenn Kasten978bec82014-12-23 15:15:20 -0800342<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>
343</li>
344
Glenn Kasten5df2d522013-09-27 11:50:35 -0700345</ul>
346
347</dd>
348
349<dt>DisplayPort</dt>
350<dd>
351Digital display interface by VESA.
352</dd>
353
354<dt>HDMI</dt>
355<dd>
356High-Definition Multimedia Interface, an interface for transferring
357audio and video data. For mobile devices, either a micro-HDMI (type D) or MHL connector is used.
358</dd>
359
Glenn Kastene158b8e2015-02-06 09:48:11 -0800360<dt>Intel HDA</dt>
361<dd>
362<a href="http://en.wikipedia.org/wiki/Intel_High_Definition_Audio">Intel High Definition Audio</a>
363(commonly shortened to HDA) is a specification for, among other things, a front-panel connector.
364Not to be confused with generic "high-definition audio" or "high-resolution audio."
365</dd>
366
Glenn Kasten5df2d522013-09-27 11:50:35 -0700367<dt>MHL</dt>
368<dd>
369Mobile High-Definition Link is a mobile audio/video interface, often
370over micro-USB connector.
371</dd>
372
373<dt>phone connector</dt>
374<dd>
375A mini or sub-mini phone connector
376connects a device to wired headphones, headset, or line-level amplifier.
377</dd>
378
379<dt>SlimPort</dt>
380<dd>
381An adapter from micro-USB to HDMI.
382</dd>
383
384<dt>S/PDIF</dt>
385<dd>
386Sony/Philips Digital Interface Format is an interconnect for uncompressed PCM.
Clay Murphydc85c742014-09-10 15:10:03 -0700387See Wikipedia article <a href="http://en.wikipedia.org/wiki/S/PDIF">S/PDIF</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700388</dd>
389
Glenn Kastene158b8e2015-02-06 09:48:11 -0800390<dt>Thunderbolt</dt>
391<dd>
392<a href="http://en.wikipedia.org/wiki/Thunderbolt_%28interface%29">Thunderbolt</a>
393is a multimedia interface that competes with USB and HDMI for connecting to high-end peripherals.
394</dd>
395
Glenn Kasten5df2d522013-09-27 11:50:35 -0700396<dt>USB</dt>
397<dd>
398Universal Serial Bus.
Clay Murphydc85c742014-09-10 15:10:03 -0700399See Wikipedia article <a href="http://en.wikipedia.org/wiki/USB">USB</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700400</dd>
401
402</dl>
403
404<h4 id="intraDeviceTerms">Intra-device interconnect</h4>
405
406<p>
407These technologies connect internal audio components within a given
408device, and are not visible without disassembling the device. The HAL
409implementor may need to be aware of these, but not the end user.
410</p>
411
Glenn Kastene158b8e2015-02-06 09:48:11 -0800412<p>
Glenn Kasten5df2d522013-09-27 11:50:35 -0700413See these Wikipedia articles:
Glenn Kastene158b8e2015-02-06 09:48:11 -0800414</p>
Glenn Kasten5df2d522013-09-27 11:50:35 -0700415<ul>
Clay Murphydc85c742014-09-10 15:10:03 -0700416<li><a href="http://en.wikipedia.org/wiki/General-purpose_input/output">GPIO</a></li>
Glenn Kasten978bec82014-12-23 15:15:20 -0800417<li><a href="http://en.wikipedia.org/wiki/I%C2%B2C">I²C</a>, for control channel</li>
418<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 -0700419<li><a href="http://en.wikipedia.org/wiki/McASP">McASP</a></li>
420<li><a href="http://en.wikipedia.org/wiki/SLIMbus">SLIMbus</a></li>
421<li><a href="http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus">SPI</a></li>
Glenn Kasten5df2d522013-09-27 11:50:35 -0700422</ul>
423
424<h3 id="signalTerms">Audio Signal Path</h3>
425
426<p>
427These terms are related to the signal path that audio data follows from
428an application to the transducer, or vice-versa.
429</p>
430
Glenn Kasten795a9de2014-01-24 08:58:56 -0800431<dl>
432
Glenn Kasten5df2d522013-09-27 11:50:35 -0700433<dt>ADC</dt>
434<dd>
435Analog to digital converter, a module that converts an analog signal
436(continuous in both time and amplitude) to a digital signal (discrete in
437both time and amplitude). Conceptually, an ADC consists of a periodic
438sample-and-hold followed by a quantizer, although it does not have to
439be implemented that way. An ADC is usually preceded by a low-pass filter
440to remove any high frequency components that are not representable using
441the desired sample rate. See Wikipedia article
Glenn Kastenff257d42014-11-10 16:29:03 -0800442<a href="http://en.wikipedia.org/wiki/Analog-to-digital_converter">Analog-to-digital converter</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700443</dd>
444
445<dt>AP</dt>
446<dd>
447Application processor, the main general-purpose computer on a mobile device.
448</dd>
449
450<dt>codec</dt>
451<dd>
452Coder-decoder, a module that encodes and/or decodes an audio signal
453from one representation to another. Typically this is analog to PCM, or PCM to analog.
454Strictly, the term "codec" is reserved for modules that both encode and decode,
455however it can also more loosely refer to only one of these.
456See Wikipedia article
Clay Murphydc85c742014-09-10 15:10:03 -0700457<a href="http://en.wikipedia.org/wiki/Audio_codec">Audio codec</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700458</dd>
459
460<dt>DAC</dt>
461<dd>
462Digital to analog converter, a module that converts a digital signal
463(discrete in both time and amplitude) to an analog signal
464(continuous in both time and amplitude). A DAC is usually followed by
465a low-pass filter to remove any high frequency components introduced
466by digital quantization.
467See Wikipedia article
Clay Murphydc85c742014-09-10 15:10:03 -0700468<a href="http://en.wikipedia.org/wiki/Digital-to-analog_converter">Digital-to-analog converter</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700469</dd>
470
471<dt>DSP</dt>
472<dd>
473Digital Signal Processor, an optional component which is typically located
474after the application processor (for output), or before the application processor (for input).
475The primary purpose of a DSP is to off-load the application processor,
476and provide signal processing features at a lower power cost.
477</dd>
478
479<dt>PDM</dt>
480<dd>
481Pulse-density modulation
482is a form of modulation used to represent an analog signal by a digital signal,
483where the relative density of 1s versus 0s indicates the signal level.
484It is commonly used by digital to analog converters.
485See Wikipedia article
Clay Murphydc85c742014-09-10 15:10:03 -0700486<a href="http://en.wikipedia.org/wiki/Pulse-density_modulation">Pulse-density modulation</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700487</dd>
488
489<dt>PWM</dt>
490<dd>
491Pulse-width modulation
492is a form of modulation used to represent an analog signal by a digital signal,
493where the relative width of a digital pulse indicates the signal level.
494It is commonly used by analog to digital converters.
495See Wikipedia article
Clay Murphydc85c742014-09-10 15:10:03 -0700496<a href="http://en.wikipedia.org/wiki/Pulse-width_modulation">Pulse-width modulation</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700497</dd>
498
Glenn Kasten978bec82014-12-23 15:15:20 -0800499<dt>transducer</dt>
500<dd>
501A transducer converts variations in physical "real-world" quantities to electrical signals.
502In audio, the physical quantity is sound pressure,
503and the transducers are the loudspeaker and microphone.
504See Wikipedia article
505<a href="http://en.wikipedia.org/wiki/Transducer">Transducer</a>.
506</dd>
507
Glenn Kasten795a9de2014-01-24 08:58:56 -0800508</dl>
Glenn Kasten5df2d522013-09-27 11:50:35 -0700509
Clay Murphy5d83ab42014-09-09 17:29:09 -0700510<h3 id="srcTerms">Sample Rate Conversion</h3>
511
512<dl>
513
514<dt>downsample</dt>
515<dd>To resample, where sink sample rate &lt; source sample rate.</dd>
516
517<dt>Nyquist frequency</dt>
518<dd>
519The Nyquist frequency, equal to 1/2 of a given sample rate, is the
520maximum frequency component that can be represented by a discretized
521signal at that sample rate. For example, the human hearing range is
522typically assumed to extend up to approximately 20 kHz, and so a digital
523audio signal must have a sample rate of at least 40 kHz to represent that
524range. In practice, sample rates of 44.1 kHz and 48 kHz are commonly
525used, with Nyquist frequencies of 22.05 kHz and 24 kHz respectively.
526See
Glenn Kastenff257d42014-11-10 16:29:03 -0800527<a href="http://en.wikipedia.org/wiki/Nyquist_frequency">Nyquist frequency</a>
Clay Murphy5d83ab42014-09-09 17:29:09 -0700528and
Glenn Kastenff257d42014-11-10 16:29:03 -0800529<a href="http://en.wikipedia.org/wiki/Hearing_range">Hearing range</a>
Clay Murphy5d83ab42014-09-09 17:29:09 -0700530for more information.
531</dd>
532
533<dt>resampler</dt>
534<dd>Synonym for sample rate converter.</dd>
535
536<dt>resampling</dt>
537<dd>The process of converting sample rate.</dd>
538
539<dt>sample rate converter</dt>
540<dd>A module that resamples.</dd>
541
542<dt>sink</dt>
543<dd>The output of a resampler.</dd>
544
545<dt>source</dt>
546<dd>The input to a resampler.</dd>
547
548<dt>upsample</dt>
549<dd>To resample, where sink sample rate &gt; source sample rate.</dd>
550
551</dl>
552
Glenn Kasten963fd952013-04-18 17:26:23 -0700553<h2 id="androidSpecificTerms">Android-Specific Terms</h2>
554
555<p>
Clay Murphyc28f2372013-09-25 16:13:40 -0700556These are terms specific to the Android audio framework, or that
Glenn Kasten963fd952013-04-18 17:26:23 -0700557may have a special meaning within Android beyond their general meaning.
558</p>
559
560<dl>
561
562<dt>ALSA</dt>
563<dd>
564Advanced Linux Sound Architecture. As the name suggests, it is an audio
565framework primarily for Linux, but it has influenced other systems.
566See Wikipedia article
Clay Murphydc85c742014-09-10 15:10:03 -0700567<a href="http://en.wikipedia.org/wiki/Advanced_Linux_Sound_Architecture">ALSA</a>
Glenn Kasten963fd952013-04-18 17:26:23 -0700568for the general definition. As used within Android, it refers primarily
569to the kernel audio framework and drivers, not to the user-mode API. See
570tinyalsa.
571</dd>
572
Glenn Kastene158b8e2015-02-06 09:48:11 -0800573<dt>audio device</dt>
574<dd>
Clay Murphyc9ea0002015-02-17 14:57:14 -0800575Any audio I/O end-point that is backed by a HAL implementation.
Glenn Kastene158b8e2015-02-06 09:48:11 -0800576</dd>
577
Glenn Kasten298f3822013-06-12 17:17:36 -0700578<dt>AudioEffect</dt>
579<dd>
580An API and implementation framework for output (post-processing) effects
581and input (pre-processing) effects. The API is defined at
Clay Murphydc85c742014-09-10 15:10:03 -0700582<a href="http://developer.android.com/reference/android/media/audiofx/AudioEffect.html">android.media.audiofx.AudioEffect</a>.
Glenn Kasten298f3822013-06-12 17:17:36 -0700583</dd>
584
Glenn Kasten963fd952013-04-18 17:26:23 -0700585<dt>AudioFlinger</dt>
586<dd>
587The sound server implementation for Android. AudioFlinger
588runs within the mediaserver process. See Wikipedia article
Clay Murphydc85c742014-09-10 15:10:03 -0700589<a href="http://en.wikipedia.org/wiki/Sound_server">Sound server</a>
Glenn Kasten963fd952013-04-18 17:26:23 -0700590for the generic definition.
591</dd>
592
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700593<dt>audio focus</dt>
594<dd>
595A set of APIs for managing audio interactions across multiple independent apps.
596See <a href="http://developer.android.com/training/managing-audio/audio-focus.html">Managing Audio
597Focus</a> and the focus-related methods and constants of
598<a href="http://developer.android.com/reference/android/media/AudioManager.html">android.media.AudioManager</a>.
599</dd>
600
Glenn Kasten963fd952013-04-18 17:26:23 -0700601<dt>AudioMixer</dt>
602<dd>
603The module within AudioFlinger responsible for
604combining multiple tracks and applying attenuation
605(volume) and certain effects. The Wikipedia article
Clay Murphydc85c742014-09-10 15:10:03 -0700606<a href="http://en.wikipedia.org/wiki/Audio_mixing_(recorded_music)">Audio mixing (recorded music)</a>
Glenn Kasten963fd952013-04-18 17:26:23 -0700607may be useful for understanding the generic
608concept. But that article describes a mixer more as a hardware device
609or a software application, rather than a software module within a system.
610</dd>
611
Glenn Kasten5df2d522013-09-27 11:50:35 -0700612<dt>audio policy</dt>
613<dd>
614Service responsible for all actions that require a policy decision
615to be made first, such as opening a new I/O stream, re-routing after a
Glenn Kastenff257d42014-11-10 16:29:03 -0800616change, and stream volume management.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700617</dd>
618
Glenn Kasten963fd952013-04-18 17:26:23 -0700619<dt>AudioRecord</dt>
620<dd>
621The primary low-level client API for receiving data from an audio
Clay Murphyc28f2372013-09-25 16:13:40 -0700622input device such as microphone. The data is usually in pulse-code modulation
623(PCM) format.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700624The API is defined at
Clay Murphydc85c742014-09-10 15:10:03 -0700625<a href="http://developer.android.com/reference/android/media/AudioRecord.html">android.media.AudioRecord</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700626</dd>
Glenn Kasten963fd952013-04-18 17:26:23 -0700627
628<dt>AudioResampler</dt>
629<dd>
Glenn Kasten46ac61c2014-01-24 08:59:11 -0800630The module within AudioFlinger responsible for
Clay Murphy714cd072014-12-01 13:07:52 -0800631<a href="src.html">sample rate conversion</a>.
Glenn Kasten963fd952013-04-18 17:26:23 -0700632</dd>
633
Glenn Kastene158b8e2015-02-06 09:48:11 -0800634<dt>audio source</dt>
635<dd>
636An <a href="http://developer.android.com/reference/android/media/MediaRecorder.AudioSource.html">audio source</a>
637is an enumeration of constants that indicates the desired use case for capturing audio input.
638As of API level 21 and above, <a href="attributes.html">audio attributes</a> are preferred.
639</dd>
640
Glenn Kasten963fd952013-04-18 17:26:23 -0700641<dt>AudioTrack</dt>
642<dd>
643The primary low-level client API for sending data to an audio output
644device such as a speaker. The data is usually in PCM format.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700645The API is defined at
Clay Murphydc85c742014-09-10 15:10:03 -0700646<a href="http://developer.android.com/reference/android/media/AudioTrack.html">android.media.AudioTrack</a>.
Glenn Kasten963fd952013-04-18 17:26:23 -0700647</dd>
648
Glenn Kasten73512002015-01-15 10:06:31 -0800649<dt>audio_utils</dt>
650<dd>
651An audio utility library for features such as PCM format conversion, WAV file I/O, and
652<a href="avoiding_pi.html#nonBlockingAlgorithms">non-blocking FIFO</a>,
653which is largely independent of the Android platform.
654</dd>
655
Glenn Kasten963fd952013-04-18 17:26:23 -0700656<dt>client</dt>
657<dd>
658Usually same as application or app, but sometimes the "client" of
659AudioFlinger is actually a thread running within the mediaserver system
660process. An example of that is when playing media that is decoded by a
661MediaPlayer object.
662</dd>
663
664<dt>HAL</dt>
665<dd>
666Hardware Abstraction Layer. HAL is a generic term in Android. With
667respect to audio, it is a layer between AudioFlinger and the kernel
668device driver with a C API, which replaces the earlier C++ libaudio.
669</dd>
670
Glenn Kasten978bec82014-12-23 15:15:20 -0800671<dt>FastCapture</dt>
672<dd>
673A thread within AudioFlinger that sends audio data to lower latency "fast tracks"
674and drives the input device when configured for reduced latency.
675</dd>
676
Glenn Kasten963fd952013-04-18 17:26:23 -0700677<dt>FastMixer</dt>
678<dd>
Glenn Kasten978bec82014-12-23 15:15:20 -0800679A thread within AudioFlinger that receives and mixes audio data from lower latency "fast tracks"
680and drives the primary output device when configured for reduced latency.
Glenn Kasten963fd952013-04-18 17:26:23 -0700681</dd>
682
683<dt>fast track</dt>
684<dd>
Glenn Kasten978bec82014-12-23 15:15:20 -0800685An AudioTrack or AudioRecord client with lower latency but fewer features, on some devices and routes.
Glenn Kasten963fd952013-04-18 17:26:23 -0700686</dd>
687
688<dt>MediaPlayer</dt>
689<dd>
690A higher-level client API than AudioTrack, for playing either encoded
Clay Murphyc28f2372013-09-25 16:13:40 -0700691content, or content which includes multimedia audio and video tracks.
Glenn Kasten963fd952013-04-18 17:26:23 -0700692</dd>
693
Glenn Kasten298f3822013-06-12 17:17:36 -0700694<dt>media.log</dt>
695<dd>
696An AudioFlinger debugging feature, available in custom builds only,
697for logging audio events to a circular buffer where they can then be
698dumped retroactively when needed.
699</dd>
700
Glenn Kasten963fd952013-04-18 17:26:23 -0700701<dt>mediaserver</dt>
702<dd>
703An Android system process that contains a number of media-related
704services, including AudioFlinger.
705</dd>
706
707<dt>NBAIO</dt>
708<dd>
709An abstraction for "non-blocking" audio input/output ports used within
710AudioFlinger. The name can be misleading, as some implementations of
711the NBAIO API actually do support blocking. The key implementations of
712NBAIO are for pipes of various kinds.
713</dd>
714
715<dt>normal mixer</dt>
716<dd>
717A thread within AudioFlinger that services most full-featured
718AudioTrack clients, and either directly drives an output device or feeds
Clay Murphyc28f2372013-09-25 16:13:40 -0700719its sub-mix into FastMixer via a pipe.
Glenn Kasten963fd952013-04-18 17:26:23 -0700720</dd>
721
722<dt>OpenSL ES</dt>
723<dd>
Glenn Kasten978bec82014-12-23 15:15:20 -0800724An audio API standard by
725<a href="http://www.khronos.org/">The Khronos Group</a>. Android versions since
726API level 9 support a native audio API that is based on a subset of
727<a href="http://www.khronos.org/opensles/">OpenSL ES 1.0.1</a>.
Glenn Kasten963fd952013-04-18 17:26:23 -0700728</dd>
729
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700730<dt>silent mode</dt>
731<dd>
732A user-settable feature to mute the phone ringer and notifications,
733without affecting media playback (music, videos, games) or alarms.
734</dd>
735
Glenn Kasten5df2d522013-09-27 11:50:35 -0700736<dt>SoundPool</dt>
737<dd>
738A higher-level client API than AudioTrack, used for playing sampled
739audio clips. It is useful for triggering UI feedback, game sounds, etc.
740The API is defined at
Clay Murphydc85c742014-09-10 15:10:03 -0700741<a href="http://developer.android.com/reference/android/media/SoundPool.html">android.media.SoundPool</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700742</dd>
Glenn Kasten5df2d522013-09-27 11:50:35 -0700743
744<dt>Stagefright</dt>
745<dd>
746See <a href="{@docRoot}devices/media.html">Media</a>.
747</dd>
748
Glenn Kasten963fd952013-04-18 17:26:23 -0700749<dt>StateQueue</dt>
750<dd>
751A module within AudioFlinger responsible for synchronizing state
752among threads. Whereas NBAIO is used to pass data, StateQueue is used
753to pass control information.
754</dd>
755
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700756<dt>strategy</dt>
757<dd>
758A grouping of stream types with similar behavior, used by the audio policy service.
759</dd>
760
761<dt>stream type</dt>
762<dd>
763An enumeration that expresses a use case for audio output.
764The audio policy implementation uses the stream type, along with other parameters,
765to determine volume and routing decisions.
766Specific stream types are listed at
767<a href="http://developer.android.com/reference/android/media/AudioManager.html">android.media.AudioManager</a>.
768</dd>
769
Glenn Kasten298f3822013-06-12 17:17:36 -0700770<dt>tee sink</dt>
771<dd>
Glenn Kasten37784a52014-02-03 11:57:33 -0800772See the separate article on tee sink in
Clay Murphy714cd072014-12-01 13:07:52 -0800773<a href="debugging.html#teeSink">Audio Debugging</a>.
Glenn Kasten298f3822013-06-12 17:17:36 -0700774</dd>
775
Glenn Kasten963fd952013-04-18 17:26:23 -0700776<dt>tinyalsa</dt>
777<dd>
778A small user-mode API above ALSA kernel with BSD license, recommended
Clay Murphyc28f2372013-09-25 16:13:40 -0700779for use in HAL implementations.
Glenn Kasten963fd952013-04-18 17:26:23 -0700780</dd>
781
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700782<dt>ToneGenerator</dt>
783<dd>
784A higher-level client API than AudioTrack, used for playing DTMF signals.
785See the Wikipedia article
Clay Murphydc85c742014-09-10 15:10:03 -0700786<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 -0700787and the API definition at
Clay Murphydc85c742014-09-10 15:10:03 -0700788<a href="http://developer.android.com/reference/android/media/ToneGenerator.html">android.media.ToneGenerator</a>.
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700789</dd>
790
Glenn Kasten963fd952013-04-18 17:26:23 -0700791<dt>track</dt>
792<dd>
Glenn Kastenff257d42014-11-10 16:29:03 -0800793An audio stream, controlled by the AudioTrack or AudioRecord API.
Glenn Kasten963fd952013-04-18 17:26:23 -0700794</dd>
795
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700796<dt>volume attenuation curve</dt>
797<dd>
798A device-specific mapping from a generic volume index to a particular attenuation factor
799for a given output.
800</dd>
801
802<dt>volume index</dt>
803<dd>
804A unitless integer that expresses the desired relative volume of a stream.
805The volume-related APIs of
806<a href="http://developer.android.com/reference/android/media/AudioManager.html">android.media.AudioManager</a>
807operate in volume indices rather than absolute attenuation factors.
808</dd>
809
Glenn Kasten963fd952013-04-18 17:26:23 -0700810</dl>