| Glenn Kasten | 963fd95 | 2013-04-18 17:26:23 -0700 | [diff] [blame] | 1 | page.title=Audio Terminology | 
 | 2 | @jd:body | 
 | 3 |  | 
 | 4 | <div id="qv-wrapper"> | 
 | 5 |   <div id="qv"> | 
 | 6 |     <h2>In this document</h2> | 
 | 7 |     <ol id="auto-toc"> | 
 | 8 |     </ol> | 
 | 9 |   </div> | 
 | 10 | </div> | 
 | 11 |  | 
 | 12 | <p> | 
 | 13 | This document provides a glossary of audio-related terminology, including | 
 | 14 | a list of widely used, generic terms and a list of terms that are specific | 
 | 15 | to Android. | 
 | 16 | </p> | 
 | 17 |  | 
 | 18 | <h2 id="genericTerm">Generic Terms</h2> | 
 | 19 |  | 
 | 20 | <p> | 
 | 21 | These are audio terms that are widely used, with their conventional meanings. | 
 | 22 | </p> | 
 | 23 |  | 
| Glenn Kasten | 5df2d52 | 2013-09-27 11:50:35 -0700 | [diff] [blame] | 24 | <h3 id="digitalAudioTerms">Digital Audio</h3> | 
 | 25 |  | 
| Glenn Kasten | 963fd95 | 2013-04-18 17:26:23 -0700 | [diff] [blame] | 26 | <dl> | 
 | 27 |  | 
| Glenn Kasten | 298f382 | 2013-06-12 17:17:36 -0700 | [diff] [blame] | 28 | <dt>acoustics</dt> | 
 | 29 | <dd> | 
 | 30 | The study of the mechanical properties of sound, for example how the | 
 | 31 | physical placement of transducers such as speakers and microphones on | 
 | 32 | a device affects perceived audio quality. | 
 | 33 | </dd> | 
 | 34 |  | 
| Glenn Kasten | 5df2d52 | 2013-09-27 11:50:35 -0700 | [diff] [blame] | 35 | <dt>attenuation</dt> | 
 | 36 | <dd> | 
 | 37 | A multiplicative factor less than or equal to 1.0, | 
 | 38 | applied to an audio signal to decrease the signal level. | 
 | 39 | Compare to "gain". | 
 | 40 | </dd> | 
 | 41 |  | 
| Glenn Kasten | 963fd95 | 2013-04-18 17:26:23 -0700 | [diff] [blame] | 42 | <dt>bits per sample or bit depth</dt> | 
 | 43 | <dd> | 
 | 44 | Number of bits of information per sample. | 
 | 45 | </dd> | 
 | 46 |  | 
 | 47 | <dt>channel</dt> | 
 | 48 | <dd> | 
 | 49 | A single stream of audio information, usually corresponding to one | 
 | 50 | location of recording or playback. | 
 | 51 | </dd> | 
 | 52 |  | 
| Glenn Kasten | 5df2d52 | 2013-09-27 11:50:35 -0700 | [diff] [blame] | 53 | <dt>downmixing</dt> | 
 | 54 | <dd> | 
 | 55 | To decrease the number of channels, e.g. from stereo to mono, or from 5.1 to stereo. | 
 | 56 | This can be accomplished by dropping some channels, mixing channels, or more advanced signal processing. | 
 | 57 | Simple mixing without attenuation or limiting has the potential for overflow and clipping. | 
 | 58 | Compare to "upmixing". | 
| Glenn Kasten | fdc7b7b | 2013-10-28 11:11:34 -0700 | [diff] [blame] | 59 | </dd> | 
 | 60 |  | 
 | 61 | <dt>duck</dt> | 
 | 62 | <dd> | 
 | 63 | To temporarily reduce the volume of one stream, when another stream | 
 | 64 | becomes active.  For example, if music is playing and a notification arrives, | 
 | 65 | then the music stream could be ducked while the notification plays. | 
 | 66 | Compare to "mute". | 
 | 67 | </dd> | 
| Glenn Kasten | 5df2d52 | 2013-09-27 11:50:35 -0700 | [diff] [blame] | 68 |  | 
| Glenn Kasten | 963fd95 | 2013-04-18 17:26:23 -0700 | [diff] [blame] | 69 | <dt>frame</dt> | 
 | 70 | <dd> | 
 | 71 | A set of samples, one per channel, at a point in time. | 
 | 72 | </dd> | 
 | 73 |  | 
 | 74 | <dt>frames per buffer</dt> | 
 | 75 | <dd> | 
 | 76 | The number of frames handed from one module to the next at once; | 
 | 77 | for example the audio HAL interface uses this concept. | 
 | 78 | </dd> | 
 | 79 |  | 
