application programming interface in Apple's macOS and iOS
Core Audio Essentials
Provides an overview of Core Audio and its programming interfaces.
developer.apple.com →Apple has designed the software interfaces to Core Audio using a layered, cooperative, task-focused approach. Read the first two sections in this chapter for a brief introduction to these interfaces and how they work together. Continue reading to understand the design principles, use patterns, and programming idioms that pervade Core Audio. The later sections in this chapter introduce you to how Core Audio works with files, streams, recording and playback, and plug-ins. The programming interfaces for Core Audio are arranged into three layers, as illustrated in Figure 2-1. Mac apps can be written to use these technologies directly when they require the highest possible, real-time performance. Many audio applications, however, don’t access this layer. Indeed, Core Audio in iOS provides ways to achieve real-time audio using higher level interfaces. OpenAL, for example, employs direct I/O for real-time audio in games. The result is a significantly smaller, tuned API set appropriate for a mobile platform. The middle layer in Core Audio includes services for data format conversion, reading and writing to disk, parsing streams, and working with plug-ins. Audio File Services supports reading and writing audio data to and from disk-based files. Audio Unit Services and Audio Processing Graph Services let applications work with digital signal processing (DSP) plug-ins such as equalizers and mixers. Audio File Stream Services lets you build applications that can parse streams, such as for playing files streamed over a network connection. Core Audio Clock Services supports audio and MIDI synchronization as well as time-base conversions. Audio Format Services (a small API, not shown in the figure) assists with managing audio data formats in your application. The highest layer in Core Audio includes streamlined interfaces that combine features from lower layers. Audio Queue Services lets you record, play, pause, loop, and synchronize audio. It employs codecs as necessary to deal with compressed audio formats. The AVAudioPlayer class provides a simple Objective-C interface for playing and looping audio as well as implementing rewind and fast-forward. Extended Audio File Services combines features from Audio File Services and Audio Converter services. It gives you a unified interface for reading and writing uncompressed and compressed sound files. OpenAL is the Core Audio implementation of the open-source OpenAL standard for positional audio. It is built on top of the system-supplied 3D Mixer audio unit. All applications can use OpenAL, although it is best suited for games development. You get another view of Core Audio by considering its API frameworks, located in /System/Library/Frameworks/ . This section quickly lists them to give you a sense of where to find the pieces that make up the Core Audio layers. Take note that the Core Audio framework is not an umbrella to the other frameworks here, but rather a peer. The Audio Toolbox framework ( AudioToolbox.framework ) provides interfaces for the mid- and high-level services in Core Audio. In iOS, this framework includes Audio Session Services, the interface for managing your application’s audio behavior in the context of a device that functions as a mobile phone and iPod. The Audio Unit framework ( AudioUnit.framework ) lets applications work with audio plug-ins, including audio units and codecs. The AVFoundation framework ( AVFoundation.framework ) provides the AVAudioPlayer class, a streamlined and simple Objective-C interface for audio playback. It also provides the AVAudioEngine class for more sophisticated audio handling. The Core Audio framework ( CoreAudio.framework ) supplies data types used across Core Audio as well as interfaces for the low-level services. The Core Audio Kit framework ( CoreAudioKit.framework ) provides a small API for creating user interfaces for audio units. This framework is not available in iOS. The Core MIDI framework ( CoreMIDI.framework )
Excerpt from a page describing this subject · 40,000 chars · not written by Vinony
via Wikidata · CC0
Discovered by embedding cosine similarity (sentence-transformers MiniLM, 384-dim).