blob: ef4caa9f5fdddbbba4308856d15f5f2cde391336 [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<!--
Heidi von Markham52c19b92015-04-14 14:25:14 -07005 Copyright 2015 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>
Heidi von Markham52c19b92015-04-14 14:25:14 -070028This glossary of audio-related terminology includes widely-used generic terms
29and Android-specific terms.
Glenn Kasten963fd952013-04-18 17:26:23 -070030</p>
31
32<h2 id="genericTerm">Generic Terms</h2>
33
34<p>
Heidi von Markham52c19b92015-04-14 14:25:14 -070035Generic audio-related terms have conventional meanings.
Glenn Kasten963fd952013-04-18 17:26:23 -070036</p>
37
Glenn Kasten5df2d522013-09-27 11:50:35 -070038<h3 id="digitalAudioTerms">Digital Audio</h3>
Heidi von Markham52c19b92015-04-14 14:25:14 -070039<p>
40Digital audio terms relate to handling sound using audio signals encoded
41in digital form. For details, refer to
42<a href="http://en.wikipedia.org/wiki/Digital_audio">Digital Audio</a>.
43</p>
Glenn Kasten5df2d522013-09-27 11:50:35 -070044
Glenn Kasten963fd952013-04-18 17:26:23 -070045<dl>
46
Glenn Kasten298f3822013-06-12 17:17:36 -070047<dt>acoustics</dt>
48<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -070049Study of the mechanical properties of sound, such as how the physical
50placement of transducers (speakers, microphones, etc.) on a device affects
51perceived audio quality.
Glenn Kasten298f3822013-06-12 17:17:36 -070052</dd>
53
Glenn Kasten5df2d522013-09-27 11:50:35 -070054<dt>attenuation</dt>
55<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -070056Multiplicative factor less than or equal to 1.0, applied to an audio signal
57to decrease the signal level. Compare to <em>gain</em>.
Glenn Kasten5df2d522013-09-27 11:50:35 -070058</dd>
59
Glenn Kasten628654f2015-02-05 13:06:10 -080060<dt>audiophile</dt>
61<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -070062Person concerned with a superior music reproduction experience, especially
63willing to make substantial tradeoffs (expense, component size, room design,
64etc.) for sound quality. For details, refer to
65<a href="http://en.wikipedia.org/wiki/Audiophile">audiophile</a>.
Glenn Kasten628654f2015-02-05 13:06:10 -080066</dd>
67
Glenn Kasten963fd952013-04-18 17:26:23 -070068<dt>bits per sample or bit depth</dt>
69<dd>
70Number of bits of information per sample.
71</dd>
72
73<dt>channel</dt>
74<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -070075Single stream of audio information, usually corresponding to one location of
76recording or playback.
Glenn Kasten963fd952013-04-18 17:26:23 -070077</dd>
78
Glenn Kasten5df2d522013-09-27 11:50:35 -070079<dt>downmixing</dt>
80<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -070081Decrease the number of channels, such as from stereo to mono or from 5.1 to
82stereo. Accomplished by dropping channels, mixing channels, or more advanced
83signal processing. Simple mixing without attenuation or limiting has the
84potential for overflow and clipping. Compare to <em>upmixing</em>.
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -070085</dd>
86
Glenn Kasten628654f2015-02-05 13:06:10 -080087<dt>DSD</dt>
88<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -070089Direct Stream Digital. Proprietary audio encoding based on
90<a href="http://en.wikipedia.org/wiki/Pulse-density_modulation">pulse-density
91modulation</a>. While Pulse Code Modulation (PCM) encodes a waveform as a
92sequence of individual audio samples of multiple bits, DSD encodes a waveform as
93a sequence of bits at a very high sample rate (without the concept of samples).
94Both PCM and DSD represent multiple channels by independent sequences. DSD is
95better suited to content distribution than as an internal representation for
96processing as it can be difficult to apply traditional digital signal processing
97(DSP) algorithms to DSD. DSD is used in <a href="http://en.wikipedia.org/wiki/Super_Audio_CD">Super Audio CD (SACD)</a> and in DSD over PCM (DoP) for USB. For details, refer
98to <a href="http://en.wikipedia.org/wiki/Direct_Stream_Digital">Digital Stream
99Digital</a>.
Glenn Kasten628654f2015-02-05 13:06:10 -0800100</dd>
101
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700102<dt>duck</dt>
103<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700104Temporarily reduce the volume of a stream when another stream becomes active.
105For example, if music is playing when a notification arrives, the music ducks
106while the notification plays. Compare to <em>mute</em>.
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700107</dd>
Glenn Kasten5df2d522013-09-27 11:50:35 -0700108
Glenn Kastene158b8e2015-02-06 09:48:11 -0800109<dt>FIFO</dt>
110<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700111First In, First Out. Hardware module or software data structure that implements
Glenn Kastene158b8e2015-02-06 09:48:11 -0800112<a href="http://en.wikipedia.org/wiki/FIFO">First In, First Out</a>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700113queueing of data. In an audio context, the data stored in the queue are
114typically audio frames. FIFO can be implemented by a
Glenn Kastene158b8e2015-02-06 09:48:11 -0800115<a href="http://en.wikipedia.org/wiki/Circular_buffer">circular buffer</a>.
116</dd>
117
Glenn Kasten963fd952013-04-18 17:26:23 -0700118<dt>frame</dt>
119<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700120Set of samples, one per channel, at a point in time.
Glenn Kasten963fd952013-04-18 17:26:23 -0700121</dd>
122
123<dt>frames per buffer</dt>
124<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700125Number of frames handed from one module to the next at one time. The audio HAL
126interface uses the concept of frames per buffer.
Glenn Kasten963fd952013-04-18 17:26:23 -0700127</dd>
128
Glenn Kasten5df2d522013-09-27 11:50:35 -0700129<dt>gain</dt>
130<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700131Multiplicative factor greater than or equal to 1.0, applied to an audio signal
132to increase the signal level. Compare to <em>attenuation</em>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700133</dd>
134
Glenn Kasten628654f2015-02-05 13:06:10 -0800135<dt>HD audio</dt>
136<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700137High-Definition audio. Synonym for high-resolution audio (but different than
138Intel High Definition Audio).
Glenn Kasten628654f2015-02-05 13:06:10 -0800139</dd>
140
Glenn Kasten298f3822013-06-12 17:17:36 -0700141<dt>Hz</dt>
142<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700143Units for sample rate or frame rate.
Glenn Kasten298f3822013-06-12 17:17:36 -0700144</dd>
145
Glenn Kasten628654f2015-02-05 13:06:10 -0800146<dt>high-resolution audio</dt>
147<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700148Representation with greater bit-depth and sample rate than CDs (stereo 16-bit
149PCM at 44.1 kHz) and without lossy data compression. Equivalent to HD audio.
150For details, refer to
151<a href="http://en.wikipedia.org/wiki/High-resolution_audio">high-resolution
152audio</a>.
Glenn Kasten628654f2015-02-05 13:06:10 -0800153</dd>
154
Glenn Kasten298f3822013-06-12 17:17:36 -0700155<dt>latency</dt>
156<dd>
157Time delay as a signal passes through a system.
158</dd>
159
Glenn Kasten628654f2015-02-05 13:06:10 -0800160<dt>lossless</dt>
161<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700162A <a href="http://en.wikipedia.org/wiki/Lossless_compression">lossless data
163compression algorithm</a> that preserves bit accuracy across encoding and
164decoding, where the result of decoding previously encoded data is equivalent
165to the original data. Examples of lossless audio content distribution formats
166include <a href="http://en.wikipedia.org/wiki/Compact_disc">CDs</a>, PCM within
Glenn Kasten628654f2015-02-05 13:06:10 -0800167<a href="http://en.wikipedia.org/wiki/WAV">WAV</a>, and
168<a href="http://en.wikipedia.org/wiki/FLAC">FLAC</a>.
Heidi von Markham52c19b92015-04-14 14:25:14 -0700169The authoring process may reduce the bit depth or sample rate from that of the
170<a href="http://en.wikipedia.org/wiki/Audio_mastering">masters</a>; distribution
171formats that preserve the resolution and bit accuracy of masters are the subject
172of high-resolution audio.
Glenn Kasten628654f2015-02-05 13:06:10 -0800173</dd>
174
Glenn Kastene158b8e2015-02-06 09:48:11 -0800175<dt>lossy</dt>
176<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700177A <a href="http://en.wikipedia.org/wiki/Lossy_compression">lossy data
178compression algorithm</a> that attempts to preserve the most important features
179of media across encoding and decoding where the result of decoding previously
180encoded data is perceptually similar to the original data but not identical.
181Examples of lossy audio compression algorithms include MP3 and AAC. As analog
182values are from a continuous domain and digital values are discrete, ADC and DAC
183are lossy conversions with respect to amplitude. See also <em>transparency</em>.
Glenn Kastene158b8e2015-02-06 09:48:11 -0800184</dd>
185
Glenn Kasten963fd952013-04-18 17:26:23 -0700186<dt>mono</dt>
187<dd>
188One channel.
189</dd>
190
Glenn Kasten5df2d522013-09-27 11:50:35 -0700191<dt>multichannel</dt>
192<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700193See <em>surround sound</em>. In strict terms, <em>stereo</em> is more than one
194channel and could be considered multichannel; however, such usage is confusing
195and thus avoided.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700196</dd>
197
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700198<dt>mute</dt>
199<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700200Temporarily force volume to be zero, independent from the usual volume controls.
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700201</dd>
202
Glenn Kasten978bec82014-12-23 15:15:20 -0800203<dt>overrun</dt>
204<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700205Audible <a href="http://en.wikipedia.org/wiki/Glitch">glitch</a> caused by
206failure to accept supplied data in sufficient time. For details, refer to
207<a href="http://en.wikipedia.org/wiki/Buffer_underrun">buffer underrun</a>.
208Compare to <em>underrun</em>.
Glenn Kasten978bec82014-12-23 15:15:20 -0800209</dd>
210
211<dt>panning</dt>
212<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700213Direct a signal to a desired position within a stereo or multichannel field.
Glenn Kasten978bec82014-12-23 15:15:20 -0800214</dd>
215
Glenn Kasten5df2d522013-09-27 11:50:35 -0700216<dt>PCM</dt>
217<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700218Pulse Code Modulation. Most common low-level encoding of digital audio. The
219audio signal is sampled at a regular interval, called the sample rate, then
220quantized to discrete values within a particular range depending on the bit
221depth. For example, for 16-bit PCM the sample values are integers between
222-32768 and +32767.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700223</dd>
224
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700225<dt>ramp</dt>
226<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700227Gradually increase or decrease the level of a particular audio parameter, such
228as the volume or the strength of an effect. A volume ramp is commonly applied
229when pausing and resuming music to avoid a hard audible transition.
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700230</dd>
231
Glenn Kasten963fd952013-04-18 17:26:23 -0700232<dt>sample</dt>
233<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700234Number representing the audio value for a single channel at a point in time.
Glenn Kasten963fd952013-04-18 17:26:23 -0700235</dd>
236
237<dt>sample rate or frame rate</dt>
238<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700239Number of frames per second. While <em>frame rate</em> is more accurate,
240<em>sample rate</em> is conventionally used to mean frame rate.
Glenn Kasten963fd952013-04-18 17:26:23 -0700241</dd>
242
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700243<dt>sonification</dt>
244<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700245Use of sound to express feedback or information, such as touch sounds and
246keyboard sounds.
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700247</dd>
248
Glenn Kasten963fd952013-04-18 17:26:23 -0700249<dt>stereo</dt>
250<dd>
251Two channels.
252</dd>
253
Glenn Kasten5df2d522013-09-27 11:50:35 -0700254<dt>stereo widening</dt>
255<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700256Effect applied to a stereo signal to make another stereo signal that sounds
257fuller and richer. The effect can also be applied to a mono signal, where it is
258a type of upmixing.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700259</dd>
260
261<dt>surround sound</dt>
262<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700263Techniques for increasing the ability of a listener to perceive sound position
264beyond stereo left and right.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700265</dd>
266
Glenn Kastene158b8e2015-02-06 09:48:11 -0800267<dt>transparency</dt>
268<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700269Ideal result of lossy data compression. Lossy data conversion is transparent if
270it is perceptually indistinguishable from the original by a human subject. For
271details, refer to
272<a href="http://en.wikipedia.org/wiki/Transparency_%28data_compression%29">Transparency</a>.
273
Glenn Kastene158b8e2015-02-06 09:48:11 -0800274</dd>
275
Glenn Kasten978bec82014-12-23 15:15:20 -0800276<dt>underrun</dt>
277<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700278Audible <a href="http://en.wikipedia.org/wiki/Glitch">glitch</a> caused by
279failure to supply needed data in sufficient time. For details, refer to
280<a href="http://en.wikipedia.org/wiki/Buffer_underrun">buffer underrun</a>.
281Compare to <em>overrun</em>.
Glenn Kasten978bec82014-12-23 15:15:20 -0800282</dd>
283
Glenn Kasten5df2d522013-09-27 11:50:35 -0700284<dt>upmixing</dt>
285<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700286Increase the number of channels, such as from mono to stereo or from stereo to
287surround sound. Accomplished by duplication, panning, or more advanced signal
288processing. Compare to <em>downmixing</em>.
Glenn Kasten795a9de2014-01-24 08:58:56 -0800289</dd>
Glenn Kasten963fd952013-04-18 17:26:23 -0700290
Glenn Kasten5df2d522013-09-27 11:50:35 -0700291<dt>virtualizer</dt>
292<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700293Effect that attempts to spatialize audio channels, such as trying to simulate
294more speakers or give the illusion that sound sources have position.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700295</dd>
296
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700297<dt>volume</dt>
298<dd>
299Loudness, the subjective strength of an audio signal.
300</dd>
301
Glenn Kasten795a9de2014-01-24 08:58:56 -0800302</dl>
303
Heidi von Markham52c19b92015-04-14 14:25:14 -0700304<h3 id="interDeviceTerms">Inter-device interconnect</h3>
Glenn Kasten5df2d522013-09-27 11:50:35 -0700305
306<p>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700307Inter-device interconnection technologies connect audio and video components
308between devices and are readily visible at the external connectors. The HAL
309implementer and end user should be aware of these terms.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700310</p>
311
312<dl>
313
314<dt>Bluetooth</dt>
315<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700316Short range wireless technology. For details on the audio-related
Clay Murphydc85c742014-09-10 15:10:03 -0700317<a href="http://en.wikipedia.org/wiki/Bluetooth_profile">Bluetooth profiles</a>
Glenn Kasten5df2d522013-09-27 11:50:35 -0700318and
Heidi von Markham52c19b92015-04-14 14:25:14 -0700319<a href="http://en.wikipedia.org/wiki/Bluetooth_protocols">Bluetooth protocols</a>,
320refer to <a href="http://en.wikipedia.org/wiki/Bluetooth_profile#Advanced_Audio_Distribution_Profile_.28A2DP.29">A2DP</a> for
321music, <a href="http://en.wikipedia.org/wiki/Bluetooth_protocols#Synchronous_connection-oriented_.28SCO.29_link">SCO</a> for telephony, and <a href="http://en.wikipedia.org/wiki/List_of_Bluetooth_profiles#Audio.2FVideo_Remote_Control_Profile_.28AVRCP.29">Audio/Video Remote Control Profile (AVRCP)</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700322</dd>
323
324<dt>DisplayPort</dt>
325<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700326Digital display interface by the Video Electronics Standards Association (VESA).
Glenn Kasten5df2d522013-09-27 11:50:35 -0700327</dd>
328
329<dt>HDMI</dt>
330<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700331High-Definition Multimedia Interface. Interface for transferring audio and
332video data. For mobile devices, a micro-HDMI (type D) or MHL connector is used.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700333</dd>
334
Glenn Kastene158b8e2015-02-06 09:48:11 -0800335<dt>Intel HDA</dt>
336<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700337Intel High Definition Audio (do not confuse with generic <em>high-definition
338audio</em> or <em>high-resolution audio</em>). Specification for a front-panel
339connector. For details, refer to
340<a href="http://en.wikipedia.org/wiki/Intel_High_Definition_Audio">Intel High
341Definition Audio</a>.
Glenn Kastene158b8e2015-02-06 09:48:11 -0800342</dd>
343
Glenn Kasten2956d762015-05-21 13:03:22 -0700344<dt>line level</dt>
345<dd>
346<a href="http://en.wikipedia.org/wiki/Line_level">Line level</a> is the strength
347of an analog audio signal that passes between audio components, not transducers.
348</dd>
349
Glenn Kasten5df2d522013-09-27 11:50:35 -0700350<dt>MHL</dt>
351<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700352Mobile High-Definition Link. Mobile audio/video interface, often over micro-USB
353connector.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700354</dd>
355
356<dt>phone connector</dt>
357<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700358Mini or sub-mini component that connects a device to wired headphones, headset,
359or line-level amplifier.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700360</dd>
361
362<dt>SlimPort</dt>
363<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700364Adapter from micro-USB to HDMI.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700365</dd>
366
367<dt>S/PDIF</dt>
368<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700369Sony/Philips Digital Interface Format. Interconnect for uncompressed PCM. For
370details, refer to <a href="http://en.wikipedia.org/wiki/S/PDIF">S/PDIF</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700371</dd>
372
Glenn Kastene158b8e2015-02-06 09:48:11 -0800373<dt>Thunderbolt</dt>
374<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700375Multimedia interface that competes with USB and HDMI for connecting to high-end
376peripherals. For details, refer to <a href="http://en.wikipedia.org/wiki/Thunderbolt_%28interface%29">Thunderbolt</a>.
Glenn Kastene158b8e2015-02-06 09:48:11 -0800377</dd>
378
Glenn Kasten5df2d522013-09-27 11:50:35 -0700379<dt>USB</dt>
380<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700381Universal Serial Bus. For details, refer to
382<a href="http://en.wikipedia.org/wiki/USB">USB</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700383</dd>
384
385</dl>
386
Heidi von Markham52c19b92015-04-14 14:25:14 -0700387<h3 id="intraDeviceTerms">Intra-device interconnect</h3>
Glenn Kasten5df2d522013-09-27 11:50:35 -0700388
389<p>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700390Intra-device interconnection technologies connect internal audio components
391within a given device and are not visible without disassembling the device. The
392HAL implementer may need to be aware of these, but not the end user. For details
393on intra-device interconnections, refer to the following articles:
Glenn Kastene158b8e2015-02-06 09:48:11 -0800394</p>
Glenn Kasten5df2d522013-09-27 11:50:35 -0700395<ul>
Clay Murphydc85c742014-09-10 15:10:03 -0700396<li><a href="http://en.wikipedia.org/wiki/General-purpose_input/output">GPIO</a></li>
Glenn Kasten978bec82014-12-23 15:15:20 -0800397<li><a href="http://en.wikipedia.org/wiki/I%C2%B2C">I²C</a>, for control channel</li>
Glenn Kasten2956d762015-05-21 13:03:22 -0700398<li><a href="http://en.wikipedia.org/wiki/I%C2%B2S">I²S</a>, for audio data, simpler than SLIMbus</li>
Clay Murphydc85c742014-09-10 15:10:03 -0700399<li><a href="http://en.wikipedia.org/wiki/McASP">McASP</a></li>
400<li><a href="http://en.wikipedia.org/wiki/SLIMbus">SLIMbus</a></li>
401<li><a href="http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus">SPI</a></li>
Glenn Kasten5df2d522013-09-27 11:50:35 -0700402</ul>
403
404<h3 id="signalTerms">Audio Signal Path</h3>
405
406<p>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700407Audio signal path terms relate to the signal path that audio data follows from
408an application to the transducer or vice-versa.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700409</p>
410
Glenn Kasten795a9de2014-01-24 08:58:56 -0800411<dl>
412
Glenn Kasten5df2d522013-09-27 11:50:35 -0700413<dt>ADC</dt>
414<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700415Analog-to-digital converter. Module that converts an analog signal (continuous
416in time and amplitude) to a digital signal (discrete in time and amplitude).
417Conceptually, an ADC consists of a periodic sample-and-hold followed by a
418quantizer, although it does not have to be implemented that way. An ADC is
419usually preceded by a low-pass filter to remove any high frequency components
420that are not representable using the desired sample rate. For details, refer to
421<a href="http://en.wikipedia.org/wiki/Analog-to-digital_converter">Analog-to-digital
422converter</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700423</dd>
424
425<dt>AP</dt>
426<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700427Application processor. Main general-purpose computer on a mobile device.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700428</dd>
429
430<dt>codec</dt>
431<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700432Coder-decoder. Module that encodes and/or decodes an audio signal from one
433representation to another (typically analog to PCM or PCM to analog). In strict
434terms, <em>codec</em> is reserved for modules that both encode and decode but
435can be used loosely to refer to only one of these. For details, refer to
Clay Murphydc85c742014-09-10 15:10:03 -0700436<a href="http://en.wikipedia.org/wiki/Audio_codec">Audio codec</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700437</dd>
438
439<dt>DAC</dt>
440<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700441Digital-to-analog converter. Module that converts a digital signal (discrete in
442time and amplitude) to an analog signal (continuous in time and amplitude).
443Often followed by a low-pass filter to remove high-frequency components
444introduced by digital quantization. For details, refer to
445<a href="http://en.wikipedia.org/wiki/Digital-to-analog_converter">Digital-to-analog
446converter</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700447</dd>
448
449<dt>DSP</dt>
450<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700451Digital Signal Processor. Optional component typically located after the
452application processor (for output) or before the application processor (for
453input). Primary purpose is to off-load the application processor and provide
454signal processing features at a lower power cost.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700455</dd>
456
457<dt>PDM</dt>
458<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700459Pulse-density modulation. Form of modulation used to represent an analog signal
460by a digital signal, where the relative density of 1s versus 0s indicates the
461signal level. Commonly used by digital to analog converters. For details, refer
462to <a href="http://en.wikipedia.org/wiki/Pulse-density_modulation">Pulse-density
463modulation</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700464</dd>
465
466<dt>PWM</dt>
467<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700468Pulse-width modulation. Form of modulation used to represent an analog signal by
469a digital signal, where the relative width of a digital pulse indicates the
470signal level. Commonly used by analog-to-digital converters. For details, refer
471to <a href="http://en.wikipedia.org/wiki/Pulse-width_modulation">Pulse-width
472modulation</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700473</dd>
474
Glenn Kasten978bec82014-12-23 15:15:20 -0800475<dt>transducer</dt>
476<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700477Converts variations in physical real-world quantities to electrical signals. In
478audio, the physical quantity is sound pressure, and the transducers are the
479loudspeaker and microphone. For details, refer to
Glenn Kasten978bec82014-12-23 15:15:20 -0800480<a href="http://en.wikipedia.org/wiki/Transducer">Transducer</a>.
481</dd>
482
Glenn Kasten795a9de2014-01-24 08:58:56 -0800483</dl>
Glenn Kasten5df2d522013-09-27 11:50:35 -0700484
Clay Murphy5d83ab42014-09-09 17:29:09 -0700485<h3 id="srcTerms">Sample Rate Conversion</h3>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700486<p>
487Sample rate conversion terms relate to the process of converting from one
488sampling rate to another.
489</p>
Clay Murphy5d83ab42014-09-09 17:29:09 -0700490
491<dl>
492
493<dt>downsample</dt>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700494<dd>Resample, where sink sample rate &lt; source sample rate.</dd>
Clay Murphy5d83ab42014-09-09 17:29:09 -0700495
496<dt>Nyquist frequency</dt>
497<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700498Maximum frequency component that can be represented by a discretized signal at
4991/2 of a given sample rate. For example, the human hearing range extends to
500approximately 20 kHz, so a digital audio signal must have a sample rate of at
501least 40 kHz to represent that range. In practice, sample rates of 44.1 kHz and
50248 kHz are commonly used, with Nyquist frequencies of 22.05 kHz and 24 kHz
503respectively. For details, refer to
Glenn Kastenff257d42014-11-10 16:29:03 -0800504<a href="http://en.wikipedia.org/wiki/Nyquist_frequency">Nyquist frequency</a>
Clay Murphy5d83ab42014-09-09 17:29:09 -0700505and
Heidi von Markham52c19b92015-04-14 14:25:14 -0700506<a href="http://en.wikipedia.org/wiki/Hearing_range">Hearing range</a>.
Clay Murphy5d83ab42014-09-09 17:29:09 -0700507</dd>
508
509<dt>resampler</dt>
510<dd>Synonym for sample rate converter.</dd>
511
512<dt>resampling</dt>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700513<dd>Process of converting sample rate.</dd>
Clay Murphy5d83ab42014-09-09 17:29:09 -0700514
515<dt>sample rate converter</dt>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700516<dd>Module that resamples.</dd>
Clay Murphy5d83ab42014-09-09 17:29:09 -0700517
518<dt>sink</dt>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700519<dd>Output of a resampler.</dd>
Clay Murphy5d83ab42014-09-09 17:29:09 -0700520
521<dt>source</dt>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700522<dd>Input to a resampler.</dd>
Clay Murphy5d83ab42014-09-09 17:29:09 -0700523
524<dt>upsample</dt>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700525<dd>Resample, where sink sample rate &gt; source sample rate.</dd>
Clay Murphy5d83ab42014-09-09 17:29:09 -0700526
527</dl>
528
Glenn Kasten963fd952013-04-18 17:26:23 -0700529<h2 id="androidSpecificTerms">Android-Specific Terms</h2>
530
531<p>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700532Android-specific terms include terms used only in the Android audio framework
533and generic terms that have special meaning within Android.
Glenn Kasten963fd952013-04-18 17:26:23 -0700534</p>
535
536<dl>
537
538<dt>ALSA</dt>
539<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700540Advanced Linux Sound Architecture. An audio framework for Linux that has also
541influenced other systems. For a generic definition, refer to
542<a href="http://en.wikipedia.org/wiki/Advanced_Linux_Sound_Architecture">ALSA</a>.
543In Android, ALSA refers to the kernel audio framework and drivers and not to the
544user-mode API. See also <em>tinyalsa</em>.
Glenn Kasten963fd952013-04-18 17:26:23 -0700545</dd>
546
Glenn Kastene158b8e2015-02-06 09:48:11 -0800547<dt>audio device</dt>
548<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700549Audio I/O endpoint backed by a HAL implementation.
Glenn Kastene158b8e2015-02-06 09:48:11 -0800550</dd>
551
Glenn Kasten298f3822013-06-12 17:17:36 -0700552<dt>AudioEffect</dt>
553<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700554API and implementation framework for output (post-processing) effects and input
555(pre-processing) effects. The API is defined at
Clay Murphydc85c742014-09-10 15:10:03 -0700556<a href="http://developer.android.com/reference/android/media/audiofx/AudioEffect.html">android.media.audiofx.AudioEffect</a>.
Glenn Kasten298f3822013-06-12 17:17:36 -0700557</dd>
558
Glenn Kasten963fd952013-04-18 17:26:23 -0700559<dt>AudioFlinger</dt>
560<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700561Android sound server implementation. AudioFlinger runs within the mediaserver
562process. For a generic definition, refer to
563<a href="http://en.wikipedia.org/wiki/Sound_server">Sound server</a>.
Glenn Kasten963fd952013-04-18 17:26:23 -0700564</dd>
565
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700566<dt>audio focus</dt>
567<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700568Set of APIs for managing audio interactions across multiple independent apps.
569For details, see <a href="http://developer.android.com/training/managing-audio/audio-focus.html">Managing Audio Focus</a> and the focus-related methods and constants of
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700570<a href="http://developer.android.com/reference/android/media/AudioManager.html">android.media.AudioManager</a>.
571</dd>
572
Glenn Kasten963fd952013-04-18 17:26:23 -0700573<dt>AudioMixer</dt>
574<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700575Module in AudioFlinger responsible for combining multiple tracks and applying
576attenuation (volume) and effects. For a generic definition, refer to
577<a href="http://en.wikipedia.org/wiki/Audio_mixing_(recorded_music)">Audio mixing (recorded music)</a> (discusses a mixer as a hardware device or software application, rather
578than a software module within a system).
Glenn Kasten963fd952013-04-18 17:26:23 -0700579</dd>
580
Glenn Kasten5df2d522013-09-27 11:50:35 -0700581<dt>audio policy</dt>
582<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700583Service responsible for all actions that require a policy decision to be made
584first, such as opening a new I/O stream, re-routing after a change, and stream
585volume management.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700586</dd>
587
Glenn Kasten963fd952013-04-18 17:26:23 -0700588<dt>AudioRecord</dt>
589<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700590Primary low-level client API for receiving data from an audio input device such
591as a microphone. The data is usually PCM format. The API is defined at
Clay Murphydc85c742014-09-10 15:10:03 -0700592<a href="http://developer.android.com/reference/android/media/AudioRecord.html">android.media.AudioRecord</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700593</dd>
Glenn Kasten963fd952013-04-18 17:26:23 -0700594
595<dt>AudioResampler</dt>
596<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700597Module in AudioFlinger responsible for <a href="src.html">sample rate conversion</a>.
Glenn Kasten963fd952013-04-18 17:26:23 -0700598</dd>
599
Glenn Kastene158b8e2015-02-06 09:48:11 -0800600<dt>audio source</dt>
601<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700602An enumeration of constants that indicates the desired use case for capturing
603audio input. For details, see <a href="http://developer.android.com/reference/android/media/MediaRecorder.AudioSource.html">audio source</a>. As of API level 21 and above,
604<a href="attributes.html">audio attributes</a> are preferred.
Glenn Kastene158b8e2015-02-06 09:48:11 -0800605</dd>
606
Glenn Kasten963fd952013-04-18 17:26:23 -0700607<dt>AudioTrack</dt>
608<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700609Primary low-level client API for sending data to an audio output device such as
610a speaker. The data is usually in PCM format. The API is defined at
Clay Murphydc85c742014-09-10 15:10:03 -0700611<a href="http://developer.android.com/reference/android/media/AudioTrack.html">android.media.AudioTrack</a>.
Glenn Kasten963fd952013-04-18 17:26:23 -0700612</dd>
613
Glenn Kasten73512002015-01-15 10:06:31 -0800614<dt>audio_utils</dt>
615<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700616Audio utility library for features such as PCM format conversion, WAV file I/O,
617and
618<a href="avoiding_pi.html#nonBlockingAlgorithms">non-blocking FIFO</a>, which is
619largely independent of the Android platform.
Glenn Kasten73512002015-01-15 10:06:31 -0800620</dd>
621
Glenn Kasten963fd952013-04-18 17:26:23 -0700622<dt>client</dt>
623<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700624Usually an application or app client. However, an AudioFlinger client can be a
625thread running within the mediaserver system process, such as when playing media
626decoded by a MediaPlayer object.
Glenn Kasten963fd952013-04-18 17:26:23 -0700627</dd>
628
629<dt>HAL</dt>
630<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700631Hardware Abstraction Layer. HAL is a generic term in Android; in audio, it is a
632layer between AudioFlinger and the kernel device driver with a C API (which
633replaces the C++ libaudio).
Glenn Kasten963fd952013-04-18 17:26:23 -0700634</dd>
635
Glenn Kasten978bec82014-12-23 15:15:20 -0800636<dt>FastCapture</dt>
637<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700638Thread within AudioFlinger that sends audio data to lower latency fast tracks
Glenn Kasten978bec82014-12-23 15:15:20 -0800639and drives the input device when configured for reduced latency.
640</dd>
641
Glenn Kasten963fd952013-04-18 17:26:23 -0700642<dt>FastMixer</dt>
643<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700644Thread within AudioFlinger that receives and mixes audio data from lower latency
645fast tracks and drives the primary output device when configured for reduced
646latency.
Glenn Kasten963fd952013-04-18 17:26:23 -0700647</dd>
648
649<dt>fast track</dt>
650<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700651AudioTrack or AudioRecord client with lower latency but fewer features on some
652devices and routes.
Glenn Kasten963fd952013-04-18 17:26:23 -0700653</dd>
654
655<dt>MediaPlayer</dt>
656<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700657Higher-level client API than AudioTrack. Plays encoded content or content that
658includes multimedia audio and video tracks.
Glenn Kasten963fd952013-04-18 17:26:23 -0700659</dd>
660
Glenn Kasten298f3822013-06-12 17:17:36 -0700661<dt>media.log</dt>
662<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700663AudioFlinger debugging feature available in custom builds only. Used for logging
664audio events to a circular buffer where they can then be retroactively dumped
665when needed.
Glenn Kasten298f3822013-06-12 17:17:36 -0700666</dd>
667
Glenn Kasten963fd952013-04-18 17:26:23 -0700668<dt>mediaserver</dt>
669<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700670Android system process that contains media-related services, including
671AudioFlinger.
Glenn Kasten963fd952013-04-18 17:26:23 -0700672</dd>
673
674<dt>NBAIO</dt>
675<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700676Non-blocking audio input/output. Abstraction for AudioFlinger ports. The term
677can be misleading as some implementations of the NBAIO API support blocking. The
678key implementations of NBAIO are for different types of pipes.
Glenn Kasten963fd952013-04-18 17:26:23 -0700679</dd>
680
681<dt>normal mixer</dt>
682<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700683Thread within AudioFlinger that services most full-featured AudioTrack clients.
684Directly drives an output device or feeds its sub-mix into FastMixer via a pipe.
Glenn Kasten963fd952013-04-18 17:26:23 -0700685</dd>
686
687<dt>OpenSL ES</dt>
688<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700689Audio API standard by
Glenn Kasten978bec82014-12-23 15:15:20 -0800690<a href="http://www.khronos.org/">The Khronos Group</a>. Android versions since
691API level 9 support a native audio API that is based on a subset of
692<a href="http://www.khronos.org/opensles/">OpenSL ES 1.0.1</a>.
Glenn Kasten963fd952013-04-18 17:26:23 -0700693</dd>
694
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700695<dt>silent mode</dt>
696<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700697User-settable feature to mute the phone ringer and notifications without
698affecting media playback (music, videos, games) or alarms.
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700699</dd>
700
Glenn Kasten5df2d522013-09-27 11:50:35 -0700701<dt>SoundPool</dt>
702<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700703Higher-level client API than AudioTrack. Plays sampled audio clips. Useful for
704triggering UI feedback, game sounds, etc. The API is defined at
Clay Murphydc85c742014-09-10 15:10:03 -0700705<a href="http://developer.android.com/reference/android/media/SoundPool.html">android.media.SoundPool</a>.
Glenn Kasten5df2d522013-09-27 11:50:35 -0700706</dd>
Glenn Kasten5df2d522013-09-27 11:50:35 -0700707
708<dt>Stagefright</dt>
709<dd>
710See <a href="{@docRoot}devices/media.html">Media</a>.
711</dd>
712
Glenn Kasten963fd952013-04-18 17:26:23 -0700713<dt>StateQueue</dt>
714<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700715Module within AudioFlinger responsible for synchronizing state among threads.
716Whereas NBAIO is used to pass data, StateQueue is used to pass control
717information.
Glenn Kasten963fd952013-04-18 17:26:23 -0700718</dd>
719
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700720<dt>strategy</dt>
721<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700722Group of stream types with similar behavior. Used by the audio policy service.
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700723</dd>
724
725<dt>stream type</dt>
726<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700727Enumeration that expresses a use case for audio output. The audio policy
728implementation uses the stream type, along with other parameters, to determine
729volume and routing decisions. For a list of stream types, see
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700730<a href="http://developer.android.com/reference/android/media/AudioManager.html">android.media.AudioManager</a>.
731</dd>
732
Glenn Kasten298f3822013-06-12 17:17:36 -0700733<dt>tee sink</dt>
734<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700735See <a href="debugging.html#teeSink">Audio Debugging</a>.
Glenn Kasten298f3822013-06-12 17:17:36 -0700736</dd>
737
Glenn Kasten963fd952013-04-18 17:26:23 -0700738<dt>tinyalsa</dt>
739<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700740Small user-mode API above ALSA kernel with BSD license. Recommended for HAL
741implementations.
Glenn Kasten963fd952013-04-18 17:26:23 -0700742</dd>
743
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700744<dt>ToneGenerator</dt>
745<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700746Higher-level client API than AudioTrack. Plays dual-tone multi-frequency (DTMF)
747signals. For details, refer to
748<a href="http://en.wikipedia.org/wiki/Dual-tone_multi-frequency_signaling">Dual-tone
749multi-frequency signaling</a> and the API definition at
Clay Murphydc85c742014-09-10 15:10:03 -0700750<a href="http://developer.android.com/reference/android/media/ToneGenerator.html">android.media.ToneGenerator</a>.
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700751</dd>
752
Glenn Kasten963fd952013-04-18 17:26:23 -0700753<dt>track</dt>
754<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700755Audio stream. Controlled by the AudioTrack or AudioRecord API.
Glenn Kasten963fd952013-04-18 17:26:23 -0700756</dd>
757
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700758<dt>volume attenuation curve</dt>
759<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700760Device-specific mapping from a generic volume index to a specific attenuation
761factor for a given output.
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700762</dd>
763
764<dt>volume index</dt>
765<dd>
Heidi von Markham52c19b92015-04-14 14:25:14 -0700766Unitless integer that expresses the desired relative volume of a stream. The
767volume-related APIs of
Glenn Kastenfdc7b7b2013-10-28 11:11:34 -0700768<a href="http://developer.android.com/reference/android/media/AudioManager.html">android.media.AudioManager</a>
769operate in volume indices rather than absolute attenuation factors.
770</dd>
771
Glenn Kasten2956d762015-05-21 13:03:22 -0700772</dl>