| Glenn Kasten | 5df2d52 | 2013-09-27 11:50:35 -0700 | [diff] [blame] | 80 | <dt>gain</dt> | 
 | 81 | <dd> | 
 | 82 | A multiplicative factor greater than or equal to 1.0, | 
 | 83 | applied to an audio signal to increase the signal level. | 
 | 84 | Compare to "attenuation". | 
 | 85 | </dd> | 
 | 86 |  | 
| Glenn Kasten | 298f382 | 2013-06-12 17:17:36 -0700 | [diff] [blame] | 87 | <dt>Hz</dt> | 
 | 88 | <dd> | 
 | 89 | The units for sample rate or frame rate. | 
 | 90 | </dd> | 
 | 91 |  | 
 | 92 | <dt>latency</dt> | 
 | 93 | <dd> | 
 | 94 | Time delay as a signal passes through a system. | 
 | 95 | </dd> | 
 | 96 |  | 
| Glenn Kasten | 963fd95 | 2013-04-18 17:26:23 -0700 | [diff] [blame] | 97 | <dt>mono</dt> | 
 | 98 | <dd> | 
 | 99 | One channel. | 
 | 100 | </dd> | 
 | 101 |  | 
| Glenn Kasten | 5df2d52 | 2013-09-27 11:50:35 -0700 | [diff] [blame] | 102 | <dt>multichannel</dt> | 
 | 103 | <dd> | 
 | 104 | See "surround sound". | 
 | 105 | Strictly, since stereo is more than one channel, it is also "multi" channel. | 
 | 106 | But that usage would be confusing. | 
 | 107 | </dd> | 
 | 108 |  | 
| Glenn Kasten | fdc7b7b | 2013-10-28 11:11:34 -0700 | [diff] [blame] | 109 | <dt>mute</dt> | 
 | 110 | <dd> | 
 | 111 | To (temporarily) force volume to be zero, independently from the usual volume controls. | 
 | 112 | </dd> | 
 | 113 |  | 
| Glenn Kasten | 5df2d52 | 2013-09-27 11:50:35 -0700 | [diff] [blame] | 114 | <dt>PCM</dt> | 
 | 115 | <dd> | 
 | 116 | Pulse Code Modulation, the most common low-level encoding of digital audio. | 
 | 117 | The audio signal is sampled at a regular interval, called the sample rate, | 
 | 118 | and then quantized to discrete values within a particular range depending on the bit depth. | 
 | 119 | For example, for 16-bit PCM, the sample values are integers between -32768 and +32767. | 
 | 120 | </dd> | 
 | 121 |  | 
| Glenn Kasten | fdc7b7b | 2013-10-28 11:11:34 -0700 | [diff] [blame] | 122 | <dt>ramp</dt> | 
 | 123 | <dd> | 
 | 124 | To gradually increase or decrease the level of a particular audio parameter, | 
 | 125 | for example volume or the strength of an effect. | 
 | 126 | A volume ramp is commonly applied when pausing and resuming music, to avoid a hard audible transition. | 
 | 127 | </dd> | 
 | 128 |  | 
| Glenn Kasten | 963fd95 | 2013-04-18 17:26:23 -0700 | [diff] [blame] | 129 | <dt>sample</dt> | 
 | 130 | <dd> | 
 | 131 | A number representing the audio value for a single channel at a point in time. | 
 | 132 | </dd> | 
 | 133 |  | 
 | 134 | <dt>sample rate or frame rate</dt> | 
 | 135 | <dd> | 
 | 136 | Number of frames per second; | 
 | 137 | note that "frame rate" is thus more accurate, | 
| Clay Murphy | c28f237 | 2013-09-25 16:13:40 -0700 | [diff] [blame] | 138 | but "sample rate" is conventionally used to mean "frame rate." | 
| Glenn Kasten | 963fd95 | 2013-04-18 17:26:23 -0700 | [diff] [blame] | 139 | </dd> | 
 | 140 |  | 
| Glenn Kasten | fdc7b7b | 2013-10-28 11:11:34 -0700 | [diff] [blame] | 141 | <dt>sonification</dt> | 
 | 142 | <dd> | 
 | 143 | The use of sound to express feedback or information, | 
 | 144 | for example touch sounds and keyboard sounds. | 
 | 145 | </dd> | 
 | 146 |  | 
| Glenn Kasten | 963fd95 | 2013-04-18 17:26:23 -0700 | [diff] [blame] | 147 | <dt>stereo</dt> | 
 | 148 | <dd> | 
 | 149 | Two channels. | 
 | 150 | </dd> | 
 | 151 |  | 
