Apr 27, 2021 Actively exploited Mac 0-day neutered core OS security defenses Apple fixes macOS vulnerability hackers exploited to suppress security warnings. Dan Goodin - Apr 27, 2021 11:49 am UTC.
6 Core Mac Pro
Easily check which versions of mac OS, iOS, iPadOS, or watchOS are compatible with your Mac model or iDevice. Guide includes OS X 10.8.x to macOS 11.0.x. Dec 12, 2019 There is several issues with Mac OS. The main problem lie in the fact that the majority of tutorials rely on XCode. However XCode is very broken tool which change at every release with new bugs. Install.NET Core, SQL Server, and more in Mac OS Top Nguyen. January 8, 2021 ∙ 2 minutes read 1. Install homebrew: The missing package manager for macOS. For example, the ASP.NET Core repository provides images that are built for running ASP.NET Core apps in production. For more information about using.NET Core in a Docker container, see Introduction to.NET and Docker and Samples. How to check if.NET Core is already installed. Working with macOS Catalina notarization.
Which Mac operating system is the best is a topic of numerous debates among Apple fans.
Since the mission of this blog is to refute myths and legends around Macs, it's time for me to provide my 2 cents about the issue on hand. While everything below is just my opinion, as a long-time Mac user and veteran software engineer, I hope my opinion worth something.
The best Mac OS version is the one that your Mac is eligible to upgrade to. In 2021 it is macOS Big Sur. However, for users that need to run 32-bit apps on Mac, the best macOS is Mojave. Also, older Macs would benefit if upgraded at least to macOS Sierra for which Apple still releases security patches.
How to Tell Which macOS You Are Running
To find out which macOS is currently running on your Mac, follow these steps: Deville highschool demo mac os.
- Click on Apple logo in the top left corner of the menubar
- In the dropdown click on the first item: About This Mac
- The first line in the Overview tab is the name of the current OS.
What Version of OS Can My Mac Run?
Not all Macs can be upgraded to the latest OS version. For instance, old Macs powered by PowerPC CPUs cannot run OS intended for Intel-based computers. Also, some versions have hardware limitations.
For instance, Mojave cannot be installed on MacBook Pro earlier than Mid 2012 model.
Check below to know exactly what version of OS your Mac can run.
Which OS is Best for my Mac
Anytime someone asks me which OS is best for them I always suggested going with the latest. Things have changed recently, however.
Should I Upgrade to macOS Catalina or Big Sur?
While personally I like macOS Big Sur and have it installed on my MacBook Pro, it comes with serious breaking changes.
The first issue is compatibility.
Big Sur is a transition OS which is designed to help Apple to move from Intel processors to their own chips on ARM.
After I installed Big Sur on my MacBook Pro mid 2020 (pre-Silicon), most of my apps, including Microsoft Office, were working as expected.
However, my VMWare Fusion 11 does not start anymore, so I have to purchase a new license if I want to keep using it (or roll back to Catalina). Luckily, I took a full backup before the upgrade.
The second breaking issue is the lack of 32-bit app support.
macOS Catalina and Big Sur can only run 64-bit apps.
If you wondering whether you should upgrade to macOS Catalina or Big Sur, first verify that you don't have any 32-bit apps. But first, take a back up, so you can go back in case something breaks after the upgrade.
For instance, I had to remove uTorrent after upgrade. And I didn't know that uTorrent is 32-bit!
How to Know If App is 32-bit or 64-bit
To find out whether the app on your Mac is 32-bit or 64-bit follow these steps:
- Click on Apple logo in the top left corner of the Mac screen
- Click on About This Mac option
- Click on System Report button in Overview tab (first one)
- Scroll down to Software -> Applications
- Find the app and check Kind
Which macOS Should I Use
If you have an older Mac which is not eligible to upgrade with some latest software or hardware, I'd suggest upgrading at least to Sierra (or better High Sierra) for the following reasons:
- Sierra is still supported by Apple, and it gets security updates
- APFS file system is available
- It supports Siri
- Significant security improvements
The most important point when choosing the best OS is the ability to get security updates. While Apple generally does not announce the OS end of life dates, it is possible to know when they stop releasing security updates from this page.
For instance, according to the page, the last security update for OS X Yosemite was released on September 12, 2017. The last update for OS X El Capitan was in July 2018, and Carnegie Mellon University confirmed that El Capitan's end of life date was August 2018.
Snow Leopard Myth
I know that some users on forums believe that the best OS version for Macs was Snow Leopard. But that is a myth. And I know how such myths get created.
Once I worked in the company, which was selling a 20-year old product. And customers were still using and didn't want to switch to new versions, because the old one was rock solid.
I then talked to the engineer who worked on the project, and he revealed that the product was a total disaster when it was first deployed. Engineers had to work on-site for almost a year in order to fix all bugs.
After five or so years of polishing the product, it becomes virtually bug-free, and nobody now remembers how bad it was when it was first rolled out. A similar thing happened Snow Leopard, and it was recognized as best mac os version after some time.
How to Update to the Latest Version
There are two ways to update to the latest OS version on Mac:
- From the Software Update section in System Preferences
- Use a download link
Using Software Update
This is by far the best option, but it only available if you have Yosemite, or later OS installed already. If you enabled automatic updates, then Mac will inform you that the next macOS is available.
Just open System Preferences, go to Software Update and click on the Upgrade Now button.
This method is also best if wondering how to check if you have the latest version of OS installed on your Mac. Only the version compatible with your hardware will appear here.
For instance, my the latest version for Mac Mini 2012 is Mojave, I can't install anything newer than that.
If you are having problems with updates or having issues post-upgrade check my post about troubleshooting macOS.
Using download links
For older systems or in case you need to downgrade, you have to download a standalone installer in DMG format. DMG stands for disk image, similar to ISO, just different formats.
After downloading the installer, just double click on it and follow instructions. Again, do not forget to take a backup before the upgrade.
Mac OS Comparisons: Requirements, Features, Compatibility, Download Links
Following is a high-level description of all Mac operating systems as early as Mountain Lion.
You can refer to those descriptions when deciding which operating system is best for your iMac, Mac Pro, Mac mini, or MacBook.
With each OS description, I included a list of Macs supported. However, you can use Mac OS compatibility checker for more detailed information.
Cached
macOS 11 Big Sur
macOS v11 (codename Big Sur) is the latest version of the operating system for Apple computers.
Release date: October 13, 2020
Hardware Requirements: RAM requirement 4GB. Big Sur is the first OS to support new Macs using ARM technology (in the future).
Features
- The biggest design refresh since macOS X.
- Support for new ARM processors.
- Safar improved performance and power consumption.
- Time Machine supports backup to APFS volumes.
- One-click translation for 7 languages.
- Redesigned maps
Software Compatibility Issues
Only 64-bit apps are allowed to run on Big Sur.
How to install
There are two ways to install Big Sur: enable automatic updates in System Preferences or download by using the following link.
Or check my post with tips on installing macOS on unsupported devices.
List of Apple computers compatible with macOS Big Sur
- MacBook (2015 and later)
- MacBook Air (2013 and later)
- MacBook Pro (2013 and later)
- Mac mini (2014 and later)
- iMac models (2014 and later)
- iMac Pro (2017 and later)
- Mac Pro (2013 and later)
macOS 10.15 Catalina
Release date: October 7, 2019
Hardware Requirements: RAM requirement increased from 2GB to 4GB.
Features
- Introduced Sidecar, which allows for Macs to use an iPad as an external display.
- iTunes was replaced by separate apps: Music, Podcasts, and TV.
- Find My Mac and Find My Friends have merged into one app.
Software Compatibility Issues
macOS Catalina is the first Mac operating system that does not support 32-bit applications. Only 64-bit apps are allowed to run on Catalina.
How to install
There are two ways to install Catalina: enable automatic updates in System Preferences or download by using the following link.
However, my VMWare Fusion 11 does not start anymore, so I have to purchase a new license if I want to keep using it (or roll back to Catalina). Luckily, I took a full backup before the upgrade.
The second breaking issue is the lack of 32-bit app support.
macOS Catalina and Big Sur can only run 64-bit apps.
If you wondering whether you should upgrade to macOS Catalina or Big Sur, first verify that you don't have any 32-bit apps. But first, take a back up, so you can go back in case something breaks after the upgrade.
For instance, I had to remove uTorrent after upgrade. And I didn't know that uTorrent is 32-bit!
How to Know If App is 32-bit or 64-bit
To find out whether the app on your Mac is 32-bit or 64-bit follow these steps:
- Click on Apple logo in the top left corner of the Mac screen
- Click on About This Mac option
- Click on System Report button in Overview tab (first one)
- Scroll down to Software -> Applications
- Find the app and check Kind
Which macOS Should I Use
If you have an older Mac which is not eligible to upgrade with some latest software or hardware, I'd suggest upgrading at least to Sierra (or better High Sierra) for the following reasons:
- Sierra is still supported by Apple, and it gets security updates
- APFS file system is available
- It supports Siri
- Significant security improvements
The most important point when choosing the best OS is the ability to get security updates. While Apple generally does not announce the OS end of life dates, it is possible to know when they stop releasing security updates from this page.
For instance, according to the page, the last security update for OS X Yosemite was released on September 12, 2017. The last update for OS X El Capitan was in July 2018, and Carnegie Mellon University confirmed that El Capitan's end of life date was August 2018.
Snow Leopard Myth
I know that some users on forums believe that the best OS version for Macs was Snow Leopard. But that is a myth. And I know how such myths get created.
Once I worked in the company, which was selling a 20-year old product. And customers were still using and didn't want to switch to new versions, because the old one was rock solid.
I then talked to the engineer who worked on the project, and he revealed that the product was a total disaster when it was first deployed. Engineers had to work on-site for almost a year in order to fix all bugs.
After five or so years of polishing the product, it becomes virtually bug-free, and nobody now remembers how bad it was when it was first rolled out. A similar thing happened Snow Leopard, and it was recognized as best mac os version after some time.
How to Update to the Latest Version
There are two ways to update to the latest OS version on Mac:
- From the Software Update section in System Preferences
- Use a download link
Using Software Update
This is by far the best option, but it only available if you have Yosemite, or later OS installed already. If you enabled automatic updates, then Mac will inform you that the next macOS is available.
Just open System Preferences, go to Software Update and click on the Upgrade Now button.
This method is also best if wondering how to check if you have the latest version of OS installed on your Mac. Only the version compatible with your hardware will appear here.
For instance, my the latest version for Mac Mini 2012 is Mojave, I can't install anything newer than that.
If you are having problems with updates or having issues post-upgrade check my post about troubleshooting macOS.
Using download links
For older systems or in case you need to downgrade, you have to download a standalone installer in DMG format. DMG stands for disk image, similar to ISO, just different formats.
After downloading the installer, just double click on it and follow instructions. Again, do not forget to take a backup before the upgrade.
Mac OS Comparisons: Requirements, Features, Compatibility, Download Links
Following is a high-level description of all Mac operating systems as early as Mountain Lion.
You can refer to those descriptions when deciding which operating system is best for your iMac, Mac Pro, Mac mini, or MacBook.
With each OS description, I included a list of Macs supported. However, you can use Mac OS compatibility checker for more detailed information.
Cached
macOS 11 Big Sur
macOS v11 (codename Big Sur) is the latest version of the operating system for Apple computers.
Release date: October 13, 2020
Hardware Requirements: RAM requirement 4GB. Big Sur is the first OS to support new Macs using ARM technology (in the future).
Features
- The biggest design refresh since macOS X.
- Support for new ARM processors.
- Safar improved performance and power consumption.
- Time Machine supports backup to APFS volumes.
- One-click translation for 7 languages.
- Redesigned maps
Software Compatibility Issues
Only 64-bit apps are allowed to run on Big Sur.
How to install
There are two ways to install Big Sur: enable automatic updates in System Preferences or download by using the following link.
Or check my post with tips on installing macOS on unsupported devices.
List of Apple computers compatible with macOS Big Sur
- MacBook (2015 and later)
- MacBook Air (2013 and later)
- MacBook Pro (2013 and later)
- Mac mini (2014 and later)
- iMac models (2014 and later)
- iMac Pro (2017 and later)
- Mac Pro (2013 and later)
macOS 10.15 Catalina
Release date: October 7, 2019
Hardware Requirements: RAM requirement increased from 2GB to 4GB.
Features
- Introduced Sidecar, which allows for Macs to use an iPad as an external display.
- iTunes was replaced by separate apps: Music, Podcasts, and TV.
- Find My Mac and Find My Friends have merged into one app.
Software Compatibility Issues
macOS Catalina is the first Mac operating system that does not support 32-bit applications. Only 64-bit apps are allowed to run on Catalina.
How to install
There are two ways to install Catalina: enable automatic updates in System Preferences or download by using the following link.
List of Apple computers compatible with macOS Catalina
- MacBook (Early 2015 or later)
- MacBook Air (Mid 2012 or later)
- MacBook Pro (Mid 2012 or later)
- Mac mini (Late 2012 or later)
- iMac models (Late 2012 or later)
- iMac Pro (All models)
- Mac Pro (Late 2013)
macOS 10.14 Mojave
Release date: September 24, 2018
Hardware Requirements: 2GB RAM and 18.5GB free space on disk
Features
- The main feature of Mojave is 'Dark Mode'
- FaceTime adds group feature which allows chatting with up to 32 people
- News, Stocks, Voice Memos, and Home apps were ported from iOS to Mac.
How to install
If your Mac is eligible to update to Mojave, then the easiest way to install it is by enabling automatic updates. Downloading a standalone Mojave installer could be a little tricky.
List of Apple computers compatible with macOS Mojave
- MacBook (Early 2015 or later)
- MacBook Air (Mid 2012 or later)
- MacBook Pro (Mid 2012 or later)
- Mac mini (Late 2012 or later)
- iMac (Late 2012 or later)
- iMac Pro (All models)
- Mac Pro (Late 2013 and 2010-2012 models with upgraded GPU)
macOS 10.13 High Sierra
Release date: September 25, 2017
Hardware Requirements: 2GB RAM and 14.3GB free space on disk
Features
- APFS (Apple File System) becomes the default file system in High Sierra. It's a significant upgrade from the older HFS+ in terms of speed, size, and security
- iCloud support of Messages which allows sync messages of the account across multiple devices
- Mail app uses 35% less storage space due to optimizations
List of Apple computers compatible with macOS High Sierra
- MacBook (Late 2009 or newer)
- MacBook Pro (Mid 2010 or newer)
- MacBook Air (Late 2010 or newer)
- Mac mini (Mid 2010 or newer)
- iMac (Late 2009 or newer)
- Mac Pro (Mid 2010 or newer)
How to install
Here is a High Sierra download link.
macOS 10.12 Sierra
This is the first macOS version. Previous OS versions for Macs were called OS X (X stands for 10).
Release date: September 20, 2016
Hardware Requirements: 2GB RAM and 8GB free space on disk
Features
- Siri was introduced to Macs
- Optimized storage with iCloud sync
- Auto-lock feature allows unlocking MacBook with paired Apple Watch
- APFS preview available
- Disk Utility can manage RAID sets again
- Significant security improvements
How to install
Here is a Sierra download link.
List of Apple computers compatible with macOS Sierra
- MacBook (Late 2009 or newer)
- MacBook Pro (Mid 2010 or newer)
- MacBook Air (Late 2010 or newer)
- Mac mini (Mid 2010 or newer)
- iMac (Late 2009 or newer)
- Mac Pro (Mid 2010 or newer)
OS X 10.11 El Capitan
Last OS X version.
Release date: September 30, 2015
Hardware Requirements: 2GB RAM and 8GB free space on disk
Features
- System Integrity Protection – a security feature that protects even when the root user executes the process
- Performance improvements: open PDF files four times faster, Mail is twice faster, launching apps 40% faster
- Notes app similar to the app in iOS
Macs compatible with OS X El Capitan
same as OS Mountain Lion.
How to install
Here is El Capitan download link.
OS X 10.10 Yosemite
Release date: October 16, 2014
Hardware Requirements: 2GB RAM and 8GB free space on disk
Macs compatible with OS X Yosemite
Same as OS Mountain Lion.
Features
- Major user design overhaul
- Introduction of Handoff and Continuity features
- Photos app replaced iPhoto and Aperture
How to install
Here is Yosemite download link.
OS X 10.9 Mavericks
First free Mac OS. Previous OS versions vary from $19.99 to $129.
Release date: October 22, 2013
Hardware Requirements: 2GB RAM and 8GB free space on disk
Features
- Compressed Memory feature automatically compresses inactive apps when approaching maximum memory capacity
- Timer coalescing is a feature that reduces CPU usage by up to 72 percent
- App Nap puts apps that are not currently visible to sleep
Macs compatible with OS X Mavericks
Same as OS Mountain Lion.
How to install
OS X Mavericks installer is not available on Apple Site. Follow instructions here to install Mavericks.
OS X 10.8 Mountain Lion
Must be purchased. Fixed many bugs introduced in OS X Lion.
Release date: July 25, 2012
System Requirements: 2GB RAM and 8GB free space on disk
Features
- New apps: Notification Center, Notes, Messages, Game Center
- AirPlay mirroring allowed to mirror Mac screen to Apple TV
- Application updates automatically install from the App Store
List of Apple computers compatible with OS X Mountain Lion
- iMac (Mid-2007 or newer)
- MacBook (Late 2008 Aluminum, or Early 2009 or newer)
- MacBook Air (Late 2008 or newer)
- MacBook Pro (Mid/Late 2007 or newer)
- Mac mini (Early 2009 or newer)
- Mac Pro (Early 2008 or newer)
- Xserve (Early 2009)
How to install
Mountain Lion installer is not available on Apple Site. Follow instructions here to install OS X Mountain Lion.
List of older Mac OS Versions
Following Mac OS versions are still running on older Macs, but Apple does not support them anymore, and there is no point to upgrade (or downgrade) to them:
- OS X 10.7 Lion
- OS X 10.6 Snow Leopard
- Mac OS X 10.5 Leopard
- Mac OS X 10.4 Tiger
- Mac OS X 10.3 Panther
- Mac OS X 10.2 Jaguar
- Mac OS X 10.1 Puma
- Mac OS X 10.0 Cheetah
Core Audio is the digital audio infrastructure of iOS and OS X. It includes a set of software frameworks designed to handle the audio needs in your applications. Read this chapter to learn what you can do with Core Audio.
Core Audio in iOS and OS X
Core Audio is tightly integrated into iOS and OS X for high performance and low latency.
In OS X, the majority of Core Audio services are layered on top of the Hardware Abstraction Layer (HAL) as shown in Figure 1-1. Audio signals pass to and from hardware through the HAL. You can access the HAL using Audio Hardware Services in the Core Audio framework when you require real-time audio. The Core MIDI (Musical Instrument Digital Interface) framework provides similar interfaces for working with MIDI data and devices.
You find Core Audio application-level services in the Audio Toolbox and Audio Unit frameworks.
Use Audio Queue Services to record, play back, pause, loop, and synchronize audio.
Use Audio File, Converter, and Codec Services to read and write from disk and to perform audio data format transformations. In OS X you can also create custom codecs.
Use Audio Unit Services and Audio Processing Graph Services (represented in the figure as 'Audio units') to host audio units (audio plug-ins) in your application. In OS X you can also create custom audio units to use in your application or to provide for use in other applications.
Use Music Sequencing Services to play MIDI-based control and music data.
Use Core Audio Clock Services for audio and MIDI synchronization and time format management.
Use System Sound Services (represented in the figure as 'System sounds') to play system sounds and user-interface sound effects.
Core Audio in iOS is optimized for the computing resources available in a battery-powered mobile platform. There is no API for services that must be managed very tightly by the operating system—specifically, the HAL and the I/O Kit. However, there are additional services in iOS not present in OS X. For example, Audio Session Services lets you manage the audio behavior of your application in the context of a device that functions as a mobile telephone and an iPod. Figure 1-2 provides a high-level view of the audio architecture in iOS.
A Little About Digital Audio and Linear PCM
Most Core Audio services use and manipulate audio in linear pulse-code-modulated (linear PCM) format, the most common uncompressed digital audio data format. Digital audio recording creates PCM data by measuring an analog (real world) audio signal's magnitude at regular intervals (the sampling rate) and converting each sample to a numerical value. Standard compact disc (CD) audio uses a sampling rate of 44.1 kHz, with a 16-bit integer describing each sample—constituting the resolution or bit depth.
A sample is single numerical value for a single channel.
A frame is a collection of time-coincident samples. For instance, a stereo sound file has two samples per frame, one for the left channel and one for the right channel.
A packet is a collection of one or more contiguous frames. In linear PCM audio, a packet is always a single frame. In compressed formats, it is typically more. A packet defines the smallest meaningful set of frames for a given audio data format.
In linear PCM audio, a sample value varies linearly with the amplitude of the original signal that it represents. For example, the 16-bit integer samples in standard CD audio allow 65,536 possible values between silence and maximum level. The difference in amplitude from one digital value to the next is always the same.
Core Audio data structures, declared in the CoreAudioTypes.h
header file, can describe linear PCM at any sample rate and bit depth. Audio Data Formats goes into more detail on this topic.
In OS X, Core Audio expects audio data to be in native-endian, 32-bit floating-point, linear PCM format. You can use Audio Converter Services to translate audio data between different linear PCM variants. You also use these converters to translate between linear PCM and compressed audio formats such as MP3 and Apple Lossless. Core Audio in OS X supplies codecs to translate most common digital audio formats (though it does not supply an encoder for converting to MP3).
iOS uses integer and fixed-point audio data. The result is faster calculations and less battery drain when processing audio. iOS provides a Converter audio unit and includes the interfaces from Audio Converter Services. For details on the so-called canonical audio data formats for iOS and OS X, see Canonical Audio Data Formats.
In iOS and OS X, Core Audio supports most common file formats for storing and playing audio data, as described in iPhone Audio File Formats and Supported Audio File and Data Formats in OS X.
Audio Units
Audio units are software plug-ins that process audio data. In OS X, a single audio unit can be used simultaneously by an unlimited number of channels and applications.
iOS provides a set of audio units optimized for efficiency and performance on a mobile platform. You can develop audio units for use in your iOS application. Because you must statically link custom audio unit code into your application, audio units that you develop cannot be used by other applications in iOS.
The audio units provided in iOS do not have user interfaces. Their main use is to provide low-latency audio in your application. For more on iPhone audio units, see Core Audio Plug-ins: Audio Units and Codecs.
In Mac apps that you develop, you can use system-supplied or third-party-supplied audio units. You can also develop an audio unit as a product in its own right. Users can employ your audio units in applications such as GarageBand and Logic Studio, as well as in many other audio unit hosting applications.
Some Mac audio units work behind the scenes to simplify common tasks for you—such as splitting a signal or interfacing with hardware. Others appear onscreen, with their own user interfaces, to offer signal processing and manipulation. For example, effect units can mimic their real-world counterparts, such as a guitarist's distortion box. Other audio units generate signals, whether programmatically or in response to MIDI input.
Some examples of audio units are:
A signal processor (for example, a high-pass filter, reverb, compressor, or distortion unit). Each of these is generically an effect unit and performs digital signal processing (DSP) in a way similar to a hardware effects box or outboard signal processor.
A musical instrument or software synthesizer. These are called instrument units (or, sometimes, music devices) and typically generate musical notes in response to MIDI input.
A signal source. Unlike an instrument unit, a generator unit is not activated by MIDI input but rather through code. For example, a generator unit might calculate and generate sine waves, or it might source the data from a file or network stream.
An interface to hardware input or output. For more information on I/O units, see The Hardware Abstraction Layer and Interfacing with Hardware.
A format converter. A converter unit can translate data between two linear PCM variants, merge or split audio streams, or perform time and pitch changes. See Core Audio Plug-ins: Audio Units and Codecs for details.
A mixer or panner. A mixer unit can combine audio tracks. A panner unit can apply stereo or 3D panning effects.
An effect unit that works offline. An offline effect unit performs work that is either too processor-intensive or simply impossible in real time. For example, an effect that performs time reversal on a file must be applied offline.
In OS X you can mix and match audio units in whatever permutations you or your end user requires. Figure 1-3 shows a simple chain of audio units. There's an instrument unit to generate an audio signal based on control data received from an outboard MIDI keyboard. The generated audio then passes through effect units to apply bandpass filtering and distortion. A chain of audio units is called an audio processing graph.
If you develop audio DSP code that you want to make available to multiple applications, you should package your code as an audio unit.
If you develop Mac audio apps, supporting audio units lets you and your users leverage the library of existing audio units (both third-party and Apple-supplied) to extend the capabilities of your application.
To experiment with audio units in OS X, see the AU Lab application, available in the Xcode Tools installation at /Developer/Applications/Audio
. AU Lab lets you mix and match audio units to build a signal chain from an audio source through an output device.
See System-Supplied Audio Units in OS X for a listing of the audio units that ship with OS X v10.5 and iOS 2.0.
The Hardware Abstraction Layer
Core Audio uses a hardware abstraction layer (HAL) to provide a consistent and predictable interface for applications to interact with hardware. The HAL can also provide timing information to your application to simplify synchronization or to adjust for latency.
In most cases, your code does not interact directly with the HAL. Apple supplies a special audio unit—called the AUHAL unit in OS X and the AURemoteIO unit in iOS—which allows you to pass audio from another audio unit to hardware. Similarly, input coming from hardware is routed through the AUHAL unit (or the AURemoteIO unit in iOS) and made available to subsequent audio units, as shown in Figure 1-4.
The AUHAL unit (or AURemoteIO unit) also takes care of any data conversion or channel mapping required to translate audio data between audio units and hardware.
MIDI Support in OS X
Core MIDI is the part of Core Audio that supports the MIDI protocol. (MIDI is not available in iOS.) Core MIDI allows applications to communicate with MIDI devices such as keyboards and guitars. Input from MIDI devices can be stored as MIDI data or used to control an instrument unit. Applications can also send MIDI data to MIDI devices.
Core MIDI uses abstractions to represent MIDI devices and mimic standard MIDI cable connections (MIDI In, MIDI Out, and MIDI Thru) while providing low-latency input and output. Core Audio also supports a music player programming interface that you can use to play MIDI-based control or music data.
For more details about the capabilities of the MIDI protocol, see the MIDI Manufacturers Association site, http://midi.org.
The Audio MIDI Setup Application
The Audio MIDI Setup application lets users:
Specify the default audio input and output devices.
Configure properties for input and output devices, such as sampling rate and bit depth.
Map audio channels to available speakers (for stereo, 5.1 surround, and so on).
Create aggregate devices. (For information about aggregate devices, see Using Aggregate Devices.)
Configure MIDI networks and MIDI devices.
You find Audio MIDI Setup in the /Applications/Utilities
folder.
A Mac Core Audio Recording Studio
A traditional—non-computer-based—recording studio can serve as a conceptual framework for approaching Core Audio. Such a studio may have a few 'real' instruments and effect units feeding a mixing desk, as shown in Figure 1-5. The mixer can route its output to studio monitors and a recording device (shown here, in a rather retro fashion, as a tape recorder).
Many of the pieces in a traditional studio can be replaced by software-based equivalents—all of which you have already met in this chapter. On a desktop computing platform, digital audio applications can record, synthesize, edit, mix, process, and play back audio. They can also record, edit, process, and play back MIDI data, interfacing with both hardware and software MIDI instruments. Mac apps rely on Core Audio services to handle all of these tasks, as shown in Figure 1-6.
As you can see, audio units can make up much of an audio signal chain. Other Core Audio interfaces provide application-level support, allowing applications to obtain audio or MIDI data in various formats and output it to files or output devices. Core Audio Services discusses the constituent interfaces of Core Audio in more detail.
Core Audio lets you do much more than mimic a recording studio on a desktop computer. You can use it for everything from playing sound effects to creating compressed audio files to providing an immersive sonic experience for game players.
On a mobile device such as an iPhone or iPod touch, the audio environment and computing resources are optimized to extend battery life. After all, an iPhone's most essential identity is as a telephone. From a development or user perspective, it wouldn't make sense to place an iPhone at the heart of a virtual recording studio. On the other hand, an iPhone's special capabilities—including extreme portability, built-in Bonjour networking, multitouch interface, and accelerometer and location APIs—let you imagine and create audio applications that were never possible on the desktop.
Mac Development Using the Core Audio SDK
To assist audio developers, Apple supplies a software development kit (SDK) for Core Audio in OS X. The SDK contains many code samples covering both audio and MIDI services as well as diagnostic tools and test applications. Examples include:
A test application to interact with the global audio state of the system, including attached hardware devices (HALLab).
A reference audio unit hosting application (AU Lab). The AU Lab application is essential for testing audio units you create, as described in Audio Units.
Sample code to load and play audio files (PlayFile) and MIDI files (PlaySequence).
This document points to additional examples in the Core Audio SDK that illustrate how to accomplish common tasks.
The SDK also contains a C++ framework for building audio units for OS X. This framework simplifies the amount of work you need to do by insulating you from the details of the Component Manager plug-in interface. The SDK also contains templates for common audio unit types; for the most part, you only need override those methods that apply to your custom audio unit. Some sample audio unit projects show these templates and frameworks in use. For more details on using the framework and templates, see Audio Unit Programming Guide.
Note: Apple supplies the C++ audio unit framework as sample code to assist audio unit development. Feel free to modify and adapt the framework based on your needs.
The Core Audio SDK assumes you will use Xcode as your development environment.
You can download the latest SDK from http://developer.apple.com/sdk/. After installation, the SDK files are located in /Developer/Examples/CoreAudio
. The HALLab and AU Lab applications are located in /Developer/Applications/Audio
.
Copyright © 2017 Apple Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2017-10-30