| Glenn Kasten | 5df2d52 | 2013-09-27 11:50:35 -0700 | [diff] [blame] | 152 | <dt>stereo widening</dt> | 
 | 153 | <dd> | 
 | 154 | An effect applied to a stereo signal, to make another stereo signal which sounds fuller and richer. | 
 | 155 | The effect can also be applied to a mono signal, in which case it is a type of upmixing. | 
 | 156 | </dd> | 
 | 157 |  | 
 | 158 | <dt>surround sound</dt> | 
 | 159 | <dd> | 
 | 160 | Various techniques for increasing the ability of a listener to perceive | 
 | 161 | sound position beyond stereo left and right. | 
 | 162 | </dd> | 
 | 163 |  | 
 | 164 | <dt>upmixing</dt> | 
 | 165 | <dd> | 
 | 166 | To increase the number of channels, e.g. from mono to stereo, or from stereo to surround sound. | 
 | 167 | This can be accomplished by duplication, panning, or more advanced signal processing. | 
 | 168 | Compare to "downmixing". | 
| Glenn Kasten | 963fd95 | 2013-04-18 17:26:23 -0700 | [diff] [blame] | 169 | </dl> | 
 | 170 |  | 
| Glenn Kasten | 5df2d52 | 2013-09-27 11:50:35 -0700 | [diff] [blame] | 171 | <dt>virtualizer</dt> | 
 | 172 | <dd> | 
 | 173 | An effect that attempts to spatialize audio channels, such as trying to | 
 | 174 | simulate more speakers, or give the illusion that various sound sources have position. | 
 | 175 | </dd> | 
 | 176 |  | 
| Glenn Kasten | fdc7b7b | 2013-10-28 11:11:34 -0700 | [diff] [blame] | 177 | <dt>volume</dt> | 
 | 178 | <dd> | 
 | 179 | Loudness, the subjective strength of an audio signal. | 
 | 180 | </dd> | 
 | 181 |  | 
| Glenn Kasten | 5df2d52 | 2013-09-27 11:50:35 -0700 | [diff] [blame] | 182 | <h3 id="hardwareTerms">Hardware and Accessories</h3> | 
 | 183 |  | 
 | 184 | <p> | 
 | 185 | These terms are related to audio hardware and accessories. | 
 | 186 | </p> | 
 | 187 |  | 
 | 188 | <h4 id="interDeviceTerms">Inter-device interconnect</h4> | 
 | 189 |  | 
 | 190 | <p> | 
 | 191 | These technologies connect audio and video components between devices, | 
 | 192 | and are readily visible at the external connectors.  The HAL implementor | 
 | 193 | may need to be aware of these, as well as the end user. | 
 | 194 | </p> | 
 | 195 |  | 
 | 196 | <dl> | 
 | 197 |  | 
 | 198 | <dt>Bluetooth</dt> | 
 | 199 | <dd> | 
 | 200 | A short range wireless technology. | 
 | 201 | The major audio-related | 
 | 202 | <a class="external-link" href="http://en.wikipedia.org/wiki/Bluetooth_profile" | 
 | 203 | target="_android">Bluetooth profiles</a> | 
 | 204 | and | 
 | 205 | <a class="external-link" href="http://en.wikipedia.org/wiki/Bluetooth_protocols" | 
 | 206 | target="_android">Bluetooth protocols</a> | 
 | 207 | are described at these Wikipedia articles: | 
 | 208 |  | 
 | 209 | <ul> | 
 | 210 |  | 
 | 211 | <li><a class="external-link" | 
 | 212 | href="http://en.wikipedia.org/wiki/Bluetooth_profile#Advanced_Audio_Distribution_Profile_.28A2DP.29" | 
 | 213 | target="_android">A2DP</a> | 
 | 214 | for music | 
 | 215 | </li> | 
 | 216 |  | 
 | 217 | <li><a class="external-link" | 
 | 218 | href="http://en.wikipedia.org/wiki/Bluetooth_protocols#Synchronous_connection-oriented_.28SCO.29_link" | 
 | 219 | target="_android">SCO</a> | 
 | 220 | for telephony | 
 | 221 | </li> | 
 | 222 |  | 
 | 223 | </ul> | 
 | 224 |  | 
 | 225 | </dd> | 
 | 226 |  | 
 | 227 | <dt>DisplayPort</dt> | 
 | 228 | <dd> | 
 | 229 | Digital display interface by VESA. | 
 | 230 | </dd> | 
 | 231 |  | 
 | 232 | <dt>HDMI</dt> | 
 | 233 | <dd> | 
 | 234 | High-Definition Multimedia Interface, an interface for transferring | 
 | 235 | audio and video data.  For mobile devices, either a micro-HDMI (type D) or MHL connector is used. | 
 | 236 | </dd> | 
 | 237 |  | 
 | 238 | <dt>MHL</dt> | 
 | 239 | <dd> | 
 | 240 | Mobile High-Definition Link is a mobile audio/video interface, often | 
 | 241 | over micro-USB connector. | 
 | 242 | </dd> | 
 | 243 |  | 
 | 244 | <dt>phone connector</dt> | 
 | 245 | <dd> | 
 | 246 | A mini or sub-mini phone connector | 
 | 247 | connects a device to wired headphones, headset, or line-level amplifier. | 
 | 248 | </dd> | 
 | 249 |  | 
 | 250 | <dt>SlimPort</dt> | 
 | 251 | <dd> | 
 | 252 | An adapter from micro-USB to HDMI. | 
 | 253 | </dd> | 
 | 254 |  | 
 | 255 | <dt>S/PDIF</dt> | 
 | 256 | <dd> | 
 | 257 | Sony/Philips Digital Interface Format is an interconnect for uncompressed PCM. | 
 | 258 | See Wikipedia article <a class="external-link" href="http://en.wikipedia.org/wiki/S/PDIF" | 
 | 259 | target="_android">S/PDIF</a>. | 
 | 260 | </dd> | 
 | 261 |  | 
 | 262 | <dt>USB</dt> | 
 | 263 | <dd> | 
 | 264 | Universal Serial Bus. | 
 | 265 | See Wikipedia article <a class="external-link" href="http://en.wikipedia.org/wiki/USB" target="_android">USB</a>. | 
 | 266 | </dd> | 
 | 267 |  | 
 | 268 | </dl> | 
 | 269 |  | 
 | 270 | <h4 id="intraDeviceTerms">Intra-device interconnect</h4> | 
 | 271 |  | 
 | 272 | <p> | 
 | 273 | These technologies connect internal audio components within a given | 
 | 274 | device, and are not visible without disassembling the device.  The HAL | 
 | 275 | implementor may need to be aware of these, but not the end user. | 
 | 276 | </p> | 
 | 277 |  | 
 | 278 | See these Wikipedia articles: | 
 | 279 | <ul> | 
 | 280 | <li><a class="external-link" href="http://en.wikipedia.org/wiki/General-purpose_input/output" | 
 | 281 | target="_android">GPIO</a></li> | 
 | 282 | <li><a class="external-link" href="http://en.wikipedia.org/wiki/I%C2%B2C" target="_android">I²C</a></li> | 
 | 283 | <li><a class="external-link" href="http://en.wikipedia.org/wiki/I%C2%B2S" target="_android">I²S</a></li> | 
 | 284 | <li><a class="external-link" href="http://en.wikipedia.org/wiki/McASP" target="_android">McASP</a></li> | 
 | 285 | <li><a class="external-link" href="http://en.wikipedia.org/wiki/SLIMbus" target="_android">SLIMbus</a></li> | 
 | 286 | <li><a class="external-link" href="http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus" | 
 | 287 | target="_android">SPI</a></li> | 
 | 288 | </ul> | 
 | 289 |  | 
 | 290 | <h3 id="signalTerms">Audio Signal Path</h3> | 
 | 291 |  | 
 | 292 | <p> | 
 | 293 | These terms are related to the signal path that audio data follows from | 
 | 294 | an application to the transducer, or vice-versa. | 
 | 295 | </p> | 
 | 296 |  | 
 | 297 | <dt>ADC</dt> | 
 | 298 | <dd> | 
 | 299 | Analog to digital converter, a module that converts an analog signal | 
 | 300 | (continuous in both time and amplitude) to a digital signal (discrete in | 
 | 301 | both time and amplitude).  Conceptually, an ADC consists of a periodic | 
 | 302 | sample-and-hold followed by a quantizer, although it does not have to | 
 | 303 | be implemented that way.  An ADC is usually preceded by a low-pass filter | 
 | 304 | to remove any high frequency components that are not representable using | 
 | 305 | the desired sample rate.  See Wikipedia article | 
 | 306 | <a class="external-link" href="http://en.wikipedia.org/wiki/Analog-to-digital_converter" | 
 | 307 | target="_android">Analog-to-digital_converter</a>. | 
 | 308 | </dd> | 
 | 309 |  | 
 | 310 | <dt>AP</dt> | 
 | 311 | <dd> | 
 | 312 | Application processor, the main general-purpose computer on a mobile device. | 
 | 313 | </dd> | 
 | 314 |  | 
 | 315 | <dt>codec</dt> | 
 | 316 | <dd> | 
 | 317 | Coder-decoder, a module that encodes and/or decodes an audio signal | 
 | 318 | from one representation to another.  Typically this is analog to PCM, or PCM to analog. | 
 | 319 | Strictly, the term "codec" is reserved for modules that both encode and decode, | 
 | 320 | however it can also more loosely refer to only one of these. | 
 | 321 | See Wikipedia article | 
 | 322 | <a class="external-link" href="http://en.wikipedia.org/wiki/Audio_codec" target="_android">Audio codec</a>. | 
 | 323 | </dd> | 
 | 324 |  | 
 | 325 | <dt>DAC</dt> | 
 | 326 | <dd> | 
 | 327 | Digital to analog converter, a module that converts a digital signal | 
 | 328 | (discrete in both time and amplitude) to an analog signal | 
 | 329 | (continuous in both time and amplitude).  A DAC is usually followed by | 
 | 330 | a low-pass filter to remove any high frequency components introduced | 
 | 331 | by digital quantization. | 
 | 332 | See Wikipedia article | 
 | 333 | <a class="external-link" href="http://en.wikipedia.org/wiki/Digital-to-analog_converter" | 
 | 334 | target="_android">Digital-to-analog converter</a>. | 
 | 335 | </dd> | 
 | 336 |  | 
 | 337 | <dt>DSP</dt> | 
 | 338 | <dd> | 
 | 339 | Digital Signal Processor, an optional component which is typically located | 
 | 340 | after the application processor (for output), or before the application processor (for input). | 
 | 341 | The primary purpose of a DSP is to off-load the application processor, | 
 | 342 | and provide signal processing features at a lower power cost. | 
 | 343 | </dd> | 
 | 344 |  | 
 | 345 | <dt>PDM</dt> | 
 | 346 | <dd> | 
 | 347 | Pulse-density modulation | 
 | 348 | is a form of modulation used to represent an analog signal by a digital signal, | 
 | 349 | where the relative density of 1s versus 0s indicates the signal level. | 
 | 350 | It is commonly used by digital to analog converters. | 
 | 351 | See Wikipedia article | 
 | 352 | <a class="external-link" href="http://en.wikipedia.org/wiki/Pulse-density_modulation" | 
 | 353 | target="_android">Pulse-density modulation</a>. | 
 | 354 | </dd> | 
 | 355 |  | 
 | 356 | <dt>PWM</dt> | 
 | 357 | <dd> | 
 | 358 | Pulse-width modulation | 
 | 359 | is a form of modulation used to represent an analog signal by a digital signal, | 
 | 360 | where the relative width of a digital pulse indicates the signal level. | 
 | 361 | It is commonly used by analog to digital converters. | 
 | 362 | See Wikipedia article | 
 | 363 | <a class="external-link" href="http://en.wikipedia.org/wiki/Pulse-width_modulation" | 
 | 364 | target="_android">Pulse-width modulation</a>. | 
 | 365 | </dd> | 
 | 366 |  | 
 | 367 | </p> | 
 | 368 |  | 
| Glenn Kasten | 963fd95 | 2013-04-18 17:26:23 -0700 | [diff] [blame] | 369 | <h2 id="androidSpecificTerms">Android-Specific Terms</h2> | 
 | 370 |  | 
 | 371 | <p> | 
| Clay Murphy | c28f237 | 2013-09-25 16:13:40 -0700 | [diff] [blame] | 372 | These are terms specific to the Android audio framework, or that | 
| Glenn Kasten | 963fd95 | 2013-04-18 17:26:23 -0700 | [diff] [blame] | 373 | may have a special meaning within Android beyond their general meaning. | 
 | 374 | </p> | 
 | 375 |  | 
 | 376 | <dl> | 
 | 377 |  | 
 | 378 | <dt>ALSA</dt> | 
 | 379 | <dd> | 
 | 380 | Advanced Linux Sound Architecture.  As the name suggests, it is an audio | 
 | 381 | framework primarily for Linux, but it has influenced other systems. | 
 | 382 | See Wikipedia article | 
 | 383 | <a class="external-link" href="http://en.wikipedia.org/wiki/Advanced_Linux_Sound_Architecture" target="_android">ALSA</a> | 
 | 384 | for the general definition. As used within Android, it refers primarily | 
 | 385 | to the kernel audio framework and drivers, not to the user-mode API. See | 
 | 386 | tinyalsa. | 
 | 387 | </dd> | 
 | 388 |  | 
| Glenn Kasten | 298f382 | 2013-06-12 17:17:36 -0700 | [diff] [blame] | 389 | <dt>AudioEffect</dt> | 
 | 390 | <dd> | 
 | 391 | An API and implementation framework for output (post-processing) effects | 
 | 392 | and input (pre-processing) effects.  The API is defined at | 
| Glenn Kasten | 5df2d52 | 2013-09-27 11:50:35 -0700 | [diff] [blame] | 393 | <a href="http://developer.android.com/reference/android/media/audiofx/AudioEffect.html" target="_android">android.media.audiofx.AudioEffect</a>. | 
| Glenn Kasten | 298f382 | 2013-06-12 17:17:36 -0700 | [diff] [blame] | 394 | </dd> | 
 | 395 |  | 
| Glenn Kasten | 963fd95 | 2013-04-18 17:26:23 -0700 | [diff] [blame] | 396 | <dt>AudioFlinger</dt> | 
 | 397 | <dd> | 
 | 398 | The sound server implementation for Android. AudioFlinger | 
 | 399 | runs within the mediaserver process. See Wikipedia article | 
 | 400 | <a class="external-link" href="http://en.wikipedia.org/wiki/Sound_server" target="_android">Sound server</a> | 
 | 401 | for the generic definition. | 
 | 402 | </dd> | 
 | 403 |  | 
| Glenn Kasten | fdc7b7b | 2013-10-28 11:11:34 -0700 | [diff] [blame] | 404 | <dt>audio focus</dt> | 
 | 405 | <dd> | 
 | 406 | A set of APIs for managing audio interactions across multiple independent apps. | 
 | 407 | See <a href="http://developer.android.com/training/managing-audio/audio-focus.html">Managing Audio | 
 | 408 | Focus</a> and the focus-related methods and constants of | 
 | 409 | <a href="http://developer.android.com/reference/android/media/AudioManager.html">android.media.AudioManager</a>. | 
 | 410 | </dd> | 
 | 411 |  | 
| Glenn Kasten | 963fd95 | 2013-04-18 17:26:23 -0700 | [diff] [blame] | 412 | <dt>AudioMixer</dt> | 
 | 413 | <dd> | 
 | 414 | The module within AudioFlinger responsible for | 
 | 415 | combining multiple tracks and applying attenuation | 
 | 416 | (volume) and certain effects. The Wikipedia article | 
 | 417 | <a class="external-link" href="http://en.wikipedia.org/wiki/Audio_mixing_(recorded_music)" target="_android">Audio mixing (recorded music)</a> | 
 | 418 | may be useful for understanding the generic | 
 | 419 | concept. But that article describes a mixer more as a hardware device | 
 | 420 | or a software application, rather than a software module within a system. | 
 | 421 | </dd> | 
 | 422 |  | 
| Glenn Kasten | 5df2d52 | 2013-09-27 11:50:35 -0700 | [diff] [blame] | 423 | <dt>audio policy</dt> | 
 | 424 | <dd> | 
 | 425 | Service responsible for all actions that require a policy decision | 
 | 426 | to be made first, such as opening a new I/O stream, re-routing after a | 
 | 427 | change and stream volume management. | 
 | 428 | </dd> | 
 | 429 |  | 
| Glenn Kasten | 963fd95 | 2013-04-18 17:26:23 -0700 | [diff] [blame] | 430 | <dt>AudioRecord</dt> | 
 | 431 | <dd> | 
 | 432 | The primary low-level client API for receiving data from an audio | 
| Clay Murphy | c28f237 | 2013-09-25 16:13:40 -0700 | [diff] [blame] | 433 | input device such as microphone.  The data is usually in pulse-code modulation | 
 | 434 | (PCM) format. | 
| Glenn Kasten | 5df2d52 | 2013-09-27 11:50:35 -0700 | [diff] [blame] | 435 | The API is defined at | 
 | 436 | <a href="http://developer.android.com/reference/android/media/AudioRecord.html" | 
 | 437 | target="_android">android.media.AudioRecord</a>. | 
 | 438 | </dd> | 
| Glenn Kasten | 963fd95 | 2013-04-18 17:26:23 -0700 | [diff] [blame] | 439 | </dd> | 
 | 440 |  | 
 | 441 | <dt>AudioResampler</dt> | 
 | 442 | <dd> | 
 | 443 | The module within AudioFlinger responsible for sample-rate conversion. See Wikipedia article | 
 | 444 | <a class="external-link" href="http://en.wikipedia.org/wiki/Resampling_(audio)" target="_android">Resampling (audio)</a> | 
 | 445 | for the generic definition. | 
 | 446 | </dd> | 
 | 447 |  | 
| Glenn Kasten | 963fd95 | 2013-04-18 17:26:23 -0700 | [diff] [blame] | 448 | <dt>AudioTrack</dt> | 
 | 449 | <dd> | 
 | 450 | The primary low-level client API for sending data to an audio output | 
 | 451 | device such as a speaker.  The data is usually in PCM format. | 
| Glenn Kasten | 5df2d52 | 2013-09-27 11:50:35 -0700 | [diff] [blame] | 452 | The API is defined at | 
 | 453 | <a href="http://developer.android.com/reference/android/media/AudioTrack.html" | 
 | 454 | target="_android">android.media.AudioTrack</a>. | 
| Glenn Kasten | 963fd95 | 2013-04-18 17:26:23 -0700 | [diff] [blame] | 455 | </dd> | 
 | 456 |  | 
 | 457 | <dt>client</dt> | 
 | 458 | <dd> | 
 | 459 | Usually same as application or app, but sometimes the "client" of | 
 | 460 | AudioFlinger is actually a thread running within the mediaserver system | 
 | 461 | process. An example of that is when playing media that is decoded by a | 
 | 462 | MediaPlayer object. | 
 | 463 | </dd> | 
 | 464 |  | 
 | 465 | <dt>HAL</dt> | 
 | 466 | <dd> | 
 | 467 | Hardware Abstraction Layer. HAL is a generic term in Android. With | 
 | 468 | respect to audio, it is a layer between AudioFlinger and the kernel | 
 | 469 | device driver with a C API, which replaces the earlier C++ libaudio. | 
 | 470 | </dd> | 
 | 471 |  | 
 | 472 | <dt>FastMixer</dt> | 
 | 473 | <dd> | 
 | 474 | A thread within AudioFlinger that services lower latency "fast tracks" | 
 | 475 | and drives the primary output device. | 
 | 476 | </dd> | 
 | 477 |  | 
 | 478 | <dt>fast track</dt> | 
 | 479 | <dd> | 
 | 480 | An AudioTrack client with lower latency but fewer features, on some devices. | 
 | 481 | </dd> | 
 | 482 |  | 
 | 483 | <dt>MediaPlayer</dt> | 
 | 484 | <dd> | 
 | 485 | A higher-level client API than AudioTrack, for playing either encoded | 
| Clay Murphy | c28f237 | 2013-09-25 16:13:40 -0700 | [diff] [blame] | 486 | content, or content which includes multimedia audio and video tracks. | 
| Glenn Kasten | 963fd95 | 2013-04-18 17:26:23 -0700 | [diff] [blame] | 487 | </dd> | 
 | 488 |  | 
| Glenn Kasten | 298f382 | 2013-06-12 17:17:36 -0700 | [diff] [blame] | 489 | <dt>media.log</dt> | 
 | 490 | <dd> | 
 | 491 | An AudioFlinger debugging feature, available in custom builds only, | 
 | 492 | for logging audio events to a circular buffer where they can then be | 
 | 493 | dumped retroactively when needed. | 
 | 494 | </dd> | 
 | 495 |  | 
| Glenn Kasten | 963fd95 | 2013-04-18 17:26:23 -0700 | [diff] [blame] | 496 | <dt>mediaserver</dt> | 
 | 497 | <dd> | 
 | 498 | An Android system process that contains a number of media-related | 
 | 499 | services, including AudioFlinger. | 
 | 500 | </dd> | 
 | 501 |  | 
 | 502 | <dt>NBAIO</dt> | 
 | 503 | <dd> | 
 | 504 | An abstraction for "non-blocking" audio input/output ports used within | 
 | 505 | AudioFlinger. The name can be misleading, as some implementations of | 
 | 506 | the NBAIO API actually do support blocking. The key implementations of | 
 | 507 | NBAIO are for pipes of various kinds. | 
 | 508 | </dd> | 
 | 509 |  | 
 | 510 | <dt>normal mixer</dt> | 
 | 511 | <dd> | 
 | 512 | A thread within AudioFlinger that services most full-featured | 
 | 513 | AudioTrack clients, and either directly drives an output device or feeds | 
| Clay Murphy | c28f237 | 2013-09-25 16:13:40 -0700 | [diff] [blame] | 514 | its sub-mix into FastMixer via a pipe. | 
| Glenn Kasten | 963fd95 | 2013-04-18 17:26:23 -0700 | [diff] [blame] | 515 | </dd> | 
 | 516 |  | 
 | 517 | <dt>OpenSL ES</dt> | 
 | 518 | <dd> | 
 | 519 | An audio API standard by The Khronos Group. Android versions since | 
 | 520 | API level 9 support a native audio API which is based on a subset of | 
 | 521 | OpenSL ES 1.0.1. | 
 | 522 | </dd> | 
 | 523 |  | 
| Glenn Kasten | fdc7b7b | 2013-10-28 11:11:34 -0700 | [diff] [blame] | 524 | <dt>silent mode</dt> | 
 | 525 | <dd> | 
 | 526 | A user-settable feature to mute the phone ringer and notifications, | 
 | 527 | without affecting media playback (music, videos, games) or alarms. | 
 | 528 | </dd> | 
 | 529 |  | 
| Glenn Kasten | 5df2d52 | 2013-09-27 11:50:35 -0700 | [diff] [blame] | 530 | <dt>SoundPool</dt> | 
 | 531 | <dd> | 
 | 532 | A higher-level client API than AudioTrack, used for playing sampled | 
 | 533 | audio clips. It is useful for triggering UI feedback, game sounds, etc. | 
 | 534 | The API is defined at | 
 | 535 | <a href="http://developer.android.com/reference/android/media/SoundPool.html" | 
 | 536 | target="_android">android.media.SoundPool</a>. | 
 | 537 | </dd> | 
 | 538 | </dd> | 
 | 539 |  | 
 | 540 | <dt>Stagefright</dt> | 
 | 541 | <dd> | 
 | 542 | See <a href="{@docRoot}devices/media.html">Media</a>. | 
 | 543 | </dd> | 
 | 544 |  | 
| Glenn Kasten | 963fd95 | 2013-04-18 17:26:23 -0700 | [diff] [blame] | 545 | <dt>StateQueue</dt> | 
 | 546 | <dd> | 
 | 547 | A module within AudioFlinger responsible for synchronizing state | 
 | 548 | among threads. Whereas NBAIO is used to pass data, StateQueue is used | 
 | 549 | to pass control information. | 
 | 550 | </dd> | 
 | 551 |  | 
| Glenn Kasten | fdc7b7b | 2013-10-28 11:11:34 -0700 | [diff] [blame] | 552 | <dt>strategy</dt> | 
 | 553 | <dd> | 
 | 554 | A grouping of stream types with similar behavior, used by the audio policy service. | 
 | 555 | </dd> | 
 | 556 |  | 
 | 557 | <dt>stream type</dt> | 
 | 558 | <dd> | 
 | 559 | An enumeration that expresses a use case for audio output. | 
 | 560 | The audio policy implementation uses the stream type, along with other parameters, | 
 | 561 | to determine volume and routing decisions. | 
 | 562 | Specific stream types are listed at | 
 | 563 | <a href="http://developer.android.com/reference/android/media/AudioManager.html">android.media.AudioManager</a>. | 
 | 564 | </dd> | 
 | 565 |  | 
| Glenn Kasten | 298f382 | 2013-06-12 17:17:36 -0700 | [diff] [blame] | 566 | <dt>tee sink</dt> | 
 | 567 | <dd> | 
 | 568 | An AudioFlinger debugging feature, available in custom builds only, | 
 | 569 | for retaining a short fragment of recent audio for later analysis. | 
 | 570 | This permits comparison between what was actually played or recorded | 
 | 571 | vs. what was expected. | 
 | 572 | </dd> | 
 | 573 |  | 
| Glenn Kasten | 963fd95 | 2013-04-18 17:26:23 -0700 | [diff] [blame] | 574 | <dt>tinyalsa</dt> | 
 | 575 | <dd> | 
 | 576 | A small user-mode API above ALSA kernel with BSD license, recommended | 
| Clay Murphy | c28f237 | 2013-09-25 16:13:40 -0700 | [diff] [blame] | 577 | for use in HAL implementations. | 
| Glenn Kasten | 963fd95 | 2013-04-18 17:26:23 -0700 | [diff] [blame] | 578 | </dd> | 
 | 579 |  | 
| Glenn Kasten | fdc7b7b | 2013-10-28 11:11:34 -0700 | [diff] [blame] | 580 | <dt>ToneGenerator</dt> | 
 | 581 | <dd> | 
 | 582 | A higher-level client API than AudioTrack, used for playing DTMF signals. | 
 | 583 | See the Wikipedia article | 
 | 584 | <a class="external-link" href="http://en.wikipedia.org/wiki/Dual-tone_multi-frequency_signaling" | 
 | 585 | target="_android">Dual-tone multi-frequency signaling</a>, | 
 | 586 | and the API definition at | 
 | 587 | <a href="http://developer.android.com/reference/android/media/ToneGenerator.html" | 
 | 588 | target="_android">android.media.ToneGenerator</a>. | 
 | 589 | </dd> | 
 | 590 |  | 
| Glenn Kasten | 963fd95 | 2013-04-18 17:26:23 -0700 | [diff] [blame] | 591 | <dt>track</dt> | 
 | 592 | <dd> | 
 | 593 | An audio stream, controlled by the AudioTrack API. | 
 | 594 | </dd> | 
 | 595 |  | 
| Glenn Kasten | fdc7b7b | 2013-10-28 11:11:34 -0700 | [diff] [blame] | 596 | <dt>volume attenuation curve</dt> | 
 | 597 | <dd> | 
 | 598 | A device-specific mapping from a generic volume index to a particular attenuation factor | 
 | 599 | for a given output. | 
 | 600 | </dd> | 
 | 601 |  | 
 | 602 | <dt>volume index</dt> | 
 | 603 | <dd> | 
 | 604 | A unitless integer that expresses the desired relative volume of a stream. | 
 | 605 | The volume-related APIs of | 
 | 606 | <a href="http://developer.android.com/reference/android/media/AudioManager.html">android.media.AudioManager</a> | 
 | 607 | operate in volume indices rather than absolute attenuation factors. | 
 | 608 | </dd> | 
 | 609 |  | 
| Glenn Kasten | 963fd95 | 2013-04-18 17:26:23 -0700 | [diff] [blame] | 610 | </dl> | 
 | 611 |  | 
 | 612 | </p> | 
 | 613 |  |